Home
last modified time | relevance | path

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

/OK3568_Linux_fs/kernel/Documentation/bpf/
H A Dprog_flow_dissector.rst10 Flow dissector is a routine that parses metadata out of the packets. It's
13 BPF flow dissector is an attempt to reimplement C-based flow dissector logic
20 BPF flow dissector programs operate on an ``__sk_buff``. However, only the
22 ``flow_keys`` is ``struct bpf_flow_keys`` and contains flow dissector input
31 Flow dissector BPF program should fill out the rest of the ``struct
42 dissector looks like::
49 +-- flow dissector starts here
58 In case of VLAN, flow dissector can be called with the two different states.
67 +-- flow dissector starts here
86 +-- flow dissector starts here
[all …]
/OK3568_Linux_fs/kernel/net/netfilter/
H A Dnf_tables_offload.c24 flow->rule->match.dissector = &flow->match.dissector; in nft_flow_rule_alloc()
38 if (match->dissector.used_keys & BIT(FLOW_DISSECTOR_KEY_CONTROL)) in nft_flow_rule_set_addr_type()
43 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_CONTROL); in nft_flow_rule_set_addr_type()
44 match->dissector.offset[FLOW_DISSECTOR_KEY_CONTROL] = in nft_flow_rule_set_addr_type()
62 if (match->dissector.used_keys & BIT(FLOW_DISSECTOR_KEY_VLAN) && in nft_flow_rule_transfer_vlan()
71 match->dissector.offset[FLOW_DISSECTOR_KEY_CVLAN] = in nft_flow_rule_transfer_vlan()
73 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_CVLAN); in nft_flow_rule_transfer_vlan()
74 } else if (match->dissector.used_keys & BIT(FLOW_DISSECTOR_KEY_BASIC) && in nft_flow_rule_transfer_vlan()
81 match->dissector.offset[FLOW_DISSECTOR_KEY_VLAN] = in nft_flow_rule_transfer_vlan()
83 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_VLAN); in nft_flow_rule_transfer_vlan()
H A Dnf_flow_table_offload.c28 (__match)->dissector.offset[__type] = \
76 match->dissector.used_keys |= enc_keys; in nf_flow_rule_lwt_match()
124 match->dissector.used_keys |= BIT(key->control.addr_type); in nf_flow_rule_match()
131 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_TCP); in nf_flow_rule_match()
147 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_META) | in nf_flow_rule_match()
595 flow_rule->rule->match.dissector = &flow_rule->match.dissector; in nf_flow_offload_rule_alloc()
H A Dnft_cmp.c164 flow->match.dissector.used_keys |= BIT(reg->key); in __nft_cmp_offload()
165 flow->match.dissector.offset[reg->key] = reg->base_offset; in __nft_cmp_offload()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac_tc.c428 struct flow_dissector *dissector = rule->match.dissector; in tc_add_basic_flow() local
432 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_BASIC)) in tc_add_basic_flow()
445 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ip4_flow() local
452 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) in tc_add_ip4_flow()
480 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ports_flow() local
488 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_PORTS)) in tc_add_ports_flow()
H A Dstmmac_selftests.c1336 struct flow_dissector *dissector; in __stmmac_test_l3filt() local
1352 dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); in __stmmac_test_l3filt()
1353 if (!dissector) { in __stmmac_test_l3filt()
1358 dissector->used_keys |= (1 << FLOW_DISSECTOR_KEY_IPV4_ADDRS); in __stmmac_test_l3filt()
1359 dissector->offset[FLOW_DISSECTOR_KEY_IPV4_ADDRS] = 0; in __stmmac_test_l3filt()
1377 rule->match.dissector = dissector; in __stmmac_test_l3filt()
1416 kfree(dissector); in __stmmac_test_l3filt()
1462 struct flow_dissector *dissector; in __stmmac_test_l4filt() local
1478 dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); in __stmmac_test_l4filt()
1479 if (!dissector) { in __stmmac_test_l4filt()
[all …]
/OK3568_Linux_fs/kernel/net/ethtool/
H A Dioctl.c2970 struct flow_dissector dissector; member
2997 flow->rule->match.dissector = &match->dissector; in ethtool_rx_flow_rule_create()
3047 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3049 match->dissector.offset[FLOW_DISSECTOR_KEY_IPV4_ADDRS] = in ethtool_rx_flow_rule_create()
3062 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3064 match->dissector.offset[FLOW_DISSECTOR_KEY_PORTS] = in ethtool_rx_flow_rule_create()
3070 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3072 match->dissector.offset[FLOW_DISSECTOR_KEY_IP] = in ethtool_rx_flow_rule_create()
3099 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3101 match->dissector.offset[FLOW_DISSECTOR_KEY_IPV6_ADDRS] = in ethtool_rx_flow_rule_create()
[all …]
/OK3568_Linux_fs/kernel/drivers/net/ethernet/mscc/
H A Docelot_flower.c440 struct flow_dissector *dissector = rule->match.dissector; in ocelot_flower_parse_key() local
446 if (dissector->used_keys & in ocelot_flower_parse_key()
484 if ((dissector->used_keys & in ocelot_flower_parse_key()
/OK3568_Linux_fs/kernel/net/sched/
H A Dcls_flower.c87 struct flow_dissector dissector; member
97 struct flow_dissector dissector; member
318 skb_flow_dissect_meta(skb, &mask->dissector, &skb_key); in fl_classify()
323 skb_flow_dissect_tunnel_info(skb, &mask->dissector, &skb_key); in fl_classify()
324 skb_flow_dissect_ct(skb, &mask->dissector, &skb_key, in fl_classify()
327 skb_flow_dissect_hash(skb, &mask->dissector, &skb_key); in fl_classify()
328 skb_flow_dissect(skb, &mask->dissector, &skb_key, 0); in fl_classify()
454 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_hw_replace_filter()
1750 static void fl_init_dissector(struct flow_dissector *dissector, in fl_init_dissector() argument
1805 skb_flow_dissector_init(dissector, keys, cnt); in fl_init_dissector()
[all …]
/OK3568_Linux_fs/kernel/drivers/net/dsa/sja1105/
H A Dsja1105_flower.c200 struct flow_dissector *dissector = rule->match.dissector; in sja1105_flower_parse_key() local
206 if (dissector->used_keys & in sja1105_flower_parse_key()
/OK3568_Linux_fs/kernel/include/net/netfilter/
H A Dnf_tables_offload.h59 struct flow_dissector dissector; member
H A Dnf_flow_table.h38 struct flow_dissector dissector; member
/OK3568_Linux_fs/kernel/drivers/net/ethernet/mellanox/mlxsw/
H A Dspectrum_flower.c404 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse() local
411 if (dissector->used_keys & in mlxsw_sp_flower_parse()
/OK3568_Linux_fs/kernel/include/net/
H A Dflow_offload.h10 struct flow_dissector *dissector; member
387 return dissector_uses_key(rule->match.dissector, key); in flow_rule_match_key()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/netronome/nfp/flower/
H A Doffload.c247 struct flow_dissector *dissector = rule->match.dissector; in nfp_flower_calculate_key_layers() local
255 if (dissector->used_keys & ~NFP_FLOWER_WHITELIST_DISSECTOR) { in nfp_flower_calculate_key_layers()
261 if (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR && in nfp_flower_calculate_key_layers()
262 (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR_V6_R) in nfp_flower_calculate_key_layers()
264 (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR_R) in nfp_flower_calculate_key_layers()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/chelsio/cxgb4/
H A Dcxgb4_tc_flower.c311 struct flow_dissector *dissector = rule->match.dissector; in cxgb4_validate_flow_match() local
315 if (dissector->used_keys & in cxgb4_validate_flow_match()
325 dissector->used_keys); in cxgb4_validate_flow_match()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt_tc.c372 struct flow_dissector *dissector = rule->match.dissector; in bnxt_tc_parse_flow() local
375 if ((dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_CONTROL)) == 0 || in bnxt_tc_parse_flow()
376 (dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_BASIC)) == 0) { in bnxt_tc_parse_flow()
378 dissector->used_keys); in bnxt_tc_parse_flow()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/qlogic/qede/
H A Dqede_filter.c1832 struct flow_dissector *dissector = rule->match.dissector; in qede_parse_flow_attr() local
1838 if (dissector->used_keys & in qede_parse_flow_attr()
1845 dissector->used_keys); in qede_parse_flow_attr()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/freescale/enetc/
H A Denetc_qos.c1352 struct flow_dissector *dissector = rule->match.dissector; in enetc_config_clsflower() local
1367 fwd = enetc_check_flow_actions(actions, dissector->used_keys); in enetc_config_clsflower()
/OK3568_Linux_fs/kernel/net/core/
H A Dflow_offload.c32 struct flow_dissector *__d = (__m)->dissector; \
/OK3568_Linux_fs/kernel/drivers/net/ethernet/intel/iavf/
H A Diavf_main.c2760 struct flow_dissector *dissector = rule->match.dissector; in iavf_parse_cls_flower() local
2769 if (dissector->used_keys & in iavf_parse_cls_flower()
2779 dissector->used_keys); in iavf_parse_cls_flower()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_tc.c1972 skb_flow_dissector_target(__rule->match.dissector,\
2284 struct flow_dissector *dissector = rule->match.dissector; in __parse_cls_flower() local
2294 if (dissector->used_keys & in __parse_cls_flower()
2317 dissector->used_keys); in __parse_cls_flower()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/intel/igb/
H A Digb_main.c2588 struct flow_dissector *dissector = rule->match.dissector; in igb_parse_cls_flower() local
2591 if (dissector->used_keys & in igb_parse_cls_flower()
/OK3568_Linux_fs/kernel/drivers/net/ethernet/intel/i40e/
H A Di40e_main.c8009 struct flow_dissector *dissector = rule->match.dissector; in i40e_parse_cls_flower() local
8014 if (dissector->used_keys & in i40e_parse_cls_flower()
8024 dissector->used_keys); in i40e_parse_cls_flower()
/OK3568_Linux_fs/kernel/Documentation/networking/
H A Dfilter.rst628 extension, PTP dissector/classifier, and much more. They are all internally