Lines Matching defs:offset

271 static void *update_pkt(struct xdp_md *ctx, __s16 offset, __u32 *udp_csum)
289 iph->tot_len = bpf_htons(bpf_ntohs(iph->tot_len) + offset);
295 len_new = bpf_htons(bpf_ntohs(udph->len) + offset);
310 len_new = bpf_htons(bpf_ntohs(len) + offset);
317 len_new = bpf_htons(bpf_ntohs(udph->len) + offset);
334 static int xdp_adjst_tail_shrnk_data(struct xdp_md *ctx, __u16 offset,
342 udph = update_pkt(ctx, 0 - offset, &udp_csum);
348 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET :
349 offset & 0xff;
350 if (offset == 0)
354 if (buff_len - offset < hdr_len)
357 buff_pos = buff_len - offset;
358 if (bpf_xdp_load_bytes(ctx, buff_pos, tmp_buff, offset) < 0)
361 udp_csum = bpf_csum_diff((__be32 *)tmp_buff, offset, 0, 0, udp_csum);
364 if (bpf_xdp_adjust_tail(ctx, 0 - offset) < 0)
370 static int xdp_adjst_tail_grow_data(struct xdp_md *ctx, __u16 offset)
380 * the tail. Once the tail is adjusted we lose access to the offset
386 udph = update_pkt(ctx, offset, &udp_csum);
400 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET :
401 offset & 0xff;
402 if (offset == 0)
405 udp_csum = bpf_csum_diff(0, 0, (__be32 *)tmp_buff, offset, udp_csum);
410 if (bpf_xdp_adjust_tail(ctx, offset) < 0) {
415 if (bpf_xdp_store_bytes(ctx, buff_len, tmp_buff, offset) < 0)
459 __u32 offset)
473 udph = update_pkt(ctx, (__s16)(0 - offset), &udp_csum);
477 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET :
478 offset & 0xff;
479 if (offset == 0)
482 if (bpf_xdp_load_bytes(ctx, hdr_len, tmp_buff, offset) < 0)
485 udp_csum = bpf_csum_diff((__be32 *)tmp_buff, offset, 0, 0, udp_csum);
492 if (bpf_xdp_adjust_head(ctx, offset) < 0)
495 if (offset > MAX_ADJST_OFFSET)
514 __u32 offset)
525 udph = update_pkt(ctx, (__s16)(offset), &udp_csum);
538 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET :
539 offset & 0xff;
540 if (offset == 0)
543 udp_csum = bpf_csum_diff(0, 0, (__be32 *)data_buff, offset, udp_csum);
558 if (offset > MAX_ADJST_OFFSET)
561 if (bpf_xdp_adjust_head(ctx, 0 - offset) < 0)
567 if (bpf_xdp_store_bytes(ctx, hdr_len, data_buff, offset) < 0)
615 bpf_printk("Invalid adjustment offset: %d\n", *val);