Lines Matching refs:nhoff

46 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff)
48 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off))
62 static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto,
67 if (unlikely(ip_is_fragment(skb, nhoff)))
70 *ip_proto = load_byte(skb, nhoff + offsetof(struct iphdr, protocol));
73 flow->src = load_word(skb, nhoff + offsetof(struct iphdr, saddr));
74 flow->dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr));
77 verlen = load_byte(skb, nhoff + 0/*offsetof(struct iphdr, ihl)*/);
79 nhoff += 20;
81 nhoff += (verlen & 0xF) << 2;
83 return nhoff;
86 static inline __u64 parse_ipv6(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto,
90 nhoff + offsetof(struct ipv6hdr, nexthdr));
92 nhoff + offsetof(struct ipv6hdr, saddr));
94 nhoff + offsetof(struct ipv6hdr, daddr));
95 nhoff += sizeof(struct ipv6hdr);
97 return nhoff;
103 __u64 nhoff = ETH_HLEN;
109 proto = load_half(skb, nhoff + offsetof(struct vlan_hdr,
111 nhoff += sizeof(struct vlan_hdr);
115 proto = load_half(skb, nhoff + offsetof(struct vlan_hdr,
117 nhoff += sizeof(struct vlan_hdr);
121 nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
123 nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
135 nhoff + offsetof(struct gre_hdr, flags));
137 nhoff + offsetof(struct gre_hdr, proto));
143 nhoff += 4;
145 nhoff += 4;
147 nhoff += 4;
149 nhoff += 4;
153 nhoff + offsetof(struct vlan_hdr,
155 nhoff += sizeof(struct vlan_hdr);
159 nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
161 nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
167 nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
170 nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
179 nhoff += poff;
180 flow->ports = load_word(skb, nhoff);
183 flow->thoff = (__u16) nhoff;