/kernel/linux/linux-5.10/net/core/ |
H A D | flow_dissector.c | 784 static void __skb_flow_bpf_to_target(const struct bpf_flow_keys *flow_keys, in __skb_flow_bpf_to_target() argument 797 key_control->thoff = flow_keys->thoff; in __skb_flow_bpf_to_target() 798 if (flow_keys->is_frag) in __skb_flow_bpf_to_target() 800 if (flow_keys->is_first_frag) in __skb_flow_bpf_to_target() 802 if (flow_keys->is_encap) in __skb_flow_bpf_to_target() 808 key_basic->n_proto = flow_keys->n_proto; in __skb_flow_bpf_to_target() 809 key_basic->ip_proto = flow_keys->ip_proto; in __skb_flow_bpf_to_target() 811 if (flow_keys->addr_proto == ETH_P_IP && in __skb_flow_bpf_to_target() 816 key_addrs->v4addrs.src = flow_keys->ipv4_src; in __skb_flow_bpf_to_target() 817 key_addrs->v4addrs.dst = flow_keys in __skb_flow_bpf_to_target() 859 struct bpf_flow_keys *flow_keys = ctx->flow_keys; bpf_flow_dissect() local 986 struct bpf_flow_keys flow_keys; __skb_flow_dissect() local [all...] |
/kernel/linux/linux-6.6/net/core/ |
H A D | flow_dissector.c | 899 static void __skb_flow_bpf_to_target(const struct bpf_flow_keys *flow_keys, in __skb_flow_bpf_to_target() argument 912 key_control->thoff = flow_keys->thoff; in __skb_flow_bpf_to_target() 913 if (flow_keys->is_frag) in __skb_flow_bpf_to_target() 915 if (flow_keys->is_first_frag) in __skb_flow_bpf_to_target() 917 if (flow_keys->is_encap) in __skb_flow_bpf_to_target() 923 key_basic->n_proto = flow_keys->n_proto; in __skb_flow_bpf_to_target() 924 key_basic->ip_proto = flow_keys->ip_proto; in __skb_flow_bpf_to_target() 926 if (flow_keys->addr_proto == ETH_P_IP && in __skb_flow_bpf_to_target() 931 key_addrs->v4addrs.src = flow_keys->ipv4_src; in __skb_flow_bpf_to_target() 932 key_addrs->v4addrs.dst = flow_keys in __skb_flow_bpf_to_target() 974 struct bpf_flow_keys *flow_keys = ctx->flow_keys; bpf_flow_dissect() local 1107 struct bpf_flow_keys flow_keys; __skb_flow_dissect() local [all...] |
/kernel/linux/linux-5.10/include/net/ |
H A D | flow_dissector.h | 309 struct flow_keys { struct 324 offsetof(struct flow_keys, FLOW_KEYS_HASH_START_FIELD) 326 __be32 flow_get_u32_src(const struct flow_keys *flow); 327 __be32 flow_get_u32_dst(const struct flow_keys *flow); 345 const struct flow_keys *flow); 347 static inline bool flow_keys_have_l4(const struct flow_keys *keys) in flow_keys_have_l4() 352 u32 flow_hash_from_keys(struct flow_keys *keys); 371 struct bpf_flow_keys *flow_keys; member
|
H A D | ip_fib.h | 350 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 411 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 471 const struct sk_buff *skb, struct flow_keys *flkeys);
|
/kernel/linux/linux-5.10/tools/testing/selftests/bpf/prog_tests/ |
H A D | flow_dissector_load_bytes.c | 7 struct bpf_flow_keys flow_keys; in test_flow_dissector_load_bytes() local 41 &flow_keys, &size, &retval, &duration); in test_flow_dissector_load_bytes() 42 CHECK(size != sizeof(flow_keys) || err || retval != 1, in test_flow_dissector_load_bytes() 45 err, errno, retval, duration, size, sizeof(flow_keys)); in test_flow_dissector_load_bytes()
|
H A D | flow_dissector.c | 491 struct bpf_flow_keys flow_keys = {}; in run_tests_skb_less() local 505 err = bpf_map_lookup_elem(keys_fd, &key, &flow_keys); in run_tests_skb_less() 509 CHECK_FLOW_KEYS(tests[i].name, flow_keys, tests[i].keys); in run_tests_skb_less() 575 struct bpf_flow_keys flow_keys; in test_flow_dissector() local 580 .data_out = &flow_keys, in test_flow_dissector() 591 CHECK_ATTR(tattr.data_size_out != sizeof(flow_keys) || in test_flow_dissector() 596 tattr.data_size_out, sizeof(flow_keys)); in test_flow_dissector() 597 CHECK_FLOW_KEYS(tests[i].name, flow_keys, tests[i].keys); in test_flow_dissector()
|
/kernel/linux/linux-6.6/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 | 550 struct bpf_flow_keys flow_keys = {}; in run_tests_skb_less() local 564 /* check the stored flow_keys only if BPF_OK expected */ in run_tests_skb_less() 568 err = bpf_map_lookup_elem(keys_fd, &key, &flow_keys); in run_tests_skb_less() 571 CHECK_FLOW_KEYS(tests[i].name, flow_keys, tests[i].keys); in run_tests_skb_less() 637 struct bpf_flow_keys flow_keys; in test_flow_dissector() local 641 .data_out = &flow_keys, in test_flow_dissector() 655 /* check the resulting flow_keys only if BPF_OK returned */ in test_flow_dissector() 658 ASSERT_EQ(topts.data_size_out, sizeof(flow_keys), in test_flow_dissector() 660 CHECK_FLOW_KEYS(tests[i].name, flow_keys, tests[i].keys); in test_flow_dissector()
|
/kernel/linux/linux-6.6/include/net/ |
H A D | flow_dissector.h | 392 struct flow_keys { struct 407 offsetof(struct flow_keys, FLOW_KEYS_HASH_START_FIELD) 409 __be32 flow_get_u32_src(const struct flow_keys *flow); 410 __be32 flow_get_u32_dst(const struct flow_keys *flow); 428 const struct flow_keys *flow); 430 static inline bool flow_keys_have_l4(const struct flow_keys *keys) in flow_keys_have_l4() 435 u32 flow_hash_from_keys(struct flow_keys *keys); 454 struct bpf_flow_keys *flow_keys; member
|
H A D | flow.h | 16 struct flow_keys; 193 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys);
|
H A D | ip_fib.h | 354 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 415 struct flow_keys *flkeys) in fib4_rules_early_flow_dissect() 521 const struct sk_buff *skb, struct flow_keys *flkeys);
|
/kernel/linux/linux-5.10/tools/testing/selftests/bpf/progs/ |
H A D | bpf_flow.c | 97 __u16 thoff = skb->flow_keys->thoff; in bpf_flow_dissect_get_header() 117 struct bpf_flow_keys *keys = skb->flow_keys; in parse_eth_proto() 145 struct bpf_flow_keys *keys = skb->flow_keys; in _dissect() 153 struct bpf_flow_keys *keys = skb->flow_keys; in parse_ip_proto() 244 struct bpf_flow_keys *keys = skb->flow_keys; in parse_ipv6_proto() 264 struct bpf_flow_keys *keys = skb->flow_keys; in IP() 312 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6() 334 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6OP() 352 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6FR() 378 struct bpf_flow_keys *keys = skb->flow_keys; in MPLS() [all...] |
/kernel/linux/linux-6.6/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 IP() 326 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6() 348 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6OP() 366 struct bpf_flow_keys *keys = skb->flow_keys; in IPV6FR() 394 struct bpf_flow_keys *keys = skb->flow_keys; in MPLS() [all...] |
/kernel/linux/linux-5.10/net/sched/ |
H A D | cls_flow.c | 66 static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_src() 76 static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_dst() 87 const struct flow_keys *flow) in flow_get_proto() 93 const struct flow_keys *flow) in flow_get_proto_src() 102 const struct flow_keys *flow) in flow_get_proto_dst() 152 const struct flow_keys *flow) in flow_get_nfct_src() 165 const struct flow_keys *flow) in flow_get_nfct_dst() 178 const struct flow_keys *flow) in flow_get_nfct_proto_src() 186 const struct flow_keys *flow) in flow_get_nfct_proto_dst() 240 static u32 flow_key_get(struct sk_buff *skb, int key, struct flow_keys *flo 307 struct flow_keys flow_keys; flow_classify() local [all...] |
/kernel/linux/linux-6.6/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() 77 static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow) in flow_get_dst() 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() 241 static u32 flow_key_get(struct sk_buff *skb, int key, struct flow_keys *flo 309 struct flow_keys flow_keys; flow_classify() local [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/cisco/enic/ |
H A D | enic_clsf.c | 15 * @keys: flow_keys of ipv4 5tuple 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);
|
/kernel/linux/linux-6.6/drivers/net/ethernet/cisco/enic/ |
H A D | enic_clsf.c | 15 * @keys: flow_keys of ipv4 5tuple 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);
|
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/en/ |
H A D | tc_ct.c | 1163 struct flow_keys flow_keys; in mlx5_tc_ct_skb_to_tuple() local 1166 skb_flow_dissect_flow_keys(skb, &flow_keys, 0); in mlx5_tc_ct_skb_to_tuple() 1170 if (flow_keys.basic.ip_proto != IPPROTO_TCP && in mlx5_tc_ct_skb_to_tuple() 1171 flow_keys.basic.ip_proto != IPPROTO_UDP) in mlx5_tc_ct_skb_to_tuple() 1174 tuple->port.src = flow_keys.ports.src; in mlx5_tc_ct_skb_to_tuple() 1175 tuple->port.dst = flow_keys.ports.dst; in mlx5_tc_ct_skb_to_tuple() 1176 tuple->n_proto = flow_keys.basic.n_proto; in mlx5_tc_ct_skb_to_tuple() 1177 tuple->ip_proto = flow_keys.basic.ip_proto; in mlx5_tc_ct_skb_to_tuple() 1179 switch (flow_keys in mlx5_tc_ct_skb_to_tuple() [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/en/ |
H A D | tc_ct.c | 1361 struct flow_keys flow_keys; in mlx5_tc_ct_skb_to_tuple() local 1364 skb_flow_dissect_flow_keys(skb, &flow_keys, FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP); in mlx5_tc_ct_skb_to_tuple() 1368 if (flow_keys.basic.ip_proto != IPPROTO_TCP && in mlx5_tc_ct_skb_to_tuple() 1369 flow_keys.basic.ip_proto != IPPROTO_UDP && in mlx5_tc_ct_skb_to_tuple() 1370 flow_keys.basic.ip_proto != IPPROTO_GRE) in mlx5_tc_ct_skb_to_tuple() 1373 if (flow_keys.basic.ip_proto == IPPROTO_TCP || in mlx5_tc_ct_skb_to_tuple() 1374 flow_keys.basic.ip_proto == IPPROTO_UDP) { in mlx5_tc_ct_skb_to_tuple() 1375 tuple->port.src = flow_keys.ports.src; in mlx5_tc_ct_skb_to_tuple() 1376 tuple->port.dst = flow_keys in mlx5_tc_ct_skb_to_tuple() [all...] |
H A D | ptp.h | 73 struct flow_keys fk; in mlx5e_use_ptpsq()
|
/kernel/linux/linux-5.10/net/bpf/ |
H A D | test_run.c | 696 struct bpf_flow_keys flow_keys; in bpf_prog_test_run_flow_dissector() local 735 ctx.flow_keys = &flow_keys; in bpf_prog_test_run_flow_dissector() 773 ret = bpf_test_finish(kattr, uattr, &flow_keys, sizeof(flow_keys), in bpf_prog_test_run_flow_dissector()
|
/kernel/linux/linux-5.10/net/ipv4/ |
H A D | netfilter.c | 28 struct flow_keys flkeys; in ip_route_me_harder()
|
/kernel/linux/linux-6.6/net/ipv4/ |
H A D | netfilter.c | 28 struct flow_keys flkeys; in ip_route_me_harder()
|