/kernel/linux/linux-5.10/net/netfilter/ |
D | nf_flow_table_ip.c | 21 struct sk_buff *skb, unsigned int thoff) in nf_flow_state_check() argument 28 tcph = (void *)(skb_network_header(skb) + thoff); in nf_flow_state_check() 37 static int nf_flow_nat_ip_tcp(struct sk_buff *skb, unsigned int thoff, in nf_flow_nat_ip_tcp() argument 42 if (skb_try_make_writable(skb, thoff + sizeof(*tcph))) in nf_flow_nat_ip_tcp() 45 tcph = (void *)(skb_network_header(skb) + thoff); in nf_flow_nat_ip_tcp() 51 static int nf_flow_nat_ip_udp(struct sk_buff *skb, unsigned int thoff, in nf_flow_nat_ip_udp() argument 56 if (skb_try_make_writable(skb, thoff + sizeof(*udph))) in nf_flow_nat_ip_udp() 59 udph = (void *)(skb_network_header(skb) + thoff); in nf_flow_nat_ip_udp() 71 unsigned int thoff, __be32 addr, in nf_flow_nat_ip_l4proto() argument 76 if (nf_flow_nat_ip_tcp(skb, thoff, addr, new_addr) < 0) in nf_flow_nat_ip_l4proto() [all …]
|
D | xt_l2tp.c | 79 static bool l2tp_udp_mt(const struct sk_buff *skb, struct xt_action_param *par, u16 thoff) in l2tp_udp_mt() argument 83 int offs = thoff + uhlen; in l2tp_udp_mt() 139 static bool l2tp_ip_mt(const struct sk_buff *skb, struct xt_action_param *par, u16 thoff) in l2tp_ip_mt() argument 147 lh = skb_header_pointer(skb, thoff, sizeof(lhbuf), &lhbuf); in l2tp_ip_mt() 155 lh = skb_header_pointer(skb, thoff + 8, sizeof(lhbuf), in l2tp_ip_mt() 178 return l2tp_udp_mt(skb, par, par->thoff); in l2tp_mt4() 180 return l2tp_ip_mt(skb, par, par->thoff); in l2tp_mt4() 189 unsigned int thoff = 0; in l2tp_mt6() local 193 ipproto = ipv6_find_hdr(skb, &thoff, -1, &fragoff, NULL); in l2tp_mt6() 200 return l2tp_udp_mt(skb, par, thoff); in l2tp_mt6() [all …]
|
D | nf_flow_table_core.c | 392 static int nf_flow_nat_port_tcp(struct sk_buff *skb, unsigned int thoff, in nf_flow_nat_port_tcp() argument 397 if (skb_try_make_writable(skb, thoff + sizeof(*tcph))) in nf_flow_nat_port_tcp() 400 tcph = (void *)(skb_network_header(skb) + thoff); in nf_flow_nat_port_tcp() 406 static int nf_flow_nat_port_udp(struct sk_buff *skb, unsigned int thoff, in nf_flow_nat_port_udp() argument 411 if (skb_try_make_writable(skb, thoff + sizeof(*udph))) in nf_flow_nat_port_udp() 414 udph = (void *)(skb_network_header(skb) + thoff); in nf_flow_nat_port_udp() 425 static int nf_flow_nat_port(struct sk_buff *skb, unsigned int thoff, in nf_flow_nat_port() argument 430 if (nf_flow_nat_port_tcp(skb, thoff, port, new_port) < 0) in nf_flow_nat_port() 434 if (nf_flow_nat_port_udp(skb, thoff, port, new_port) < 0) in nf_flow_nat_port() 443 struct sk_buff *skb, unsigned int thoff, in nf_flow_snat_port() argument [all …]
|
D | xt_TPROXY.c | 121 int thoff = 0; in tproxy_tg6_v1() local 124 tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL); in tproxy_tg6_v1() 130 hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr); in tproxy_tg6_v1() 140 sk = nf_tproxy_get_sock_v6(xt_net(par), skb, thoff, tproto, in tproxy_tg6_v1() 152 sk = nf_tproxy_handle_time_wait6(skb, tproto, thoff, in tproxy_tg6_v1() 161 sk = nf_tproxy_get_sock_v6(xt_net(par), skb, thoff, in tproxy_tg6_v1()
|
D | nft_tproxy.c | 92 int thoff = pkt->xt.thoff; in nft_tproxy_eval_v6() local 107 hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr); in nft_tproxy_eval_v6() 117 sk = nf_tproxy_get_sock_v6(nft_net(pkt), skb, thoff, l4proto, in nft_tproxy_eval_v6() 134 sk = nf_tproxy_handle_time_wait6(skb, l4proto, thoff, in nft_tproxy_eval_v6() 143 sk = nf_tproxy_get_sock_v6(nft_net(pkt), skb, thoff, in nft_tproxy_eval_v6()
|
D | xt_tcpmss.c | 36 th = skb_header_pointer(skb, par->thoff, sizeof(_tcph), &_tcph); in tcpmss_mt() 49 op = skb_header_pointer(skb, par->thoff + sizeof(*th), optlen, _opt); in tcpmss_mt()
|
D | xt_tcpudp.c | 87 th = skb_header_pointer(skb, par->thoff, sizeof(_tcph), &_tcph); in tcp_mt() 112 if (!tcp_find_option(tcpinfo->option, skb, par->thoff, in tcp_mt() 139 uh = skb_header_pointer(skb, par->thoff, sizeof(_udph), &_udph); in udp_mt()
|
D | nft_synproxy.c | 112 int thoff = pkt->xt.thoff; in nft_synproxy_do_eval() local 121 if (nf_ip_checksum(skb, nft_hook(pkt), thoff, IPPROTO_TCP)) { in nft_synproxy_do_eval() 126 tcp = skb_header_pointer(skb, pkt->xt.thoff, in nft_synproxy_do_eval() 134 if (!synproxy_parse_options(skb, thoff, tcp, &opts)) { in nft_synproxy_do_eval()
|
D | nf_synproxy_core.c | 673 unsigned int thoff; in ipv4_synproxy_hook() local 687 thoff = ip_hdrlen(skb); in ipv4_synproxy_hook() 688 th = skb_header_pointer(skb, thoff, sizeof(_th), &_th); in ipv4_synproxy_hook() 714 if (!synproxy_parse_options(skb, thoff, th, &opts)) in ipv4_synproxy_hook() 743 if (!synproxy_parse_options(skb, thoff, th, &opts)) in ipv4_synproxy_hook() 770 synproxy_tstamp_adjust(skb, thoff, th, ct, ctinfo, synproxy); in ipv4_synproxy_hook() 1092 int thoff; in ipv6_synproxy_hook() local 1106 thoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr, in ipv6_synproxy_hook() 1108 if (thoff < 0 || nexthdr != IPPROTO_TCP) in ipv6_synproxy_hook() 1111 th = skb_header_pointer(skb, thoff, sizeof(_th), &_th); in ipv6_synproxy_hook() [all …]
|
/kernel/linux/linux-5.10/include/net/netfilter/ |
D | nf_tables_ipv6.h | 13 int protohdr, thoff = 0; in nft_set_pktinfo_ipv6() local 16 protohdr = ipv6_find_hdr(pkt->skb, &thoff, -1, &frag_off, &flags); in nft_set_pktinfo_ipv6() 24 pkt->xt.thoff = thoff; in nft_set_pktinfo_ipv6() 34 unsigned int thoff = 0; in __nft_set_pktinfo_ipv6_validate() local 51 protohdr = ipv6_find_hdr(pkt->skb, &thoff, -1, &frag_off, &flags); in __nft_set_pktinfo_ipv6_validate() 57 pkt->xt.thoff = thoff; in __nft_set_pktinfo_ipv6_validate() 79 unsigned int thoff = 0; in nft_set_pktinfo_ipv6_ingress() local 99 protohdr = ipv6_find_hdr(pkt->skb, &thoff, -1, &frag_off, &flags); in nft_set_pktinfo_ipv6_ingress() 105 pkt->xt.thoff = thoff; in nft_set_pktinfo_ipv6_ingress()
|
D | nf_tables_ipv4.h | 16 pkt->xt.thoff = ip_hdrlen(pkt->skb); in nft_set_pktinfo_ipv4() 24 u32 len, thoff; in __nft_set_pktinfo_ipv4_validate() local 35 thoff = iph->ihl * 4; in __nft_set_pktinfo_ipv4_validate() 38 else if (len < thoff) in __nft_set_pktinfo_ipv4_validate() 43 pkt->xt.thoff = thoff; in __nft_set_pktinfo_ipv4_validate() 60 u32 len, thoff; in nft_set_pktinfo_ipv4_ingress() local 70 thoff = iph->ihl * 4; in nft_set_pktinfo_ipv4_ingress() 74 } else if (len < thoff) { in nft_set_pktinfo_ipv4_ingress() 80 pkt->xt.thoff = thoff; in nft_set_pktinfo_ipv4_ingress()
|
D | nf_tproxy.h | 107 nf_tproxy_handle_time_wait6(struct sk_buff *skb, int tproto, int thoff, 114 nf_tproxy_get_sock_v6(struct net *net, struct sk_buff *skb, int thoff,
|
/kernel/linux/linux-5.10/tools/testing/selftests/bpf/progs/ |
D | bpf_flow.c | 97 __u16 thoff = skb->flow_keys->thoff; in bpf_flow_dissect_get_header() local 101 if (thoff > (USHRT_MAX - hdr_size)) in bpf_flow_dissect_get_header() 104 hdr = data + thoff; in bpf_flow_dissect_get_header() 108 if (bpf_skb_load_bytes(skb, thoff, buffer, hdr_size)) in bpf_flow_dissect_get_header() 188 keys->thoff += sizeof(*gre); /* Step over GRE Flags and Proto */ in parse_ip_proto() 190 keys->thoff += 4; /* Step over chksum and Padding */ in parse_ip_proto() 192 keys->thoff += 4; /* Step over key */ in parse_ip_proto() 194 keys->thoff += 4; /* Step over sequence number */ in parse_ip_proto() 206 keys->thoff += sizeof(*eth); in parse_ip_proto() 282 keys->thoff += iph->ihl << 2; in PROG() [all …]
|
/kernel/linux/linux-5.10/net/ipv6/netfilter/ |
D | nf_socket_ipv6.c | 105 int thoff = 0, tproto; in nf_sk_lookup_slow_v6() local 107 tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL); in nf_sk_lookup_slow_v6() 117 hp = skb_header_pointer(skb, thoff, tproto == IPPROTO_UDP ? in nf_sk_lookup_slow_v6() 128 thoff + __tcp_hdrlen((struct tcphdr *)hp) : in nf_sk_lookup_slow_v6() 129 thoff + sizeof(*hp); in nf_sk_lookup_slow_v6() 132 if (extract_icmp6_fields(skb, thoff, &tproto, &saddr, &daddr, in nf_sk_lookup_slow_v6()
|
D | nf_tproxy_ipv6.c | 39 nf_tproxy_handle_time_wait6(struct sk_buff *skb, int tproto, int thoff, in nf_tproxy_handle_time_wait6() argument 48 hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr); in nf_tproxy_handle_time_wait6() 59 sk2 = nf_tproxy_get_sock_v6(net, skb, thoff, tproto, in nf_tproxy_handle_time_wait6() 76 nf_tproxy_get_sock_v6(struct net *net, struct sk_buff *skb, int thoff, in nf_tproxy_get_sock_v6() argument 89 hp = skb_header_pointer(skb, thoff, in nf_tproxy_get_sock_v6() 97 thoff + __tcp_hdrlen(hp), in nf_tproxy_get_sock_v6()
|
D | nf_reject_ipv6.c | 243 int thoff; in reject6_csum_ok() local 251 thoff = ipv6_skip_exthdr(skb, ((u8 *)(ip6h + 1) - skb->data), &proto, &fo); in reject6_csum_ok() 253 if (thoff < 0 || thoff >= skb->len || (fo & htons(~0x7)) != 0) in reject6_csum_ok() 259 return nf_ip6_checksum(skb, hook, thoff, proto) == 0; in reject6_csum_ok()
|
D | ip6t_SYNPROXY.c | 21 if (nf_ip6_checksum(skb, xt_hooknum(par), par->thoff, IPPROTO_TCP)) in synproxy_tg6() 24 th = skb_header_pointer(skb, par->thoff, sizeof(_th), &_th); in synproxy_tg6() 28 if (!synproxy_parse_options(skb, par->thoff, th, &opts)) in synproxy_tg6()
|
/kernel/linux/linux-5.10/tools/testing/selftests/bpf/prog_tests/ |
D | flow_dissector.c | 30 got.thoff, expected.thoff, \ 121 .thoff = ETH_HLEN + sizeof(struct iphdr), 141 .thoff = ETH_HLEN + sizeof(struct ipv6hdr), 163 .thoff = ETH_HLEN + VLAN_HLEN + sizeof(struct iphdr), 185 .thoff = ETH_HLEN + VLAN_HLEN * 2 + 209 .thoff = ETH_HLEN + sizeof(struct iphdr), 234 .thoff = ETH_HLEN + sizeof(struct iphdr), 256 .thoff = ETH_HLEN + sizeof(struct ipv6hdr) + 281 .thoff = ETH_HLEN + sizeof(struct ipv6hdr) + 303 .thoff = ETH_HLEN + sizeof(struct ipv6hdr), [all …]
|
/kernel/linux/linux-5.10/net/ipv4/netfilter/ |
D | ipt_SYNPROXY.c | 21 if (nf_ip_checksum(skb, xt_hooknum(par), par->thoff, IPPROTO_TCP)) in synproxy_tg4() 24 th = skb_header_pointer(skb, par->thoff, sizeof(_th), &_th); in synproxy_tg4() 28 if (!synproxy_parse_options(skb, par->thoff, th, &opts)) in synproxy_tg4()
|
/kernel/linux/linux-5.10/net/ipv6/ |
D | tcpv6_offload.c | 29 INDIRECT_CALLABLE_SCOPE int tcp6_gro_complete(struct sk_buff *skb, int thoff) in tcp6_gro_complete() argument 34 th->check = ~tcp_v6_check(skb->len - thoff, &iph->saddr, in tcp6_gro_complete()
|
/kernel/linux/linux-5.10/Documentation/bpf/ |
D | prog_flow_dissector.rst | 27 * ``thoff`` - initial offset of the transport header, initialized to nhoff 32 bpf_flow_keys`` fields. Input arguments ``nhoff/thoff/n_proto`` should be 55 flow_keys->thoff = nhoff 72 flow_keys->thoff = nhoff 91 flow_keys->thoff = nhoff
|
/kernel/linux/linux-5.10/net/bridge/netfilter/ |
D | nft_reject_bridge.c | 221 int thoff; in reject6_br_csum_ok() local 233 thoff = ipv6_skip_exthdr(skb, ((u8*)(ip6h+1) - skb->data), &proto, &fo); in reject6_br_csum_ok() 234 if (thoff < 0 || thoff >= skb->len || (fo & htons(~0x7)) != 0) in reject6_br_csum_ok() 240 return nf_ip6_checksum(skb, hook, thoff, proto) == 0; in reject6_br_csum_ok()
|
/kernel/linux/linux-5.10/net/core/ |
D | flow_dissector.c | 115 __be32 __skb_flow_get_ports(const struct sk_buff *skb, int thoff, u8 ip_proto, in __skb_flow_get_ports() argument 128 ports = __skb_header_pointer(skb, thoff + poff, in __skb_flow_get_ports() 163 void *data, int thoff, int hlen) in skb_flow_get_icmp_tci() argument 167 ih = __skb_header_pointer(skb, thoff, sizeof(_ih), data, hlen, &_ih); in skb_flow_get_icmp_tci() 190 void *data, int thoff, int hlen) in __skb_flow_dissect_icmp() argument 201 skb_flow_get_icmp_tci(skb, key_icmp, data, thoff, hlen); in __skb_flow_dissect_icmp() 692 void *target_container, void *data, int thoff, int hlen) in __skb_flow_dissect_tcp() argument 700 th = __skb_header_pointer(skb, thoff, sizeof(_th), data, hlen, &_th); in __skb_flow_dissect_tcp() 797 key_control->thoff = flow_keys->thoff; in __skb_flow_bpf_to_target() 866 flow_keys->thoff = flow_keys->nhoff; in bpf_flow_dissect() [all …]
|
/kernel/linux/linux-5.10/net/sched/ |
D | em_ipset.c | 67 acpar.thoff = ip_hdrlen(skb); in em_ipset_match() 74 acpar.thoff = sizeof(struct ipv6hdr); in em_ipset_match()
|
D | act_ct.c | 422 unsigned int thoff; in tcf_ct_flow_table_fill_tuple_ipv4() local 429 thoff = iph->ihl * 4; in tcf_ct_flow_table_fill_tuple_ipv4() 432 unlikely(thoff != sizeof(struct iphdr))) in tcf_ct_flow_table_fill_tuple_ipv4() 443 thoff + sizeof(struct tcphdr) : in tcf_ct_flow_table_fill_tuple_ipv4() 444 thoff + sizeof(*ports))) in tcf_ct_flow_table_fill_tuple_ipv4() 449 *tcph = (void *)(skb_network_header(skb) + thoff); in tcf_ct_flow_table_fill_tuple_ipv4() 451 ports = (struct flow_ports *)(skb_network_header(skb) + thoff); in tcf_ct_flow_table_fill_tuple_ipv4() 469 unsigned int thoff; in tcf_ct_flow_table_fill_tuple_ipv6() local 483 thoff = sizeof(*ip6h); in tcf_ct_flow_table_fill_tuple_ipv6() 485 thoff + sizeof(struct tcphdr) : in tcf_ct_flow_table_fill_tuple_ipv6() [all …]
|