Home
last modified time | relevance | path

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

12

/linux/samples/bpf/
H A Dsockex2_kern.c45 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff)
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,
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 in parse_ip()
46 ip_is_fragment(struct __sk_buff * ctx,__u64 nhoff) ip_is_fragment() argument
62 parse_ip(struct __sk_buff * skb,__u64 nhoff,__u64 * ip_proto,struct flow_key_record * flow) parse_ip() argument
86 parse_ipv6(struct __sk_buff * skb,__u64 nhoff,__u64 * ip_proto,struct flow_key_record * flow) parse_ipv6() argument
103 __u64 nhoff = ETH_HLEN; flow_dissector() local
[all...]
H A Dsockex3_kern.c42 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) in ip_is_fragment() argument
44 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) in ip_is_fragment()
109 __u32 nhoff = skb->cb[0]; in parse_ip_proto() local
120 nhoff + offsetof(struct gre_hdr, flags)); in parse_ip_proto()
122 nhoff + offsetof(struct gre_hdr, proto)); in parse_ip_proto()
127 nhoff += 4; in parse_ip_proto()
129 nhoff += 4; in parse_ip_proto()
131 nhoff += 4; in parse_ip_proto()
133 nhoff += 4; in parse_ip_proto()
135 skb->cb[0] = nhoff; in parse_ip_proto()
[all …]
H A Dparse_ldabs.c21 static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) in ip_is_fragment() argument
23 return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) in ip_is_fragment()
/linux/net/netfilter/
H A 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 …]
H A Dnft_fwd_netdev.c104 int nhoff = skb_network_offset(skb); in nft_fwd_neigh_eval() local
117 if (skb_ensure_writable(skb, nhoff + sizeof(*iph))) { in nft_fwd_neigh_eval()
138 if (skb_ensure_writable(skb, nhoff + sizeof(*ip6h))) { in nft_fwd_neigh_eval()
H A Dnf_conntrack_core.c268 unsigned int nhoff, in nf_ct_get_tuple() argument
284 nhoff += offsetof(struct iphdr, saddr); in nf_ct_get_tuple()
288 nhoff += offsetof(struct ipv6hdr, saddr); in nf_ct_get_tuple()
295 ap = skb_header_pointer(skb, nhoff, size, _addrs); in nf_ct_get_tuple()
338 static int ipv4_get_l4proto(const struct sk_buff *skb, unsigned int nhoff, in ipv4_get_l4proto() argument
345 iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph); in ipv4_get_l4proto()
355 dataoff = nhoff + (iph->ihl << 2); in ipv4_get_l4proto()
361 nhoff, iph->ihl << 2, skb->len); in ipv4_get_l4proto()
368 static int ipv6_get_l4proto(const struct sk_buff *skb, unsigned int nhoff, in ipv6_get_l4proto() argument
372 unsigned int extoff = nhoff + sizeof(struct ipv6hdr); in ipv6_get_l4proto()
[all …]
/linux/net/core/
H A Dflow_dissector.c211 int nhoff, int hlen) in __skb_flow_dissect_ah() argument
219 hdr = __skb_header_pointer(skb, nhoff, sizeof(_hdr), data, hlen, &_hdr); in __skb_flow_dissect_ah()
233 int nhoff, int hlen) in __skb_flow_dissect_esp() argument
241 hdr = __skb_header_pointer(skb, nhoff, sizeof(_hdr), data, hlen, &_hdr); in __skb_flow_dissect_esp()
255 int nhoff, int hlen) in __skb_flow_dissect_l2tpv3() argument
265 hdr = __skb_header_pointer(skb, nhoff, sizeof(_hdr), data, hlen, &_hdr); in __skb_flow_dissect_l2tpv3()
517 void *target_container, const void *data, int nhoff, in __skb_flow_dissect_mpls() argument
531 hdr = __skb_header_pointer(skb, nhoff, sizeof(_hdr), data, in __skb_flow_dissect_mpls()
576 int nhoff, int hlen) in __skb_flow_dissect_arp() argument
591 arp = __skb_header_pointer(skb, nhoff, sizeo in __skb_flow_dissect_arp()
632 __skb_flow_dissect_cfm(const struct sk_buff * skb,struct flow_dissector * flow_dissector,void * target_container,const void * data,int nhoff,int hlen) __skb_flow_dissect_cfm() argument
854 __skb_flow_dissect_ports(const struct sk_buff * skb,struct flow_dissector * flow_dissector,void * target_container,const void * data,int nhoff,u8 ip_proto,int hlen) __skb_flow_dissect_ports() argument
1005 bpf_flow_dissect(struct bpf_prog * prog,struct bpf_flow_dissector * ctx,__be16 proto,int nhoff,int hlen,unsigned int flags) bpf_flow_dissect() argument
1061 __skb_flow_dissect(const struct net * net,const struct sk_buff * skb,struct flow_dissector * flow_dissector,void * target_container,const void * data,__be16 proto,int nhoff,int hlen,unsigned int flags) __skb_flow_dissect() argument
[all...]
/linux/Documentation/bpf/
H A 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/tools/testing/selftests/bpf/prog_tests/
H A Dflow_dissector.c111 .nhoff = ETH_HLEN,
132 .nhoff = ETH_HLEN,
155 .nhoff = ETH_HLEN + VLAN_HLEN,
178 .nhoff = ETH_HLEN + VLAN_HLEN * 2,
203 .nhoff = ETH_HLEN,
229 .nhoff = ETH_HLEN,
252 .nhoff = ETH_HLEN,
278 .nhoff = ETH_HLEN,
301 .nhoff = ETH_HLEN,
325 .nhoff = ETH_HLEN,
[all …]
/linux/net/ipv4/
H A Dgre_offload.c236 static int gre_gro_complete(struct sk_buff *skb, int nhoff) in gre_gro_complete() argument
238 struct gre_base_hdr *greh = (struct gre_base_hdr *)(skb->data + nhoff); in gre_gro_complete()
256 err = ptype->callbacks.gro_complete(skb, nhoff + grehlen); in gre_gro_complete()
258 skb_set_inner_mac_header(skb, nhoff + grehlen); in gre_gro_complete()
H A Daf_inet.c1376 int nhoff; in inet_gso_segment() local
1381 nhoff = skb_network_header(skb) - skb_mac_header(skb); in inet_gso_segment()
1416 skb->network_header = skb_mac_header(skb) + nhoff - skb->head; in inet_gso_segment()
1426 iph = (struct iphdr *)(skb_mac_header(skb) + nhoff); in inet_gso_segment()
1431 offset += skb->len - nhoff - ihl; in inet_gso_segment()
1432 tot_len = skb->len - nhoff; in inet_gso_segment()
1444 tot_len = skb->len - nhoff; in inet_gso_segment()
1448 tot_len = skb->len - nhoff; in inet_gso_segment()
1597 int inet_gro_complete(struct sk_buff *skb, int nhoff) in inet_gro_complete() argument
1599 struct iphdr *iph = (struct iphdr *)(skb->data + nhoff); in inet_gro_complete()
[all …]
H A Dicmp.c734 int nhoff; in icmp_ext_append() local
757 nhoff = skb_network_offset(skb); in icmp_ext_append()
758 payload_len = min(skb->len - nhoff, ICMP_EXT_ORIG_DGRAM_MIN_LEN); in icmp_ext_append()
763 if (pskb_trim(skb, nhoff + ICMP_EXT_ORIG_DGRAM_MIN_LEN) || in icmp_ext_append()
764 __skb_put_padto(skb, nhoff + ICMP_EXT_ORIG_DGRAM_MIN_LEN, false)) in icmp_ext_append()
/linux/net/ipv6/
H A Dip6_input.c303 IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr); in ip6_rcv_core()
409 unsigned int nhoff; in ip6_protocol_deliver_rcu() local
419 nhoff = IP6CB(skb)->nhoff; in ip6_protocol_deliver_rcu()
423 nexthdr = skb_network_header(skb)[nhoff]; in ip6_protocol_deliver_rcu()
506 ICMPV6_UNK_NEXTHDR, nhoff); in ip6_protocol_deliver_rcu()
H A Desp6_offload.c62 int nhoff; in esp6_gro_receive() local
108 nhoff = esp6_nexthdr_esp_offset(ipv6_hdr(skb), offset); in esp6_gro_receive()
109 if (!nhoff) in esp6_gro_receive()
112 IP6CB(skb)->nhoff = nhoff; in esp6_gro_receive()
H A Dxfrm6_input.c49 skb_network_header(skb)[IP6CB(skb)->nhoff] = in xfrm6_transport_finish()
228 return xfrm6_rcv_spi(skb, skb_network_header(skb)[IP6CB(skb)->nhoff], in xfrm6_rcv_tnl()
H A Dexthdrs.c330 opt->nhoff = dstbuf; in ipv6_destopt_rcv()
332 opt->nhoff = opt->dst1; in ipv6_destopt_rcv()
427 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_srh_rcv()
536 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_rpl_srh_rcv()
723 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb); in ipv6_rthdr_rcv()
1073 opt->nhoff = sizeof(struct ipv6hdr); in ipv6_parse_hopopts()
H A Dicmp.c569 int nhoff; in icmp6_ext_append() local
599 nhoff = skb_network_offset(skb); in icmp6_ext_append()
600 payload_len = min(skb->len - nhoff, ICMP_EXT_ORIG_DGRAM_MIN_LEN); in icmp6_ext_append()
605 if (pskb_trim(skb, nhoff + ICMP_EXT_ORIG_DGRAM_MIN_LEN) || in icmp6_ext_append()
606 __skb_put_padto(skb, nhoff + ICMP_EXT_ORIG_DGRAM_MIN_LEN, false)) in icmp6_ext_append()
H A Dxfrm6_tunnel.c219 return skb_network_header(skb)[IP6CB(skb)->nhoff]; in xfrm6_tunnel_input()
/linux/net/ipv6/netfilter/
H A Dnf_conntrack_reasm.c171 const struct frag_hdr *fhdr, int nhoff, in nf_ct_frag6_queue() argument
283 fq->nhoffset = nhoff; in nf_ct_frag6_queue()
449 int fhoff, nhoff, ret; in nf_ct_frag6_gather() local
462 if (find_prev_fhdr(skb, &prevhdr, &nhoff, &fhoff) < 0) in nf_ct_frag6_gather()
491 ret = nf_ct_frag6_queue(fq, skb, fhdr, nhoff, &refs); in nf_ct_frag6_gather()
/linux/net/ethernet/
H A Deth.c441 int eth_gro_complete(struct sk_buff *skb, int nhoff) in eth_gro_complete() argument
443 struct ethhdr *eh = (struct ethhdr *)(skb->data + nhoff); in eth_gro_complete()
449 skb_set_inner_mac_header(skb, nhoff); in eth_gro_complete()
455 skb, nhoff + sizeof(*eh)); in eth_gro_complete()
/linux/net/8021q/
H A Dvlan_core.c515 static int vlan_gro_complete(struct sk_buff *skb, int nhoff) in vlan_gro_complete() argument
517 struct vlan_hdr *vhdr = (struct vlan_hdr *)(skb->data + nhoff); in vlan_gro_complete()
526 skb, nhoff + sizeof(*vhdr)); in vlan_gro_complete()
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_rx.c1147 int nhoff = ETH_HLEN + rq->hw_gro_data->fk.control.thoff; in mlx5e_shampo_update_fin_psh_flags() local
1148 int len = nhoff + sizeof(struct tcphdr); in mlx5e_shampo_update_fin_psh_flags()
1153 last_tcp_hd = (struct tcphdr *)(last_hd_addr + nhoff); in mlx5e_shampo_update_fin_psh_flags()
1216 int nhoff = rq->hw_gro_data->fk.control.thoff - sizeof(struct iphdr); in mlx5e_shampo_update_hdr() local
1217 struct iphdr *ipv4 = (struct iphdr *)(skb->data + nhoff); in mlx5e_shampo_update_hdr()
1218 __be16 newlen = htons(skb->len - nhoff); in mlx5e_shampo_update_hdr()
1228 int nhoff = rq->hw_gro_data->fk.control.thoff - sizeof(struct ipv6hdr); in mlx5e_shampo_update_hdr() local
1229 struct ipv6hdr *ipv6 = (struct ipv6hdr *)(skb->data + nhoff); in mlx5e_shampo_update_hdr()
1231 ipv6->payload_len = htons(skb->len - nhoff - sizeof(*ipv6)); in mlx5e_shampo_update_hdr()
2291 int nhoff = len - sizeof(struct iphdr); in mlx5e_handle_rx_cqe_mpwrq_shampo() local
[all …]
/linux/tools/testing/selftests/bpf/progs/
H A Dbpf_flow.c418 keys->nhoff += sizeof(*vlan); in PROG()
426 keys->nhoff += sizeof(*vlan); in PROG()
/linux/drivers/net/bonding/
H A Dbond_main.c4113 int hlen, __be16 l2_proto, int *nhoff, int *ip_proto, bool l34) in bond_flow_ip() argument
4119 data = bond_pull_data(skb, data, hlen, *nhoff + sizeof(*iph)); in bond_flow_ip()
4123 iph = (const struct iphdr *)(data + *nhoff); in bond_flow_ip()
4125 *nhoff += iph->ihl << 2; in bond_flow_ip()
4129 data = bond_pull_data(skb, data, hlen, *nhoff + sizeof(*iph6)); in bond_flow_ip()
4133 iph6 = (const struct ipv6hdr *)(data + *nhoff); in bond_flow_ip()
4135 *nhoff += sizeof(*iph6); in bond_flow_ip()
4142 fk->ports.ports = skb_flow_get_ports(skb, *nhoff, *ip_proto, data, hlen); in bond_flow_ip()
4173 __be16 l2_proto, int nhoff, int hlen, struct flow_keys *fk) in bond_flow_dissect() argument
4184 l2_proto, nhoff, hlen, 0); in bond_flow_dissect()
[all …]
/linux/include/linux/
H A Dipv6.h163 __u16 nhoff; member

12