Skip to content

Commit 2b3082c

Browse files
rkannoth1davem330
authored andcommitted
net: flow_dissector: Use 64bits for used_keys
As 32bits of dissector->used_keys are exhausted, increase the size to 64bits. This is base change for ESP/AH flow dissector patch. Please find patch and discussions at https://lore.kernel.org/netdev/[email protected]/T/#t Signed-off-by: Ratheesh Kannoth <[email protected]> Reviewed-by: Petr Machata <[email protected]> # for mlxsw Tested-by: Petr Machata <[email protected]> Reviewed-by: Martin Habets <[email protected]> Reviewed-by: Simon Horman <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 64a3727 commit 2b3082c

File tree

34 files changed

+317
-306
lines changed

34 files changed

+317
-306
lines changed

drivers/net/dsa/ocelot/felix_vsc9959.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1746,10 +1746,10 @@ static int vsc9959_stream_identify(struct flow_cls_offload *f,
17461746
struct flow_dissector *dissector = rule->match.dissector;
17471747

17481748
if (dissector->used_keys &
1749-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
1750-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
1751-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
1752-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS)))
1749+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
1750+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
1751+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
1752+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS)))
17531753
return -EOPNOTSUPP;
17541754

17551755
if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) {

drivers/net/dsa/sja1105/sja1105_flower.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,10 @@ static int sja1105_flower_parse_key(struct sja1105_private *priv,
205205
u16 pcp = U16_MAX;
206206

207207
if (dissector->used_keys &
208-
~(BIT(FLOW_DISSECTOR_KEY_BASIC) |
209-
BIT(FLOW_DISSECTOR_KEY_CONTROL) |
210-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
211-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS))) {
208+
~(BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
209+
BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
210+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
211+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS))) {
212212
NL_SET_ERR_MSG_MOD(extack,
213213
"Unsupported keys used");
214214
return -EOPNOTSUPP;

drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,9 @@ static int bnxt_tc_parse_flow(struct bnxt *bp,
373373
struct flow_dissector *dissector = rule->match.dissector;
374374

375375
/* KEY_CONTROL and KEY_BASIC are needed for forming a meaningful key */
376-
if ((dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_CONTROL)) == 0 ||
377-
(dissector->used_keys & BIT(FLOW_DISSECTOR_KEY_BASIC)) == 0) {
378-
netdev_info(bp->dev, "cannot form TC key: used_keys = 0x%x\n",
376+
if ((dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL)) == 0 ||
377+
(dissector->used_keys & BIT_ULL(FLOW_DISSECTOR_KEY_BASIC)) == 0) {
378+
netdev_info(bp->dev, "cannot form TC key: used_keys = 0x%llx\n",
379379
dissector->used_keys);
380380
return -EOPNOTSUPP;
381381
}

drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -313,15 +313,15 @@ static int cxgb4_validate_flow_match(struct net_device *dev,
313313
u16 ethtype_key = 0;
314314

315315
if (dissector->used_keys &
316-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
317-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
318-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
319-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
320-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
321-
BIT(FLOW_DISSECTOR_KEY_ENC_KEYID) |
322-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
323-
BIT(FLOW_DISSECTOR_KEY_IP))) {
324-
netdev_warn(dev, "Unsupported key used: 0x%x\n",
316+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
317+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
318+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
319+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
320+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
321+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID) |
322+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
323+
BIT_ULL(FLOW_DISSECTOR_KEY_IP))) {
324+
netdev_warn(dev, "Unsupported key used: 0x%llx\n",
325325
dissector->used_keys);
326326
return -EOPNOTSUPP;
327327
}

drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ static int dpaa2_switch_flower_parse_key(struct flow_cls_offload *cls,
1717
struct dpsw_acl_fields *acl_h, *acl_m;
1818

1919
if (dissector->used_keys &
20-
~(BIT(FLOW_DISSECTOR_KEY_BASIC) |
21-
BIT(FLOW_DISSECTOR_KEY_CONTROL) |
22-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
23-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
24-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
25-
BIT(FLOW_DISSECTOR_KEY_IP) |
26-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
27-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS))) {
20+
~(BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
21+
BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
22+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
23+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
24+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
25+
BIT_ULL(FLOW_DISSECTOR_KEY_IP) |
26+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
27+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS))) {
2828
NL_SET_ERR_MSG_MOD(extack,
2929
"Unsupported keys used");
3030
return -EOPNOTSUPP;
@@ -539,9 +539,9 @@ static int dpaa2_switch_flower_parse_mirror_key(struct flow_cls_offload *cls,
539539
int ret = -EOPNOTSUPP;
540540

541541
if (dissector->used_keys &
542-
~(BIT(FLOW_DISSECTOR_KEY_BASIC) |
543-
BIT(FLOW_DISSECTOR_KEY_CONTROL) |
544-
BIT(FLOW_DISSECTOR_KEY_VLAN))) {
542+
~(BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
543+
BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
544+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN))) {
545545
NL_SET_ERR_MSG_MOD(extack,
546546
"Mirroring is supported only per VLAN");
547547
return -EOPNOTSUPP;

drivers/net/ethernet/freescale/enetc/enetc_qos.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,13 +483,13 @@ struct enetc_psfp {
483483
static struct actions_fwd enetc_act_fwd[] = {
484484
{
485485
BIT(FLOW_ACTION_GATE),
486-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS),
486+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS),
487487
FILTER_ACTION_TYPE_PSFP
488488
},
489489
{
490490
BIT(FLOW_ACTION_POLICE) |
491491
BIT(FLOW_ACTION_GATE),
492-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS),
492+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS),
493493
FILTER_ACTION_TYPE_PSFP
494494
},
495495
/* example for ACL actions */
@@ -1069,8 +1069,8 @@ static int enetc_psfp_hw_set(struct enetc_ndev_priv *priv,
10691069
return err;
10701070
}
10711071

1072-
static struct actions_fwd *enetc_check_flow_actions(u64 acts,
1073-
unsigned int inputkeys)
1072+
static struct actions_fwd *
1073+
enetc_check_flow_actions(u64 acts, unsigned long long inputkeys)
10741074
{
10751075
int i;
10761076

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7315,14 +7315,14 @@ static int hclge_parse_cls_flower(struct hclge_dev *hdev,
73157315
struct flow_dissector *dissector = flow->match.dissector;
73167316

73177317
if (dissector->used_keys &
7318-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
7319-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
7320-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
7321-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
7322-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
7323-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
7324-
BIT(FLOW_DISSECTOR_KEY_PORTS))) {
7325-
dev_err(&hdev->pdev->dev, "unsupported key set: %#x\n",
7318+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
7319+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
7320+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
7321+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
7322+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
7323+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
7324+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS))) {
7325+
dev_err(&hdev->pdev->dev, "unsupported key set: %#llx\n",
73267326
dissector->used_keys);
73277327
return -EOPNOTSUPP;
73287328
}

drivers/net/ethernet/intel/i40e/i40e_main.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8525,15 +8525,15 @@ static int i40e_parse_cls_flower(struct i40e_vsi *vsi,
85258525
u8 field_flags = 0;
85268526

85278527
if (dissector->used_keys &
8528-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
8529-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
8530-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
8531-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
8532-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
8533-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
8534-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
8535-
BIT(FLOW_DISSECTOR_KEY_ENC_KEYID))) {
8536-
dev_err(&pf->pdev->dev, "Unsupported key used: 0x%x\n",
8528+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
8529+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
8530+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
8531+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
8532+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
8533+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
8534+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
8535+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID))) {
8536+
dev_err(&pf->pdev->dev, "Unsupported key used: 0x%llx\n",
85378537
dissector->used_keys);
85388538
return -EOPNOTSUPP;
85398539
}

drivers/net/ethernet/intel/iavf/iavf_main.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3744,15 +3744,15 @@ static int iavf_parse_cls_flower(struct iavf_adapter *adapter,
37443744
struct virtchnl_filter *vf = &filter->f;
37453745

37463746
if (dissector->used_keys &
3747-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
3748-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
3749-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
3750-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
3751-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
3752-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
3753-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
3754-
BIT(FLOW_DISSECTOR_KEY_ENC_KEYID))) {
3755-
dev_err(&adapter->pdev->dev, "Unsupported key used: 0x%x\n",
3747+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
3748+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
3749+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
3750+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
3751+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
3752+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
3753+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
3754+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID))) {
3755+
dev_err(&adapter->pdev->dev, "Unsupported key used: 0x%llx\n",
37563756
dissector->used_keys);
37573757
return -EOPNOTSUPP;
37583758
}

drivers/net/ethernet/intel/ice/ice_tc_lib.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,24 +1343,24 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi,
13431343
dissector = rule->match.dissector;
13441344

13451345
if (dissector->used_keys &
1346-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
1347-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
1348-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
1349-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
1350-
BIT(FLOW_DISSECTOR_KEY_CVLAN) |
1351-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
1352-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
1353-
BIT(FLOW_DISSECTOR_KEY_ENC_CONTROL) |
1354-
BIT(FLOW_DISSECTOR_KEY_ENC_KEYID) |
1355-
BIT(FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS) |
1356-
BIT(FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS) |
1357-
BIT(FLOW_DISSECTOR_KEY_ENC_PORTS) |
1358-
BIT(FLOW_DISSECTOR_KEY_ENC_OPTS) |
1359-
BIT(FLOW_DISSECTOR_KEY_IP) |
1360-
BIT(FLOW_DISSECTOR_KEY_ENC_IP) |
1361-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
1362-
BIT(FLOW_DISSECTOR_KEY_PPPOE) |
1363-
BIT(FLOW_DISSECTOR_KEY_L2TPV3))) {
1346+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
1347+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
1348+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
1349+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
1350+
BIT_ULL(FLOW_DISSECTOR_KEY_CVLAN) |
1351+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
1352+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
1353+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_CONTROL) |
1354+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID) |
1355+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS) |
1356+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS) |
1357+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_PORTS) |
1358+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_OPTS) |
1359+
BIT_ULL(FLOW_DISSECTOR_KEY_IP) |
1360+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_IP) |
1361+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
1362+
BIT_ULL(FLOW_DISSECTOR_KEY_PPPOE) |
1363+
BIT_ULL(FLOW_DISSECTOR_KEY_L2TPV3))) {
13641364
NL_SET_ERR_MSG_MOD(fltr->extack, "Unsupported key used");
13651365
return -EOPNOTSUPP;
13661366
}
@@ -1382,10 +1382,10 @@ ice_parse_cls_flower(struct net_device *filter_dev, struct ice_vsi *vsi,
13821382
*/
13831383
headers = &fltr->inner_headers;
13841384
} else if (dissector->used_keys &
1385-
(BIT(FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS) |
1386-
BIT(FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS) |
1387-
BIT(FLOW_DISSECTOR_KEY_ENC_KEYID) |
1388-
BIT(FLOW_DISSECTOR_KEY_ENC_PORTS))) {
1385+
(BIT_ULL(FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS) |
1386+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS) |
1387+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID) |
1388+
BIT_ULL(FLOW_DISSECTOR_KEY_ENC_PORTS))) {
13891389
NL_SET_ERR_MSG_MOD(fltr->extack, "Tunnel key used, but device isn't a tunnel");
13901390
return -EOPNOTSUPP;
13911391
} else {

drivers/net/ethernet/intel/igb/igb_main.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2615,10 +2615,10 @@ static int igb_parse_cls_flower(struct igb_adapter *adapter,
26152615
struct netlink_ext_ack *extack = f->common.extack;
26162616

26172617
if (dissector->used_keys &
2618-
~(BIT(FLOW_DISSECTOR_KEY_BASIC) |
2619-
BIT(FLOW_DISSECTOR_KEY_CONTROL) |
2620-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
2621-
BIT(FLOW_DISSECTOR_KEY_VLAN))) {
2618+
~(BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
2619+
BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
2620+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
2621+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN))) {
26222622
NL_SET_ERR_MSG_MOD(extack,
26232623
"Unsupported key used, only BASIC, CONTROL, ETH_ADDRS and VLAN are supported");
26242624
return -EOPNOTSUPP;

drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -454,15 +454,15 @@ static int otx2_tc_prepare_flow(struct otx2_nic *nic, struct otx2_tc_flow *node,
454454
dissector = rule->match.dissector;
455455

456456
if ((dissector->used_keys &
457-
~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
458-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
459-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
460-
BIT(FLOW_DISSECTOR_KEY_VLAN) |
461-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
462-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
463-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
464-
BIT(FLOW_DISSECTOR_KEY_IP)))) {
465-
netdev_info(nic->netdev, "unsupported flow used key 0x%x",
457+
~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
458+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
459+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
460+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
461+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
462+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
463+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
464+
BIT_ULL(FLOW_DISSECTOR_KEY_IP)))) {
465+
netdev_info(nic->netdev, "unsupported flow used key 0x%llx",
466466
dissector->used_keys);
467467
return -EOPNOTSUPP;
468468
}

drivers/net/ethernet/marvell/prestera/prestera_flower.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,16 +202,16 @@ static int prestera_flower_parse(struct prestera_flow_block *block,
202202
int err;
203203

204204
if (dissector->used_keys &
205-
~(BIT(FLOW_DISSECTOR_KEY_META) |
206-
BIT(FLOW_DISSECTOR_KEY_CONTROL) |
207-
BIT(FLOW_DISSECTOR_KEY_BASIC) |
208-
BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
209-
BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
210-
BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
211-
BIT(FLOW_DISSECTOR_KEY_ICMP) |
212-
BIT(FLOW_DISSECTOR_KEY_PORTS) |
213-
BIT(FLOW_DISSECTOR_KEY_PORTS_RANGE) |
214-
BIT(FLOW_DISSECTOR_KEY_VLAN))) {
205+
~(BIT_ULL(FLOW_DISSECTOR_KEY_META) |
206+
BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
207+
BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
208+
BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
209+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
210+
BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
211+
BIT_ULL(FLOW_DISSECTOR_KEY_ICMP) |
212+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
213+
BIT_ULL(FLOW_DISSECTOR_KEY_PORTS_RANGE) |
214+
BIT_ULL(FLOW_DISSECTOR_KEY_VLAN))) {
215215
NL_SET_ERR_MSG_MOD(f->common.extack, "Unsupported key");
216216
return -EOPNOTSUPP;
217217
}

drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -221,16 +221,21 @@ mlx5_ct_fs_smfs_destroy(struct mlx5_ct_fs *fs)
221221
}
222222

223223
static inline bool
224-
mlx5_tc_ct_valid_used_dissector_keys(const u32 used_keys)
224+
mlx5_tc_ct_valid_used_dissector_keys(const u64 used_keys)
225225
{
226-
#define DISS_BIT(name) BIT(FLOW_DISSECTOR_KEY_ ## name)
227-
const u32 basic_keys = DISS_BIT(BASIC) | DISS_BIT(CONTROL) | DISS_BIT(META);
228-
const u32 ipv4_tcp = basic_keys | DISS_BIT(IPV4_ADDRS) | DISS_BIT(PORTS) | DISS_BIT(TCP);
229-
const u32 ipv6_tcp = basic_keys | DISS_BIT(IPV6_ADDRS) | DISS_BIT(PORTS) | DISS_BIT(TCP);
230-
const u32 ipv4_udp = basic_keys | DISS_BIT(IPV4_ADDRS) | DISS_BIT(PORTS);
231-
const u32 ipv6_udp = basic_keys | DISS_BIT(IPV6_ADDRS) | DISS_BIT(PORTS);
232-
const u32 ipv4_gre = basic_keys | DISS_BIT(IPV4_ADDRS);
233-
const u32 ipv6_gre = basic_keys | DISS_BIT(IPV6_ADDRS);
226+
#define DISS_BIT(name) BIT_ULL(FLOW_DISSECTOR_KEY_ ## name)
227+
const u64 basic_keys = DISS_BIT(BASIC) | DISS_BIT(CONTROL) |
228+
DISS_BIT(META);
229+
const u64 ipv4_tcp = basic_keys | DISS_BIT(IPV4_ADDRS) |
230+
DISS_BIT(PORTS) | DISS_BIT(TCP);
231+
const u64 ipv6_tcp = basic_keys | DISS_BIT(IPV6_ADDRS) |
232+
DISS_BIT(PORTS) | DISS_BIT(TCP);
233+
const u64 ipv4_udp = basic_keys | DISS_BIT(IPV4_ADDRS) |
234+
DISS_BIT(PORTS);
235+
const u64 ipv6_udp = basic_keys | DISS_BIT(IPV6_ADDRS) |
236+
DISS_BIT(PORTS);
237+
const u64 ipv4_gre = basic_keys | DISS_BIT(IPV4_ADDRS);
238+
const u64 ipv6_gre = basic_keys | DISS_BIT(IPV6_ADDRS);
234239

235240
return (used_keys == ipv4_tcp || used_keys == ipv4_udp || used_keys == ipv6_tcp ||
236241
used_keys == ipv6_udp || used_keys == ipv4_gre || used_keys == ipv6_gre);
@@ -247,7 +252,7 @@ mlx5_ct_fs_smfs_ct_validate_flow_rule(struct mlx5_ct_fs *fs, struct flow_rule *f
247252
struct flow_match_tcp tcp;
248253

249254
if (!mlx5_tc_ct_valid_used_dissector_keys(flow_rule->match.dissector->used_keys)) {
250-
ct_dbg("rule uses unexpected dissectors (0x%08x)",
255+
ct_dbg("rule uses unexpected dissectors (0x%016llx)",
251256
flow_rule->match.dissector->used_keys);
252257
return false;
253258
}

0 commit comments

Comments
 (0)