Home
last modified time | relevance | path

Searched refs:nhoff (Results 1 – 25 of 47) sorted by relevance

12

/Linux-v5.4/samples/bpf/
Dsockex2_kern.c45 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) in ip_is_fragment() argument
47 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) in ip_is_fragment()
61 static inline __u64 parse_ip(struct __sk_buff *skb, __u64 nhoff, __u64 *ip_proto, in parse_ip() argument
66 if (unlikely(ip_is_fragment(skb, nhoff))) in parse_ip()
69 *ip_proto = load_byte(skb, nhoff + offsetof(struct iphdr, protocol)); in parse_ip()
72 flow->src = load_word(skb, nhoff + offsetof(struct iphdr, saddr)); in parse_ip()
73 flow->dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr)); in parse_ip()
76 verlen = load_byte(skb, nhoff + 0/*offsetof(struct iphdr, ihl)*/); in parse_ip()
78 nhoff += 20; in parse_ip()
80 nhoff += (verlen & 0xF) << 2; in parse_ip()
[all …]
Dsockex3_kern.c74 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) in ip_is_fragment() argument
76 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) in ip_is_fragment()
141 __u32 nhoff = skb->cb[0]; in parse_ip_proto() local
152 nhoff + offsetof(struct gre_hdr, flags)); in parse_ip_proto()
154 nhoff + offsetof(struct gre_hdr, proto)); in parse_ip_proto()
159 nhoff += 4; in parse_ip_proto()
161 nhoff += 4; in parse_ip_proto()
163 nhoff += 4; in parse_ip_proto()
165 nhoff += 4; in parse_ip_proto()
167 skb->cb[0] = nhoff; in parse_ip_proto()
[all …]
Dparse_ldabs.c20 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) in ip_is_fragment() argument
22 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) in ip_is_fragment()
/Linux-v5.4/net/netfilter/
Dxt_HMARK.c132 hmark_set_tuple_ports(const struct sk_buff *skb, unsigned int nhoff, in hmark_set_tuple_ports() argument
141 nhoff += protoff; in hmark_set_tuple_ports()
142 if (skb_copy_bits(skb, nhoff, &t->uports, sizeof(t->uports)) < 0) in hmark_set_tuple_ports()
170 unsigned int nhoff = 0; in hmark_pkt_set_htuple_ipv6() local
175 nexthdr = ipv6_find_hdr(skb, &nhoff, -1, &fragoff, &flag); in hmark_pkt_set_htuple_ipv6()
182 if (get_inner6_hdr(skb, &nhoff)) { in hmark_pkt_set_htuple_ipv6()
183 ip6 = skb_header_pointer(skb, nhoff, sizeof(_ip6), &_ip6); in hmark_pkt_set_htuple_ipv6()
188 nexthdr = ipv6_find_hdr(skb, &nhoff, -1, &fragoff, &flag); in hmark_pkt_set_htuple_ipv6()
206 hmark_set_tuple_ports(skb, nhoff, t, info); in hmark_pkt_set_htuple_ipv6()
231 static int get_inner_hdr(const struct sk_buff *skb, int iphsz, int *nhoff) in get_inner_hdr() argument
[all …]
Dnf_conntrack_core.c241 unsigned int nhoff, in nf_ct_get_tuple() argument
257 nhoff += offsetof(struct iphdr, saddr); in nf_ct_get_tuple()
261 nhoff += offsetof(struct ipv6hdr, saddr); in nf_ct_get_tuple()
268 ap = skb_header_pointer(skb, nhoff, size, _addrs); in nf_ct_get_tuple()
319 static int ipv4_get_l4proto(const struct sk_buff *skb, unsigned int nhoff, in ipv4_get_l4proto() argument
326 iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph); in ipv4_get_l4proto()
336 dataoff = nhoff + (iph->ihl << 2); in ipv4_get_l4proto()
342 nhoff, iph->ihl << 2, skb->len); in ipv4_get_l4proto()
349 static int ipv6_get_l4proto(const struct sk_buff *skb, unsigned int nhoff, in ipv6_get_l4proto() argument
353 unsigned int extoff = nhoff + sizeof(struct ipv6hdr); in ipv6_get_l4proto()
[all …]
/Linux-v5.4/net/ipv6/
Dip6_offload.c83 int nhoff; in ipv6_gso_segment() local
87 nhoff = skb_network_header(skb) - skb_mac_header(skb); in ipv6_gso_segment()
122 ipv6h = (struct ipv6hdr *)(skb_mac_header(skb) + nhoff); in ipv6_gso_segment()
128 payload_len = skb->len - nhoff - sizeof(*ipv6h); in ipv6_gso_segment()
324 INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb, int nhoff) in ipv6_gro_complete() argument
327 struct ipv6hdr *iph = (struct ipv6hdr *)(skb->data + nhoff); in ipv6_gro_complete()
332 skb_set_inner_network_header(skb, nhoff); in ipv6_gro_complete()
335 iph->payload_len = htons(skb->len - nhoff - sizeof(*iph)); in ipv6_gro_complete()
339 nhoff += sizeof(*iph) + ipv6_exthdrs_len(iph, &ops); in ipv6_gro_complete()
344 udp6_gro_complete, skb, nhoff); in ipv6_gro_complete()
[all …]
Dudp_offload.c142 INDIRECT_CALLABLE_SCOPE int udp6_gro_complete(struct sk_buff *skb, int nhoff) in udp6_gro_complete() argument
145 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp6_gro_complete()
148 uh->check = ~udp_v6_check(skb->len - nhoff, &ipv6h->saddr, in udp6_gro_complete()
151 return udp_gro_complete(skb, nhoff, udp6_lib_lookup_skb); in udp6_gro_complete()
Dreassembly.c105 struct frag_hdr *fhdr, int nhoff, in ip6_frag_queue() argument
207 fq->nhoffset = nhoff; in ip6_frag_queue()
252 unsigned int nhoff; in ip6_frag_reasm() local
275 nhoff = fq->nhoffset; in ip6_frag_reasm()
276 skb_network_header(skb)[nhoff] = skb_transport_header(skb)[0]; in ip6_frag_reasm()
290 IP6CB(skb)->nhoff = nhoff; in ip6_frag_reasm()
349 IP6CB(skb)->nhoff = (u8 *)fhdr - skb_network_header(skb); in ipv6_frag_rcv()
363 ret = ip6_frag_queue(fq, skb, fhdr, IP6CB(skb)->nhoff, in ipv6_frag_rcv()
Dip6_input.c237 IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr); in ip6_rcv_core()
342 unsigned int nhoff; in ip6_protocol_deliver_rcu() local
351 nhoff = IP6CB(skb)->nhoff; in ip6_protocol_deliver_rcu()
355 nexthdr = skb_network_header(skb)[nhoff]; in ip6_protocol_deliver_rcu()
432 ICMPV6_UNK_NEXTHDR, nhoff); in ip6_protocol_deliver_rcu()
Desp6_offload.c57 int nhoff; in esp6_gro_receive() local
94 nhoff = esp6_nexthdr_esp_offset(ipv6_hdr(skb), offset); in esp6_gro_receive()
95 if (!nhoff) in esp6_gro_receive()
98 IP6CB(skb)->nhoff = nhoff; in esp6_gro_receive()
Dxfrm6_input.c48 skb_network_header(skb)[IP6CB(skb)->nhoff] = in xfrm6_transport_finish()
74 return xfrm6_rcv_spi(skb, skb_network_header(skb)[IP6CB(skb)->nhoff], in xfrm6_rcv_tnl()
Dexthdrs.c312 opt->nhoff = dstbuf; in ipv6_destopt_rcv()
314 opt->nhoff = opt->dst1; in ipv6_destopt_rcv()
409 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_srh_rcv()
537 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_rthdr_rcv()
850 opt->nhoff = sizeof(struct ipv6hdr); in ipv6_parse_hopopts()
/Linux-v5.4/net/ipv6/ila/
Dila_common.c77 size_t nhoff = sizeof(struct ipv6hdr); in ila_csum_adjust_transport() local
83 if (likely(pskb_may_pull(skb, nhoff + sizeof(struct tcphdr)))) { in ila_csum_adjust_transport()
85 (skb_network_header(skb) + nhoff); in ila_csum_adjust_transport()
93 if (likely(pskb_may_pull(skb, nhoff + sizeof(struct udphdr)))) { in ila_csum_adjust_transport()
95 (skb_network_header(skb) + nhoff); in ila_csum_adjust_transport()
108 nhoff + sizeof(struct icmp6hdr)))) { in ila_csum_adjust_transport()
110 (skb_network_header(skb) + nhoff); in ila_csum_adjust_transport()
/Linux-v5.4/net/core/
Dflow_dissector.c391 void *target_container, void *data, int nhoff, int hlen) in __skb_flow_dissect_mpls() argument
402 hdr = __skb_header_pointer(skb, nhoff, sizeof(_hdr), data, in __skb_flow_dissect_mpls()
437 void *target_container, void *data, int nhoff, int hlen) in __skb_flow_dissect_arp() argument
452 arp = __skb_header_pointer(skb, nhoff, sizeof(_arp), data, in __skb_flow_dissect_arp()
465 arp_eth = __skb_header_pointer(skb, nhoff + sizeof(_arp), in __skb_flow_dissect_arp()
796 __be16 proto, int nhoff, int hlen, unsigned int flags) in bpf_flow_dissect() argument
804 flow_keys->nhoff = nhoff; in bpf_flow_dissect()
805 flow_keys->thoff = flow_keys->nhoff; in bpf_flow_dissect()
819 flow_keys->nhoff = clamp_t(u16, flow_keys->nhoff, nhoff, hlen); in bpf_flow_dissect()
821 flow_keys->nhoff, hlen); in bpf_flow_dissect()
[all …]
/Linux-v5.4/tools/testing/selftests/bpf/prog_tests/
Dflow_dissector.c26 got.nhoff, expected.nhoff, \
116 .nhoff = ETH_HLEN,
136 .nhoff = ETH_HLEN,
158 .nhoff = ETH_HLEN + VLAN_HLEN,
180 .nhoff = ETH_HLEN + VLAN_HLEN * 2,
204 .nhoff = ETH_HLEN,
229 .nhoff = ETH_HLEN,
251 .nhoff = ETH_HLEN,
276 .nhoff = ETH_HLEN,
298 .nhoff = ETH_HLEN,
[all …]
/Linux-v5.4/Documentation/bpf/
Dprog_flow_dissector.rst26 * ``nhoff`` - initial offset of the networking header
27 * ``thoff`` - initial offset of the transport header, initialized to nhoff
32 bpf_flow_keys`` fields. Input arguments ``nhoff/thoff/n_proto`` should be
54 skb->data + flow_keys->nhoff point to the first byte of L3_HEADER
55 flow_keys->thoff = nhoff
71 skb->data + flow_keys->nhoff point the to first byte of TCI
72 flow_keys->thoff = nhoff
90 skb->data + flow_keys->nhoff point the to first byte of L3_HEADER
91 flow_keys->thoff = nhoff
/Linux-v5.4/net/nsh/
Dnsh.c82 int nhoff; in nsh_gso_segment() local
86 nhoff = skb->network_header - skb->mac_header; in nsh_gso_segment()
111 skb->network_header - nhoff, in nsh_gso_segment()
119 skb_set_mac_header(skb, -nhoff); in nsh_gso_segment()
/Linux-v5.4/net/bridge/netfilter/
Dnf_conntrack_bridge.c196 int nhoff, len; in nf_ct_br_ip_check() local
198 nhoff = skb_network_offset(skb); in nf_ct_br_ip_check()
205 if (skb->len < nhoff + len || in nf_ct_br_ip_check()
215 int nhoff, len; in nf_ct_br_ipv6_check() local
217 nhoff = skb_network_offset(skb); in nf_ct_br_ipv6_check()
222 len = ntohs(hdr->payload_len) + sizeof(struct ipv6hdr) + nhoff; in nf_ct_br_ipv6_check()
/Linux-v5.4/net/ipv4/
Dudp_offload.c507 int udp_gro_complete(struct sk_buff *skb, int nhoff, in udp_gro_complete() argument
510 __be16 newlen = htons(skb->len - nhoff); in udp_gro_complete()
511 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp_gro_complete()
531 nhoff + sizeof(struct udphdr)); in udp_gro_complete()
542 INDIRECT_CALLABLE_SCOPE int udp4_gro_complete(struct sk_buff *skb, int nhoff) in udp4_gro_complete() argument
545 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp4_gro_complete()
548 uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr, in udp4_gro_complete()
551 return udp_gro_complete(skb, nhoff, udp4_lib_lookup_skb); in udp4_gro_complete()
Dgre_offload.c227 static int gre_gro_complete(struct sk_buff *skb, int nhoff) in gre_gro_complete() argument
229 struct gre_base_hdr *greh = (struct gre_base_hdr *)(skb->data + nhoff); in gre_gro_complete()
248 err = ptype->callbacks.gro_complete(skb, nhoff + grehlen); in gre_gro_complete()
252 skb_set_inner_mac_header(skb, nhoff + grehlen); in gre_gro_complete()
Daf_inet.c1306 int nhoff; in inet_gso_segment() local
1311 nhoff = skb_network_header(skb) - skb_mac_header(skb); in inet_gso_segment()
1357 iph = (struct iphdr *)(skb_mac_header(skb) + nhoff); in inet_gso_segment()
1362 offset += skb->len - nhoff - ihl; in inet_gso_segment()
1363 tot_len = skb->len - nhoff; in inet_gso_segment()
1375 tot_len = skb->len - nhoff; in inet_gso_segment()
1379 tot_len = skb->len - nhoff; in inet_gso_segment()
1581 int inet_gro_complete(struct sk_buff *skb, int nhoff) in inet_gro_complete() argument
1583 __be16 newlen = htons(skb->len - nhoff); in inet_gro_complete()
1584 struct iphdr *iph = (struct iphdr *)(skb->data + nhoff); in inet_gro_complete()
[all …]
Dfou.c264 int nhoff) in fou_gro_complete() argument
277 err = ops->callbacks.gro_complete(skb, nhoff); in fou_gro_complete()
279 skb_set_inner_mac_header(skb, nhoff); in fou_gro_complete()
458 static int gue_gro_complete(struct sock *sk, struct sk_buff *skb, int nhoff) in gue_gro_complete() argument
461 struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff); in gue_gro_complete()
494 err = ops->callbacks.gro_complete(skb, nhoff + guehlen); in gue_gro_complete()
496 skb_set_inner_mac_header(skb, nhoff + guehlen); in gue_gro_complete()
/Linux-v5.4/net/ipv6/netfilter/
Dnf_conntrack_reasm.c170 const struct frag_hdr *fhdr, int nhoff) in nf_ct_frag6_queue() argument
280 fq->nhoffset = nhoff; in nf_ct_frag6_queue()
442 int fhoff, nhoff, ret; in nf_ct_frag6_gather() local
454 if (find_prev_fhdr(skb, &prevhdr, &nhoff, &fhoff) < 0) in nf_ct_frag6_gather()
474 ret = nf_ct_frag6_queue(fq, skb, fhdr, nhoff); in nf_ct_frag6_gather()
/Linux-v5.4/net/ethernet/
Deth.c502 int eth_gro_complete(struct sk_buff *skb, int nhoff) in eth_gro_complete() argument
504 struct ethhdr *eh = (struct ethhdr *)(skb->data + nhoff); in eth_gro_complete()
510 skb_set_inner_mac_header(skb, nhoff); in eth_gro_complete()
515 err = ptype->callbacks.gro_complete(skb, nhoff + in eth_gro_complete()
/Linux-v5.4/net/8021q/
Dvlan_core.c509 static int vlan_gro_complete(struct sk_buff *skb, int nhoff) in vlan_gro_complete() argument
511 struct vlan_hdr *vhdr = (struct vlan_hdr *)(skb->data + nhoff); in vlan_gro_complete()
519 err = ptype->callbacks.gro_complete(skb, nhoff + sizeof(*vhdr)); in vlan_gro_complete()

12