Lines Matching refs:offset

212 static void *update_pkt(struct xdp_md *ctx, __s16 offset, __u32 *udp_csum)  in update_pkt()  argument
230 iph->tot_len = bpf_htons(bpf_ntohs(iph->tot_len) + offset); in update_pkt()
236 len_new = bpf_htons(bpf_ntohs(udph->len) + offset); in update_pkt()
251 len_new = bpf_htons(bpf_ntohs(len) + offset); in update_pkt()
258 len_new = bpf_htons(bpf_ntohs(udph->len) + offset); in update_pkt()
275 static int xdp_adjst_tail_shrnk_data(struct xdp_md *ctx, __u16 offset, in xdp_adjst_tail_shrnk_data() argument
283 udph = update_pkt(ctx, 0 - offset, &udp_csum); in xdp_adjst_tail_shrnk_data()
289 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET : in xdp_adjst_tail_shrnk_data()
290 offset & 0xff; in xdp_adjst_tail_shrnk_data()
291 if (offset == 0) in xdp_adjst_tail_shrnk_data()
295 if (buff_len - offset < hdr_len) in xdp_adjst_tail_shrnk_data()
298 buff_pos = buff_len - offset; in xdp_adjst_tail_shrnk_data()
299 if (bpf_xdp_load_bytes(ctx, buff_pos, tmp_buff, offset) < 0) in xdp_adjst_tail_shrnk_data()
302 udp_csum = bpf_csum_diff((__be32 *)tmp_buff, offset, 0, 0, udp_csum); in xdp_adjst_tail_shrnk_data()
305 if (bpf_xdp_adjust_tail(ctx, 0 - offset) < 0) in xdp_adjst_tail_shrnk_data()
311 static int xdp_adjst_tail_grow_data(struct xdp_md *ctx, __u16 offset) in xdp_adjst_tail_grow_data() argument
327 udph = update_pkt(ctx, offset, &udp_csum); in xdp_adjst_tail_grow_data()
341 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET : in xdp_adjst_tail_grow_data()
342 offset & 0xff; in xdp_adjst_tail_grow_data()
343 if (offset == 0) in xdp_adjst_tail_grow_data()
346 udp_csum = bpf_csum_diff(0, 0, (__be32 *)tmp_buff, offset, udp_csum); in xdp_adjst_tail_grow_data()
351 if (bpf_xdp_adjust_tail(ctx, offset) < 0) { in xdp_adjst_tail_grow_data()
356 if (bpf_xdp_store_bytes(ctx, buff_len, tmp_buff, offset) < 0) in xdp_adjst_tail_grow_data()
400 __u32 offset) in xdp_adjst_head_shrnk_data() argument
414 udph = update_pkt(ctx, (__s16)(0 - offset), &udp_csum); in xdp_adjst_head_shrnk_data()
418 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET : in xdp_adjst_head_shrnk_data()
419 offset & 0xff; in xdp_adjst_head_shrnk_data()
420 if (offset == 0) in xdp_adjst_head_shrnk_data()
423 if (bpf_xdp_load_bytes(ctx, hdr_len, tmp_buff, offset) < 0) in xdp_adjst_head_shrnk_data()
426 udp_csum = bpf_csum_diff((__be32 *)tmp_buff, offset, 0, 0, udp_csum); in xdp_adjst_head_shrnk_data()
433 if (bpf_xdp_adjust_head(ctx, offset) < 0) in xdp_adjst_head_shrnk_data()
436 if (offset > MAX_ADJST_OFFSET) in xdp_adjst_head_shrnk_data()
455 __u32 offset) in xdp_adjst_head_grow_data() argument
466 udph = update_pkt(ctx, (__s16)(offset), &udp_csum); in xdp_adjst_head_grow_data()
479 offset = (offset & 0x1ff) >= MAX_ADJST_OFFSET ? MAX_ADJST_OFFSET : in xdp_adjst_head_grow_data()
480 offset & 0xff; in xdp_adjst_head_grow_data()
481 if (offset == 0) in xdp_adjst_head_grow_data()
484 udp_csum = bpf_csum_diff(0, 0, (__be32 *)data_buff, offset, udp_csum); in xdp_adjst_head_grow_data()
499 if (offset > MAX_ADJST_OFFSET) in xdp_adjst_head_grow_data()
502 if (bpf_xdp_adjust_head(ctx, 0 - offset) < 0) in xdp_adjst_head_grow_data()
508 if (bpf_xdp_store_bytes(ctx, hdr_len, data_buff, offset) < 0) in xdp_adjst_head_grow_data()