Lines Matching refs:data_end
243 bool parse_udp(void *data, void *data_end, in parse_udp() argument
252 if (udp + 1 > data_end) in parse_udp()
265 bool parse_tcp(void *data, void *data_end, in parse_tcp() argument
274 if (tcp + 1 > data_end) in parse_tcp()
297 void *data_end; in encap_v6() local
303 data_end = (void *)(long)xdp->data_end; in encap_v6()
307 if (new_eth + 1 > data_end || in encap_v6()
308 old_eth + 1 > data_end || ip6h + 1 > data_end) in encap_v6()
343 void *data_end; in encap_v4() local
351 data_end = (void *)(long)xdp->data_end; in encap_v4()
355 if (new_eth + 1 > data_end || in encap_v4()
356 old_eth + 1 > data_end || iph + 1 > data_end) in encap_v4()
386 bool decap_v6(struct xdp_md *xdp, void **data, void **data_end, bool inner_v4) in decap_v6() argument
402 *data_end = (void *)(long)xdp->data_end; in decap_v6()
407 bool decap_v4(struct xdp_md *xdp, void **data, void **data_end) in decap_v4() argument
420 *data_end = (void *)(long)xdp->data_end; in decap_v4()
425 int swap_mac_and_send(void *data, void *data_end) in swap_mac_and_send() argument
438 int send_icmp_reply(void *data, void *data_end) in send_icmp_reply() argument
449 + sizeof(struct iphdr) + sizeof(struct icmphdr) > data_end) in send_icmp_reply()
467 return swap_mac_and_send(data, data_end); in send_icmp_reply()
471 int send_icmp6_reply(void *data, void *data_end) in send_icmp6_reply() argument
479 + sizeof(struct ipv6hdr) + sizeof(struct icmp6hdr) > data_end) in send_icmp6_reply()
491 return swap_mac_and_send(data, data_end); in send_icmp6_reply()
495 int parse_icmpv6(void *data, void *data_end, __u64 off, in parse_icmpv6() argument
502 if (icmp_hdr + 1 > data_end) in parse_icmpv6()
505 return send_icmp6_reply(data, data_end); in parse_icmpv6()
510 if (ip6h + 1 > data_end) in parse_icmpv6()
520 int parse_icmp(void *data, void *data_end, __u64 off, in parse_icmp() argument
527 if (icmp_hdr + 1 > data_end) in parse_icmp()
530 return send_icmp_reply(data, data_end); in parse_icmp()
535 if (iph + 1 > data_end) in parse_icmp()
642 void *data_end) in process_l3_headers_v6() argument
649 if (ip6h + 1 > data_end) in process_l3_headers_v6()
659 action = parse_icmpv6(data, data_end, off, pckt); in process_l3_headers_v6()
673 void *data_end) in process_l3_headers_v4() argument
680 if (iph + 1 > data_end) in process_l3_headers_v4()
691 action = parse_icmp(data, data_end, off, pckt); in process_l3_headers_v4()
702 static int process_packet(void *data, __u64 off, void *data_end, in process_packet() argument
725 &pkt_bytes, data, data_end); in process_packet()
728 &pkt_bytes, data, data_end); in process_packet()
733 if (!parse_tcp(data, data_end, is_ipv6, &pckt)) in process_packet()
736 if (!parse_udp(data, data_end, is_ipv6, &pckt)) in process_packet()
757 if (data_end - data > 1400) in process_packet()
804 data_end = (void *)(long)xdp->data_end; in process_packet()
805 if (data + 4 > data_end) in process_packet()
815 void *data_end = (void *)(long)ctx->data_end; in balancer_ingress() local
821 if (data + nh_off > data_end) in balancer_ingress()
825 return process_packet(data, nh_off, data_end, 0, ctx); in balancer_ingress()
827 return process_packet(data, nh_off, data_end, 1, ctx); in balancer_ingress()