drivers/net/bonding/bond_main.c
257
static struct flow_dissector flow_keys_bonding __read_mostly;
drivers/net/dsa/microchip/ksz9477_tc_flower.c
115
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/dsa/mv88e6xxx/tcflower.c
23
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/dsa/ocelot/felix_vsc9959.c
1761
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/dsa/sja1105/sja1105_flower.c
201
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/dsa/yt921x.c
1674
const struct flow_dissector *dissector;
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
374
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
300
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c
15
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c
541
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/freescale/enetc/enetc_qos.c
1398
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_fd.c
2367
struct flow_dissector *dissector = flow->match.dissector;
drivers/net/ethernet/intel/i40e/i40e_main.c
8572
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/intel/iavf/iavf_main.c
3798
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/intel/ice/ice_tc_lib.c
1644
struct flow_dissector *dissector;
drivers/net/ethernet/intel/igb/igb_main.c
2620
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
615
struct flow_dissector *dissector;
drivers/net/ethernet/marvell/prestera/prestera_flower.c
196
struct flow_dissector *dissector = f_rule->match.dissector;
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
2713
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
573
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/mscc/ocelot_flower.c
607
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/netronome/nfp/flower/conntrack.c
587
struct flow_dissector *dissector = post_ct_entry->rule->match.dissector;
drivers/net/ethernet/netronome/nfp/flower/conntrack.c
59
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/netronome/nfp/flower/conntrack.c
91
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/netronome/nfp/flower/offload.c
1305
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/netronome/nfp/flower/offload.c
245
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/qlogic/qede/qede_filter.c
1831
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/sfc/tc.c
243
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/sfc/tc_conntrack.c
96
struct flow_dissector *dissector = fr->match.dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
1336
struct flow_dissector *dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
1462
struct flow_dissector *dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
456
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
505
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
540
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
693
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
764
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/ti/am65-cpsw-qos.c
1029
struct flow_dissector *dissector = rule->match.dissector;
drivers/net/ethernet/ti/cpsw_priv.c
1405
struct flow_dissector *dissector = rule->match.dissector;
include/linux/bpf_types.h
35
BPF_PROG_TYPE(BPF_PROG_TYPE_FLOW_DISSECTOR, flow_dissector,
include/linux/skbuff.h
1586
void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1596
struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1601
struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1604
return __skb_flow_dissect(NULL, skb, flow_dissector,
include/linux/skbuff.h
1630
struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1639
struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1645
struct flow_dissector *flow_dissector,
include/linux/skbuff.h
1649
struct flow_dissector *flow_dissector,
include/net/flow_dissector.h
425
extern struct flow_dissector flow_keys_dissector;
include/net/flow_dissector.h
426
extern struct flow_dissector flow_keys_basic_dissector;
include/net/flow_dissector.h
455
static inline bool dissector_uses_key(const struct flow_dissector *flow_dissector,
include/net/flow_dissector.h
458
return flow_dissector->used_keys & (1ULL << key_id);
include/net/flow_dissector.h
461
static inline void *skb_flow_dissector_target(struct flow_dissector *flow_dissector,
include/net/flow_dissector.h
465
return ((char *)target_container) + flow_dissector->offset[key_id];
include/net/flow_offload.h
10
struct flow_dissector *dissector;
include/net/netfilter/nf_flow_table.h
42
struct flow_dissector dissector;
include/net/netfilter/nf_tables_offload.h
59
struct flow_dissector dissector;
net/core/flow_dissector.c
1059
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
1109
key_control = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1116
key_basic = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1164
__skb_flow_bpf_to_target(&flow_keys, flow_dissector,
net/core/flow_dissector.c
1174
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1178
key_eth_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1193
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1197
key_num_of_vlans = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1221
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1223
key_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1234
__skb_flow_dissect_ipv4(skb, flow_dissector,
net/core/flow_dissector.c
1268
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1270
key_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1281
if ((dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1287
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1289
key_tags = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1300
__skb_flow_dissect_ipv6(skb, flow_dissector,
net/core/flow_dissector.c
1326
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_NUM_OF_VLANS) &&
net/core/flow_dissector.c
1330
key_nvs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1345
if (dissector_uses_key(flow_dissector, dissector_vlan)) {
net/core/flow_dissector.c
1346
key_vlan = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1412
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1416
key_pppoe = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1435
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
1437
key_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
1449
fdret = __skb_flow_dissect_mpls(skb, flow_dissector,
net/core/flow_dissector.c
1468
fdret = __skb_flow_dissect_arp(skb, flow_dissector,
net/core/flow_dissector.c
1511
fdret = __skb_flow_dissect_cfm(skb, flow_dissector,
net/core/flow_dissector.c
1547
fdret = __skb_flow_dissect_gre(skb, key_control, flow_dissector,
net/core/flow_dissector.c
1644
__skb_flow_dissect_tcp(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1650
__skb_flow_dissect_icmp(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1654
__skb_flow_dissect_l2tpv3(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1658
__skb_flow_dissect_esp(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1662
__skb_flow_dissect_ah(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1670
__skb_flow_dissect_ports(skb, flow_dissector, target_container,
net/core/flow_dissector.c
1870
static struct flow_dissector flow_keys_dissector_symmetric __read_mostly;
net/core/flow_dissector.c
192
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
198
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ICMP))
net/core/flow_dissector.c
201
key_icmp = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
2087
struct flow_dissector flow_keys_dissector __read_mostly;
net/core/flow_dissector.c
209
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
2090
struct flow_dissector flow_keys_basic_dissector __read_mostly;
net/core/flow_dissector.c
216
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IPSEC))
net/core/flow_dissector.c
223
key_ah = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
231
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
238
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IPSEC))
net/core/flow_dissector.c
245
key_esp = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
253
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
262
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_L2TPV3))
net/core/flow_dissector.c
269
key_l2tpv3 = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
277
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
282
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_META))
net/core/flow_dissector.c
285
meta = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
304
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
309
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_CONTROL))
net/core/flow_dissector.c
312
ctrl = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
321
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
331
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_CT))
net/core/flow_dissector.c
338
key = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
367
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
375
if (!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
377
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
379
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
381
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
383
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
385
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
387
!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
40
static void dissector_set_key(struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
409
ctrl_flags, flow_dissector,
net/core/flow_dissector.c
411
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
415
ipv4 = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
424
ctrl_flags, flow_dissector,
net/core/flow_dissector.c
426
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
43
flow_dissector->used_keys |= (1ULL << key_id);
net/core/flow_dissector.c
430
ipv6 = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
438
skb_flow_dissect_set_enc_control(0, ctrl_flags, flow_dissector,
net/core/flow_dissector.c
443
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_KEYID)) {
net/core/flow_dissector.c
446
keyid = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
452
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_PORTS)) {
net/core/flow_dissector.c
455
tp = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
46
void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
462
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_IP)) {
net/core/flow_dissector.c
465
ip = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
472
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_OPTS)) {
net/core/flow_dissector.c
477
enc_opt = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
498
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
503
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_HASH))
net/core/flow_dissector.c
506
key = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
516
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
52
memset(flow_dissector, 0, sizeof(*flow_dissector));
net/core/flow_dissector.c
523
if (!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
525
!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_MPLS))
net/core/flow_dissector.c
540
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_MPLS)) {
net/core/flow_dissector.c
544
key_mpls = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
557
dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
561
key_keyid = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
574
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
588
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ARP))
net/core/flow_dissector.c
59
BUG_ON(dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
610
key_arp = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
62
dissector_set_key(flow_dissector, key->key_id);
net/core/flow_dissector.c
63
flow_dissector->offset[key->key_id] = key->offset;
net/core/flow_dissector.c
630
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
636
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_CFM))
net/core/flow_dissector.c
643
key = skb_flow_dissector_target(flow_dissector, FLOW_DISSECTOR_KEY_CFM,
net/core/flow_dissector.c
655
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
69
BUG_ON(!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
702
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
704
key_keyid = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
71
BUG_ON(!dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
827
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
834
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_TCP))
net/core/flow_dissector.c
844
key_tcp = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
852
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
860
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_PORTS))
net/core/flow_dissector.c
861
key_ports = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
865
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_PORTS_RANGE))
net/core/flow_dissector.c
866
key_ports_range = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
884
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
890
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IP))
net/core/flow_dissector.c
893
key_ip = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
902
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
908
if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IP))
net/core/flow_dissector.c
911
key_ip = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
931
struct flow_dissector *flow_dissector,
net/core/flow_dissector.c
941
key_control = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
952
key_basic = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
959
dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) {
net/core/flow_dissector.c
960
key_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
967
dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
969
key_addrs = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
979
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_PORTS)) {
net/core/flow_dissector.c
980
key_ports = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
986
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
988
key_ports_range = skb_flow_dissector_target(flow_dissector,
net/core/flow_dissector.c
995
if (dissector_uses_key(flow_dissector,
net/core/flow_dissector.c
997
key_tags = skb_flow_dissector_target(flow_dissector,
net/core/flow_offload.c
51
struct flow_dissector *__d = (__m)->dissector; \
net/ethtool/ioctl.c
3711
struct flow_dissector dissector;
net/sched/cls_flower.c
108
struct flow_dissector dissector;
net/sched/cls_flower.c
2161
static void fl_init_dissector(struct flow_dissector *dissector,
net/sched/cls_flower.c
98
struct flow_dissector dissector;
net/xfrm/xfrm_policy.c
171
static struct flow_dissector xfrm_session_dissector __ro_after_init;
samples/bpf/sockex2_kern.c
206
if (!flow_dissector(skb, &flow))