| /linux-6.15/net/core/ |
| H A D | flow_dissector.c | 945 if (flow_keys->is_frag) in __skb_flow_bpf_to_target() 949 if (flow_keys->is_encap) in __skb_flow_bpf_to_target() 1007 struct bpf_flow_keys *flow_keys = ctx->flow_keys; in bpf_flow_dissect() local 1011 memset(flow_keys, 0, sizeof(*flow_keys)); in bpf_flow_dissect() 1014 flow_keys->thoff = flow_keys->nhoff; in bpf_flow_dissect() 1026 flow_keys->nhoff = clamp_t(u16, flow_keys->nhoff, nhoff, hlen); in bpf_flow_dissect() 1027 flow_keys->thoff = clamp_t(u16, flow_keys->thoff, in bpf_flow_dissect() 1143 .flow_keys = &flow_keys, in __skb_flow_dissect() 1869 struct flow_keys keys; in __skb_get_hash_symmetric_net() 1893 struct flow_keys keys; in __skb_get_hash_net() [all …]
|
| /linux-6.15/include/net/ |
| H A D | flow_dissector.h | 405 struct flow_keys { struct 420 offsetof(struct flow_keys, FLOW_KEYS_HASH_START_FIELD) argument 422 __be32 flow_get_u32_src(const struct flow_keys *flow); 423 __be32 flow_get_u32_dst(const struct flow_keys *flow); 441 const struct flow_keys *flow); 443 static inline bool flow_keys_have_l4(const struct flow_keys *keys) in flow_keys_have_l4() 448 u32 flow_hash_from_keys(struct flow_keys *keys); 449 u32 flow_hash_from_keys_seed(struct flow_keys *keys, 469 struct bpf_flow_keys *flow_keys; member
|
| H A D | ip_fib.h | 360 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 421 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 545 const struct sk_buff *skb, struct flow_keys *flkeys); 557 struct flow_keys *keys) in fib_multipath_hash_from_keys() 569 struct flow_keys *keys) in fib_multipath_hash_from_keys()
|
| H A D | flow.h | 16 struct flow_keys; 194 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys);
|
| H A D | ip6_fib.h | 640 struct flow_keys *flkeys) in fib6_rules_early_flow_dissect() 686 struct flow_keys *flkeys) in fib6_rules_early_flow_dissect()
|
| /linux-6.15/tools/testing/selftests/bpf/prog_tests/ |
| H A D | flow_dissector_load_bytes.c | 7 struct bpf_flow_keys flow_keys; in serial_test_flow_dissector_load_bytes() local 32 .data_out = &flow_keys, in serial_test_flow_dissector_load_bytes() 33 .data_size_out = sizeof(flow_keys), in serial_test_flow_dissector_load_bytes() 45 ASSERT_EQ(topts.data_size_out, sizeof(flow_keys), in serial_test_flow_dissector_load_bytes()
|
| H A D | flow_dissector.c | 667 struct bpf_flow_keys flow_keys = {}; in run_tests_skb_less() local 690 err = bpf_map_lookup_elem(keys_fd, &key, &flow_keys); in run_tests_skb_less() 694 ASSERT_MEMEQ(&flow_keys, &tests[i].keys, in run_tests_skb_less() 819 struct bpf_flow_keys flow_keys; in test_flow_dissector_skb() local 823 .data_out = &flow_keys, in test_flow_dissector_skb() 844 ASSERT_EQ(topts.data_size_out, sizeof(flow_keys), in test_flow_dissector_skb() 846 ASSERT_MEMEQ(&flow_keys, &tests[i].keys, in test_flow_dissector_skb()
|
| /linux-6.15/Documentation/bpf/ |
| H A D | prog_flow_dissector.rst | 21 limited set of fields is allowed: ``data``, ``data_end`` and ``flow_keys``. 22 ``flow_keys`` is ``struct bpf_flow_keys`` and contains flow dissector input 54 skb->data + flow_keys->nhoff point to the first byte of L3_HEADER 55 flow_keys->thoff = nhoff 56 flow_keys->n_proto = ETHER_TYPE 71 skb->data + flow_keys->nhoff point the to first byte of TCI 72 flow_keys->thoff = nhoff 73 flow_keys->n_proto = TPID 90 skb->data + flow_keys->nhoff point the to first byte of L3_HEADER 91 flow_keys->thoff = nhoff [all …]
|
| /linux-6.15/tools/testing/selftests/bpf/progs/ |
| H A D | bpf_flow.c | 98 __u16 thoff = skb->flow_keys->thoff; in bpf_flow_dissect_get_header() 118 struct bpf_flow_keys *keys = skb->flow_keys; in parse_eth_proto() 146 struct bpf_flow_keys *keys = skb->flow_keys; in _dissect() 167 struct bpf_flow_keys *keys = skb->flow_keys; in parse_ip_proto() 258 struct bpf_flow_keys *keys = skb->flow_keys; in parse_ipv6_proto() 278 struct bpf_flow_keys *keys = skb->flow_keys; in PROG() 326 struct bpf_flow_keys *keys = skb->flow_keys; in PROG() 348 struct bpf_flow_keys *keys = skb->flow_keys; in PROG() 366 struct bpf_flow_keys *keys = skb->flow_keys; in PROG() 394 struct bpf_flow_keys *keys = skb->flow_keys; in PROG() [all …]
|
| H A D | verifier_value_illegal_alu.c | 164 : __imm_const(flow_keys_off, offsetof(struct __sk_buff, flow_keys)) in flow_keys_illegal_variable_offset_alu()
|
| H A D | verifier_load_acquire.c | 168 offsetof(struct __sk_buff, flow_keys)), in load_acquire_from_flow_keys_pointer()
|
| H A D | verifier_store_release.c | 188 offsetof(struct __sk_buff, flow_keys)), in store_release_to_flow_keys_pointer()
|
| H A D | verifier_cgroup_skb.c | 176 : __imm_const(__sk_buff_flow_keys, offsetof(struct __sk_buff, flow_keys)) in flow_keys_for_cgroup_skb()
|
| /linux-6.15/net/sched/ |
| H A D | cls_flow.c | 67 static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_src() 88 const struct flow_keys *flow) in flow_get_proto() 94 const struct flow_keys *flow) in flow_get_proto_src() 103 const struct flow_keys *flow) in flow_get_proto_dst() 153 const struct flow_keys *flow) in flow_get_nfct_src() 166 const struct flow_keys *flow) in flow_get_nfct_dst() 179 const struct flow_keys *flow) in flow_get_nfct_proto_src() 187 const struct flow_keys *flow) in flow_get_nfct_proto_dst() 309 struct flow_keys flow_keys; in flow_classify() local 316 skb_flow_dissect_flow_keys(skb, &flow_keys, 0); in flow_classify() [all …]
|
| /linux-6.15/drivers/net/ethernet/cisco/enic/ |
| H A D | enic_clsf.c | 21 int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq) in enic_addfltr_5t() 157 struct flow_keys *k) in htbl_key_search() 174 struct flow_keys keys; in enic_rx_flow_steer()
|
| H A D | enic_clsf.h | 10 int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq);
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | tc_ct.c | 1409 struct flow_keys flow_keys; in mlx5_tc_ct_skb_to_tuple() local 1416 if (flow_keys.basic.ip_proto != IPPROTO_TCP && in mlx5_tc_ct_skb_to_tuple() 1417 flow_keys.basic.ip_proto != IPPROTO_UDP && in mlx5_tc_ct_skb_to_tuple() 1418 flow_keys.basic.ip_proto != IPPROTO_GRE) in mlx5_tc_ct_skb_to_tuple() 1421 if (flow_keys.basic.ip_proto == IPPROTO_TCP || in mlx5_tc_ct_skb_to_tuple() 1422 flow_keys.basic.ip_proto == IPPROTO_UDP) { in mlx5_tc_ct_skb_to_tuple() 1423 tuple->port.src = flow_keys.ports.src; in mlx5_tc_ct_skb_to_tuple() 1424 tuple->port.dst = flow_keys.ports.dst; in mlx5_tc_ct_skb_to_tuple() 1426 tuple->n_proto = flow_keys.basic.n_proto; in mlx5_tc_ct_skb_to_tuple() 1427 tuple->ip_proto = flow_keys.basic.ip_proto; in mlx5_tc_ct_skb_to_tuple() [all …]
|
| H A D | ptp.h | 73 struct flow_keys fk; in mlx5e_use_ptpsq()
|
| /linux-6.15/net/ipv4/ |
| H A D | netfilter.c | 29 struct flow_keys flkeys; in ip_route_me_harder()
|
| H A D | route.c | 1898 struct flow_keys *hash_keys) in ip_multipath_l3_keys() 1938 struct flow_keys keys, hash_keys; in fib_multipath_custom_hash_outer() 1967 struct flow_keys keys, hash_keys; in fib_multipath_custom_hash_inner() 2027 struct flow_keys hash_keys; in fib_multipath_custom_hash_fl4() 2050 const struct sk_buff *skb, struct flow_keys *flkeys) in fib_multipath_hash() 2053 struct flow_keys hash_keys; in fib_multipath_hash() 2072 struct flow_keys keys; in fib_multipath_hash() 2106 struct flow_keys keys; in fib_multipath_hash() 2151 __be32 saddr, dscp_t dscp, struct flow_keys *hkeys) in ip_mkroute_input() 2249 struct flow_keys *flkeys = NULL, _flkeys; in ip_route_input_slow()
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | en_arfs.c | 658 const struct flow_keys *fk, in arfs_alloc_rule() 699 static bool arfs_cmp(const struct arfs_tuple *tuple, const struct flow_keys *fk) in arfs_cmp() 717 const struct flow_keys *fk) in arfs_find_rule() 738 struct flow_keys fk; in mlx5e_rx_flow_steer()
|
| /linux-6.15/drivers/net/ethernet/intel/ice/ |
| H A D | ice_arfs.c | 301 ice_arfs_build_entry(struct ice_vsi *vsi, const struct flow_keys *fk, in ice_arfs_build_entry() 403 struct flow_keys fk; in ice_rx_flow_steer()
|
| /linux-6.15/drivers/net/bonding/ |
| H A D | bond_main.c | 218 .offset = offsetof(struct flow_keys, control), 222 .offset = offsetof(struct flow_keys, basic), 226 .offset = offsetof(struct flow_keys, addrs.v4addrs), 230 .offset = offsetof(struct flow_keys, addrs.v6addrs), 238 .offset = offsetof(struct flow_keys, ports), 242 .offset = offsetof(struct flow_keys, icmp), 246 .offset = offsetof(struct flow_keys, vlan), 250 .offset = offsetof(struct flow_keys, tags), 254 .offset = offsetof(struct flow_keys, keyid), 4316 struct flow_keys flow; in __bond_xmit_hash() [all …]
|
| /linux-6.15/net/bpf/ |
| H A D | test_run.c | 1370 struct bpf_flow_keys flow_keys; in bpf_prog_test_run_flow_dissector() local 1404 ctx.flow_keys = &flow_keys; in bpf_prog_test_run_flow_dissector() 1418 ret = bpf_test_finish(kattr, uattr, &flow_keys, NULL, in bpf_prog_test_run_flow_dissector() 1419 sizeof(flow_keys), retval, duration); in bpf_prog_test_run_flow_dissector()
|
| /linux-6.15/net/openvswitch/ |
| H A D | actions.c | 82 static struct action_flow_keys __percpu *flow_keys; variable 90 struct action_flow_keys *keys = this_cpu_ptr(flow_keys); in clone_key() 1711 flow_keys = alloc_percpu(struct action_flow_keys); in action_fifos_init() 1712 if (!flow_keys) { in action_fifos_init() 1723 free_percpu(flow_keys); in action_fifos_exit()
|