Home
last modified time | relevance | path

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

/linux/include/net/
H A Dflow_dissector.h405 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 Dip6_fib.h691 struct flow_keys *flkeys) in fib6_rules_early_flow_dissect()
737 struct flow_keys *flkeys) in fib6_rules_early_flow_dissect()
H A Dip.h605 static inline void iph_to_flow_copy_v4addrs(struct flow_keys *flow, in iph_to_flow_copy_v4addrs()
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dflow_dissector_load_bytes.c7 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 Dflow_dissector.c667 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/Documentation/bpf/
H A Dprog_flow_dissector.rst21 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/tools/testing/selftests/bpf/progs/
H A Dbpf_flow.c98 __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 Dverifier_value_illegal_alu.c169 __description("flow_keys illegal alu op with variable offset")
170 __failure __msg("R7 pointer arithmetic on flow_keys prohibited")
183 : __imm_const(flow_keys_off, offsetof(struct __sk_buff, flow_keys)),
H A Dverifier_cgroup_skb.c176 : __imm_const(__sk_buff_flow_keys, offsetof(struct __sk_buff, flow_keys)) in flow_keys_for_cgroup_skb()
/linux/net/sched/
H A Dcls_flow.c72 static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_src()
82 static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_dst()
93 const struct flow_keys *flow) in flow_get_proto_src()
99 const struct flow_keys *flow) in flow_get_proto_src()
108 const struct flow_keys *flow) in flow_get_proto_dst()
158 const struct flow_keys *flow) in flow_get_nfct_src()
171 const struct flow_keys *flow) in flow_get_nfct_dst()
184 const struct flow_keys *flow) in flow_get_nfct_proto_src()
192 const struct flow_keys *flow) in flow_get_nfct_proto_dst()
246 static u32 flow_key_get(struct sk_buff *skb, int key, struct flow_keys *flo in flow_key_get()
309 struct flow_keys flow_keys; flow_classify() local
[all...]
H A Dsch_choke.c151 struct flow_keys temp; in choke_match_flow()
H A Dsch_cake.c593 static bool cake_update_flowkeys(struct flow_keys *keys, in cake_update_flowkeys()
717 struct flow_keys keys, host_keys; in cake_hash()
/linux/drivers/net/ethernet/cisco/enic/
H A Denic_clsf.c21 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 Denic_clsf.h10 int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq);
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dtc_ct.c1412 struct flow_keys flow_keys; in mlx5_tc_ct_skb_to_tuple() local
1415 skb_flow_dissect_flow_keys(skb, &flow_keys, FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP); in mlx5_tc_ct_skb_to_tuple()
1419 if (flow_keys.basic.ip_proto != IPPROTO_TCP && in mlx5_tc_ct_skb_to_tuple()
1420 flow_keys.basic.ip_proto != IPPROTO_UDP && in mlx5_tc_ct_skb_to_tuple()
1421 flow_keys.basic.ip_proto != IPPROTO_GRE) in mlx5_tc_ct_skb_to_tuple()
1424 if (flow_keys.basic.ip_proto == IPPROTO_TCP || in mlx5_tc_ct_skb_to_tuple()
1425 flow_keys.basic.ip_proto == IPPROTO_UDP) { in mlx5_tc_ct_skb_to_tuple()
1426 tuple->port.src = flow_keys.ports.src; in mlx5_tc_ct_skb_to_tuple()
1427 tuple->port.dst = flow_keys.ports.dst; in mlx5_tc_ct_skb_to_tuple()
1429 tuple->n_proto = flow_keys.basic.n_proto; in mlx5_tc_ct_skb_to_tuple()
[all …]
/linux/drivers/net/ethernet/intel/ice/
H A Dice_arfs.c301 ice_arfs_build_entry(struct ice_vsi *vsi, const struct flow_keys *fk, in ice_arfs_build_entry()
395 ice_arfs_cmp(const struct ice_fdir_fltr *fltr_info, const struct flow_keys *fk, in ice_arfs_cmp()
447 struct flow_keys fk; in ice_rx_flow_steer()
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_arfs.c657 const struct flow_keys *fk, in arfs_alloc_rule()
698 static bool arfs_cmp(const struct arfs_tuple *tuple, const struct flow_keys *fk) in arfs_cmp()
716 const struct flow_keys *fk) in arfs_find_rule()
737 struct flow_keys fk; in mlx5e_rx_flow_steer()
/linux/net/openvswitch/
H A Ddatapath.h220 struct action_flow_keys flow_keys; member
H A Dactions.c45 /* Make a clone of the 'key', using the pre-allocated percpu 'flow_keys'
51 struct action_flow_keys *keys = &ovs_pcpu->flow_keys; in clone_key()
1498 * 'flow_keys'. If clone is successful, execute the actions in clone_execute()
1520 /* Out of 'flow_keys' space. Defer actions */ in clone_execute()
/linux/drivers/net/xen-netback/
H A Dhash.c152 struct flow_keys flow; in xenvif_set_skb_hash()
/linux/drivers/net/ethernet/sfc/falcon/
H A Drx.c847 struct flow_keys fk; in ef4_filter_rfs()
/linux/drivers/net/ethernet/sfc/
H A Drx_common.c904 struct flow_keys fk; in efx_filter_rfs()
/linux/drivers/net/ethernet/sfc/siena/
H A Drx_common.c895 struct flow_keys fk; in efx_siena_filter_rfs()
/linux/drivers/net/hyperv/
H A Dhyperv_net.h1087 struct flow_keys flow; in netvsc_get_hash()
/linux/tools/include/uapi/linux/
H A Dbpf.h6398 __bpf_md_ptr(struct bpf_flow_keys *, flow_keys);