Re: [net-next PATCH] octeontx2-af: Tc flower offload support for inner VLAN

From: Leon Romanovsky
Date: Wed Jul 26 2023 - 07:49:20 EST


On Tue, Jul 25, 2023 at 04:04:42PM +0530, Suman Ghosh wrote:
> This patch extends current TC flower offload support to allow filters
> involving inner VLAN matching, to be offloaded to HW.
>
> Example command:
> tc filter add dev eth2 protocol 802.1AD parent ffff: flower vlan_id 10
> vlan_ethtype 802.1Q cvlan_id 20 skip_sw action drop
>
> Signed-off-by: Suman Ghosh <sumang@xxxxxxxxxxx>
> ---
> .../net/ethernet/marvell/octeontx2/af/mbox.h | 1 +
> .../net/ethernet/marvell/octeontx2/af/npc.h | 3 +
> .../marvell/octeontx2/af/rvu_debugfs.c | 5 +
> .../marvell/octeontx2/af/rvu_npc_fs.c | 13 +++
> .../ethernet/marvell/octeontx2/nic/otx2_tc.c | 106 +++++++++++-------
> 5 files changed, 90 insertions(+), 38 deletions(-)

<...>

> + if (!is_inner)
> + flow_rule_match_vlan(rule, &match);
> + else
> + flow_rule_match_cvlan(rule, &match);

<...>

> + if (!is_inner) {
> + flow_spec->vlan_tci = htons(vlan_tci);
> + flow_mask->vlan_tci = htons(vlan_tci_mask);
> + req->features |= BIT_ULL(NPC_OUTER_VID);
> + } else {
> + flow_spec->vlan_itci = htons(vlan_tci);
> + flow_mask->vlan_itci = htons(vlan_tci_mask);
> + req->features |= BIT_ULL(NPC_INNER_VID);
> + }

Slightly better approach will be to reverse these checks from
"if (!is_inner)" to be "f (is_inner)".

Other than that,
Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>