Home
last modified time | relevance | path

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

12

/linux-6.3-rc2/Documentation/bpf/
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
67 +-- flow dissector starts here
86 +-- flow dissector starts here
95 and BPF flow dissector is not required to handle it.
[all …]
/linux-6.3-rc2/net/netfilter/
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()
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(key->control.addr_type); in nf_flow_rule_match()
173 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_TCP); in nf_flow_rule_match()
185 match->dissector.used_keys |= BIT(FLOW_DISSECTOR_KEY_META) | in nf_flow_rule_match()
197 match->dissector.used_keys |= BIT(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()
A Dnft_cmp.c165 flow->match.dissector.used_keys |= BIT(reg->key); in __nft_cmp_offload()
166 flow->match.dissector.offset[reg->key] = reg->base_offset; in __nft_cmp_offload()
/linux-6.3-rc2/drivers/net/ethernet/stmicro/stmmac/
A Dstmmac_tc.c463 struct flow_dissector *dissector = rule->match.dissector; in tc_add_basic_flow() local
467 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_BASIC)) in tc_add_basic_flow()
481 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ip4_flow() local
488 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) in tc_add_ip4_flow()
516 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ports_flow() local
524 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_PORTS)) in tc_add_ports_flow()
666 struct flow_dissector *dissector = rule->match.dissector; in tc_add_vlan_flow() local
681 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_VLAN)) in tc_add_vlan_flow()
737 struct flow_dissector *dissector = rule->match.dissector; in tc_add_ethtype_flow() local
748 if (!dissector_uses_key(dissector, FLOW_DISSECTOR_KEY_BASIC)) in tc_add_ethtype_flow()
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()
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()
1486 dissector->offset[FLOW_DISSECTOR_KEY_BASIC] = 0; in __stmmac_test_l4filt()
1505 rule->match.dissector = dissector; in __stmmac_test_l4filt()
[all …]
/linux-6.3-rc2/drivers/net/ethernet/netronome/nfp/flower/
A Dconntrack.c79 struct flow_dissector *dissector = rule->match.dissector; in is_post_ct_flow() local
98 if (dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_CT)) { in is_post_ct_flow()
228 unsigned int ovlp_keys = entry1->rule->match.dissector->used_keys & in nfp_ct_merge_check()
229 entry2->rule->match.dissector->used_keys; in nfp_ct_merge_check()
560 struct flow_dissector *dissector = post_ct_entry->rule->match.dissector; in nfp_ct_check_meta() local
1444 memcpy(&nft_match->dissector, flow->rule->match.dissector, in nfp_fl_ct_add_flow()
1445 sizeof(nft_match->dissector)); in nfp_fl_ct_add_flow()
1450 entry->rule->match.dissector = &nft_match->dissector; in nfp_fl_ct_add_flow()
1457 entry->rule->match.dissector = flow->rule->match.dissector; in nfp_fl_ct_add_flow()
1650 nft_match = container_of(entry->rule->match.dissector, in nfp_fl_ct_clean_flow_entry()
[all …]
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()
1303 struct flow_dissector *dissector = rule->match.dissector; in offload_pre_check() local
1306 if (dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_CT)) { in offload_pre_check()
/linux-6.3-rc2/drivers/net/ethernet/sfc/
A Dtc.c148 struct flow_dissector *dissector = rule->match.dissector; in efx_tc_flower_parse_match() local
187 if (dissector->used_keys & in efx_tc_flower_parse_match()
199 dissector->used_keys); in efx_tc_flower_parse_match()
208 if (dissector->used_keys & in efx_tc_flower_parse_match()
215 dissector->used_keys); in efx_tc_flower_parse_match()
261 if (dissector->used_keys & in efx_tc_flower_parse_match()
265 dissector->used_keys); in efx_tc_flower_parse_match()
/linux-6.3-rc2/drivers/net/ethernet/freescale/dpaa2/
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()
537 struct flow_dissector *dissector = rule->match.dissector; in dpaa2_switch_flower_parse_mirror_key() local
541 if (dissector->used_keys & in dpaa2_switch_flower_parse_mirror_key()
/linux-6.3-rc2/net/ethtool/
A Dioctl.c3121 struct flow_dissector dissector; member
3148 flow->rule->match.dissector = &match->dissector; in ethtool_rx_flow_rule_create()
3198 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3213 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3221 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3223 match->dissector.offset[FLOW_DISSECTOR_KEY_IP] = in ethtool_rx_flow_rule_create()
3250 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3265 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3273 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
3330 match->dissector.used_keys |= in ethtool_rx_flow_rule_create()
[all …]
/linux-6.3-rc2/drivers/net/dsa/sja1105/
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-6.3-rc2/include/net/netfilter/
A Dnf_tables_offload.h59 struct flow_dissector dissector; member
A Dnf_flow_table.h42 struct flow_dissector dissector; member
/linux-6.3-rc2/net/sched/
A Dcls_flower.c88 struct flow_dissector dissector; member
98 struct flow_dissector dissector; member
324 skb_flow_dissect_meta(skb, &mask->dissector, &skb_key); in fl_classify()
330 skb_flow_dissect_ct(skb, &mask->dissector, &skb_key, in fl_classify()
334 skb_flow_dissect_hash(skb, &mask->dissector, &skb_key); in fl_classify()
335 skb_flow_dissect(skb, &mask->dissector, &skb_key, in fl_classify()
462 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_hw_replace_filter()
1989 skb_flow_dissector_init(dissector, keys, cnt); in fl_init_dissector()
2451 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_reoffload()
2523 cls_flower.rule->match.dissector = &tmplt->dissector; in fl_hw_create_tmplt()
[all …]
/linux-6.3-rc2/drivers/net/ethernet/marvell/prestera/
A Dprestera_flower.c190 struct flow_dissector *dissector = f_rule->match.dissector; in prestera_flower_parse() local
198 if (dissector->used_keys & in prestera_flower_parse()
/linux-6.3-rc2/drivers/net/ethernet/marvell/octeontx2/nic/
A Dotx2_tc.c478 struct flow_dissector *dissector; in otx2_tc_prepare_flow() local
483 dissector = rule->match.dissector; in otx2_tc_prepare_flow()
485 if ((dissector->used_keys & in otx2_tc_prepare_flow()
495 dissector->used_keys); in otx2_tc_prepare_flow()
/linux-6.3-rc2/drivers/net/ethernet/mscc/
A Docelot_flower.c577 struct flow_dissector *dissector = rule->match.dissector; in ocelot_flower_parse_key() local
583 if (dissector->used_keys & in ocelot_flower_parse_key()
633 if ((dissector->used_keys & in ocelot_flower_parse_key()
/linux-6.3-rc2/drivers/net/ethernet/ti/
A Dam65-cpsw-qos.c614 struct flow_dissector *dissector = rule->match.dissector; in am65_cpsw_qos_clsflower_add_policer() local
620 if (dissector->used_keys & in am65_cpsw_qos_clsflower_add_policer()
/linux-6.3-rc2/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
A Dct_fs_smfs.c249 if (!mlx5_tc_ct_valid_used_dissector_keys(flow_rule->match.dissector->used_keys)) { in mlx5_ct_fs_smfs_ct_validate_flow_rule()
251 flow_rule->match.dissector->used_keys); in mlx5_ct_fs_smfs_ct_validate_flow_rule()
/linux-6.3-rc2/drivers/net/ethernet/mellanox/mlxsw/
A Dspectrum_flower.c472 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse() local
479 if (dissector->used_keys & in mlxsw_sp_flower_parse()
/linux-6.3-rc2/drivers/net/ethernet/chelsio/cxgb4/
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()
/linux-6.3-rc2/include/net/
A Dflow_offload.h10 struct flow_dissector *dissector; member
443 return dissector_uses_key(rule->match.dissector, key); in flow_rule_match_key()
/linux-6.3-rc2/drivers/net/ethernet/intel/ice/
A Dice_tc_lib.c1327 struct flow_dissector *dissector; in ice_parse_cls_flower() local
1330 dissector = rule->match.dissector; in ice_parse_cls_flower()
1332 if (dissector->used_keys & in ice_parse_cls_flower()
1371 } else if (dissector->used_keys & in ice_parse_cls_flower()
/linux-6.3-rc2/drivers/net/ethernet/broadcom/bnxt/
A Dbnxt_tc.c373 struct flow_dissector *dissector = rule->match.dissector; in bnxt_tc_parse_flow() local
376 if ((dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_CONTROL)) == 0 || in bnxt_tc_parse_flow()
377 (dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_BASIC)) == 0) { in bnxt_tc_parse_flow()
379 dissector->used_keys); in bnxt_tc_parse_flow()

Completed in 70 milliseconds

12