Home
last modified time | relevance | path

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

/linux/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 …]
/linux/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_ULL(FLOW_DISSECTOR_KEY_CONTROL)) in nft_flow_rule_set_addr_type()
43 match->dissector.used_keys |= BIT_ULL(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_ULL(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_ULL(FLOW_DISSECTOR_KEY_CVLAN); in nft_flow_rule_transfer_vlan()
74 } else if (match->dissector.used_keys & in nft_flow_rule_transfer_vlan()
82 match->dissector in nft_flow_rule_transfer_vlan()
[all...]
H A Dnf_flow_table_offload.c29 (__match)->dissector.offset[__type] = \
77 match->dissector.used_keys |= enc_keys; in nf_flow_rule_lwt_match()
166 match->dissector.used_keys |= BIT_ULL(key->control.addr_type); in nf_flow_rule_match()
173 match->dissector.used_keys |= BIT_ULL(FLOW_DISSECTOR_KEY_TCP); in nf_flow_rule_match()
185 match->dissector.used_keys |= BIT_ULL(FLOW_DISSECTOR_KEY_META) | in nf_flow_rule_match()
197 match->dissector.used_keys |= BIT_ULL(FLOW_DISSECTOR_KEY_PORTS); in nf_flow_rule_match()
751 flow_rule->rule->match.dissector = &flow_rule->match.dissector; in nf_flow_offload_rule_alloc()
H A Dnft_cmp.c165 flow->match.dissector.used_keys |= BIT_ULL(reg->key); in __nft_cmp_offload()
166 flow->match.dissector.offset[reg->key] = reg->base_offset; in __nft_cmp_offload()
/linux/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac_tc.c455 struct flow_dissector *dissector = rule->match.dissector; in tc_add_basic_flow() local
459 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_BASIC)) in tc_add_basic_flow()
473 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ip4_flow() local
480 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) in tc_add_ip4_flow()
508 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ports_flow() local
516 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_PORTS)) in tc_add_ports_flow()
658 struct flow_dissector *dissector = rule->match.dissector; in tc_add_vlan_flow() local
673 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_VLAN)) in tc_add_vlan_flow()
729 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ethtype_flow() local
740 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_BASIC)) in tc_add_ethtype_flow()
/linux/drivers/net/dsa/microchip/
H A Dksz9477_tc_flower.c115 struct flow_dissector *dissector = rule->match.dissector; in ksz9477_flower_parse_key() local
118 if (dissector->used_keys & in ksz9477_flower_parse_key()
/linux/drivers/net/ethernet/netronome/nfp/flower/
H A Dconntrack.c59 struct flow_dissector *dissector = rule->match.dissector; in is_pre_ct_flow() local
64 if (dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CT)) { in is_pre_ct_flow()
91 struct flow_dissector *dissector = rule->match.dissector; in is_post_ct_flow() local
97 if (dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CT)) { in is_post_ct_flow()
242 ovlp_keys = entry1->rule->match.dissector->used_keys & in nfp_ct_merge_check()
243 entry2->rule->match.dissector->used_keys; in nfp_ct_merge_check()
587 struct flow_dissector *dissector = post_ct_entry->rule->match.dissector; in nfp_ct_check_meta() local
593 if (ct_met && (dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CT))) { in nfp_ct_check_meta()
1509 memcpy(&nft_match->dissector, flow->rule->match.dissector, in nfp_fl_ct_add_flow()
1510 sizeof(nft_match->dissector)); in nfp_fl_ct_add_flow()
[all …]
H A Doffload.c245 struct flow_dissector *dissector = rule->match.dissector; in nfp_flower_calculate_key_layers() local
253 if (dissector->used_keys & ~NFP_FLOWER_WHITELIST_DISSECTOR) { in nfp_flower_calculate_key_layers()
259 if (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR && in nfp_flower_calculate_key_layers()
260 (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR_V6_R) in nfp_flower_calculate_key_layers()
262 (dissector->used_keys & NFP_FLOWER_WHITELIST_TUN_DISSECTOR_R) in nfp_flower_calculate_key_layers()
1305 struct flow_dissector *dissector = rule->match.dissector; in offload_pre_check() local
1308 if (dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CT)) { in offload_pre_check()
/linux/drivers/net/ethernet/freescale/dpaa2/
H A Ddpaa2-switch-flower.c15 struct flow_dissector *dissector = rule->match.dissector; in dpaa2_switch_flower_parse_key() local
19 if (dissector->used_keys & in dpaa2_switch_flower_parse_key()
541 struct flow_dissector *dissector = rule->match.dissector; in dpaa2_switch_flower_parse_mirror_key() local
545 if (dissector->used_keys & in dpaa2_switch_flower_parse_mirror_key()
/linux/drivers/net/ethernet/sfc/
H A Dtc_conntrack.c96 struct flow_dissector *dissector = fr->match.dissector; in efx_tc_ct_parse_match() local
123 if (dissector->used_keys & in efx_tc_ct_parse_match()
133 dissector->used_keys); in efx_tc_ct_parse_match()
H A Dtc.c243 struct flow_dissector *dissector = rule->match.dissector; in efx_tc_flower_parse_match() local
281 if (dissector->used_keys & in efx_tc_flower_parse_match()
300 dissector->used_keys); in efx_tc_flower_parse_match()
309 if (dissector->used_keys & in efx_tc_flower_parse_match()
317 dissector->used_keys); in efx_tc_flower_parse_match()
363 if (dissector->used_keys & in efx_tc_flower_parse_match()
368 dissector->used_keys); in efx_tc_flower_parse_match()
424 } else if (dissector->used_keys & in efx_tc_flower_parse_match()
432 dissector->used_keys); in efx_tc_flower_parse_match()
/linux/net/sched/
H A Dcls_flower.c102 struct flow_dissector dissector; member
112 struct flow_dissector dissector; member
339 skb_flow_dissect_meta(skb, &mask->dissector, &skb_key); in fl_classify()
344 skb_flow_dissect_tunnel_info(skb, &mask->dissector, &skb_key); in fl_classify()
345 skb_flow_dissect_ct(skb, &mask->dissector, &skb_key, in fl_classify()
349 skb_flow_dissect_hash(skb, &mask->dissector, &skb_key); in fl_classify()
350 skb_flow_dissect(skb, &mask->dissector, &skb_key, in fl_classify()
479 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_hw_replace_filter()
2165 static void fl_init_dissector(struct flow_dissector *dissector, in fl_init_dissector() argument
[all...]
/linux/drivers/net/dsa/sja1105/
H A Dsja1105_flower.c201 struct flow_dissector *dissector = rule->match.dissector; in sja1105_flower_parse_key() local
207 if (dissector->used_keys & in sja1105_flower_parse_key()
/linux/include/net/netfilter/
H A Dnf_tables_offload.h59 struct flow_dissector dissector; member
H A Dnf_flow_table.h42 struct flow_dissector dissector; member
/linux/drivers/net/ethernet/marvell/prestera/
H A Dprestera_flower.c196 struct flow_dissector *dissector = f_rule->match.dissector; in prestera_flower_parse() local
204 if (dissector->used_keys & in prestera_flower_parse()
/linux/drivers/net/ethernet/mellanox/mlxsw/
H A Dspectrum_flower.c573 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse() local
580 if (dissector->used_keys & in mlxsw_sp_flower_parse()
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_tc.c636 struct flow_dissector *dissector; in otx2_tc_prepare_flow() local
641 dissector = rule->match.dissector; in otx2_tc_prepare_flow()
643 if ((dissector->used_keys & in otx2_tc_prepare_flow()
658 dissector->used_keys); in otx2_tc_prepare_flow()
/linux/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt_tc.c374 struct flow_dissector *dissector = rule->match.dissector; in bnxt_tc_parse_flow() local
377 if ((dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL)) == 0 || in bnxt_tc_parse_flow()
378 (dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_BASIC)) == 0) { in bnxt_tc_parse_flow()
380 dissector->used_keys); in bnxt_tc_parse_flow()
/linux/drivers/net/ethernet/ti/
H A Dam65-cpsw-qos.c1029 struct flow_dissector *dissector = rule->match.dissector; in am65_cpsw_qos_clsflower_add_policer() local
1035 if (dissector->used_keys & in am65_cpsw_qos_clsflower_add_policer()
/linux/drivers/net/ethernet/qlogic/qede/
H A Dqede_filter.c1831 struct flow_dissector *dissector = rule->match.dissector; in qede_parse_flow_attr() local
1837 if (dissector->used_keys & in qede_parse_flow_attr()
1844 dissector->used_keys); in qede_parse_flow_attr()
/linux/net/core/
H A Dflow_offload.c53 struct flow_dissector *__d = (__m)->dissector; \
/linux/drivers/net/ethernet/intel/iavf/
H A Diavf_main.c3817 struct flow_dissector *dissector = rule->match.dissector; in iavf_parse_cls_flower() local
3826 if (dissector->used_keys & in iavf_parse_cls_flower()
3836 dissector->used_keys); in iavf_parse_cls_flower()
/linux/Documentation/networking/
H A Dfilter.rst640 extension, PTP dissector/classifier, and much more. They are all internally
/linux/drivers/net/ethernet/intel/i40e/
H A Di40e_main.c8556 struct flow_dissector *dissector = rule->match.dissector; in i40e_parse_cls_flower() local
8561 if (dissector->used_keys & in i40e_parse_cls_flower()
8571 dissector->used_keys); in i40e_parse_cls_flower()