Re: [PATCH v2 net-next 09/13] octeontx2-pf: Implement ingress/egress VLAN offload
From: Naveen Mamindlapalli <hidden>
Date: 2020-11-10 16:58:43
Also in:
lkml
Hi Saeed, Thanks for the review!
-----Original Message----- From: Saeed Mahameed <saeed@kernel.org> Sent: Saturday, November 7, 2020 4:03 AM To: Naveen Mamindlapalli <redacted>; netdev@vger.kernel.org; linux-kernel@vger.kernel.org Cc: kuba@kernel.org; davem@davemloft.net; Sunil Kovvuri Goutham [off-list ref]; Linu Cherian [off-list ref]; Geethasowjanya Akula [off-list ref]; Jerin Jacob Kollanukkaran [off-list ref]; Subbaraya Sundeep Bhatta [off-list ref]; Hariprasad Kelam [off-list ref] Subject: Re: [PATCH v2 net-next 09/13] octeontx2-pf: Implement ingress/egress VLAN offload On Thu, 2020-11-05 at 14:58 +0530, Naveen Mamindlapalli wrote:quoted
From: Hariprasad Kelam <redacted> This patch implements egress VLAN offload by appending NIX_SEND_EXT_S header to NIX_SEND_HDR_S. The VLAN TCI information is specified in the NIX_SEND_EXT_S. The VLAN offload in the ingress path is implemented by configuring the NIX_RX_VTAG_ACTION_S to strip and capture the outer vlan fields. The NIX PF allocates one MCAM entry for Rx VLAN offload. Signed-off-by: Hariprasad Kelam <redacted> Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Signed-off-by: Naveen Mamindlapalli <redacted> ---..quoted
@@ -56,6 +58,8 @@ void otx2_mcam_flow_del(struct otx2_nic *pf) intotx2_alloc_mcam_entries(struct otx2_nic *pfvf) { struct otx2_flow_config *flow_cfg = pfvf->flow_cfg; + netdev_features_t wanted = NETIF_F_HW_VLAN_STAG_RX | + NETIF_F_HW_VLAN_CTAG_RX; struct npc_mcam_alloc_entry_req *req; struct npc_mcam_alloc_entry_rsp *rsp; int i;@@ -88,15 +92,22 @@ int otx2_alloc_mcam_entries(struct otx2_nic*pfvf) if (rsp->count != req->count) { netdev_info(pfvf->netdev, "number of rules truncated to %d\n", rsp->count); + netdev_info(pfvf->netdev, + "Disabling RX VLAN offload due to non- availability of MCAM space\n"); /* support only ntuples here */ flow_cfg->ntuple_max_flows = rsp->count; flow_cfg->ntuple_offset = 0; pfvf->netdev->priv_flags &= ~IFF_UNICAST_FLT; pfvf->flags &= ~OTX2_FLAG_UCAST_FLTR_SUPPORT; + pfvf->flags &= ~OTX2_FLAG_RX_VLAN_SUPPORT; + pfvf->netdev->features &= ~wanted; + pfvf->netdev->hw_features &= ~wanted;Drivers are not allowed to change own features dynamically. please see: https://urldefense.proofpoint.com/v2/url?u=https- 3A__www.kernel.org_doc_html_latest_networking_netdev- 2Dfeatures.html&d=DwICaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=TwreqwV6mQ8K 9wIpqwFO8yjikO_w1jUOe2MzChg4Rmg&m=4bUL936Kl_JmPhgCgMxvCELhoEQ_ WM_OitdlqyTRlHU&s=Lgcm811tFrMvuw- JvTq4BPl76Nqv_HW6CigvKR8LgGw&e= Features dependencies must be resolved via: ndo_fix_features() and netdev_update_features();
Okay, will fix in v3.
quoted
+static netdev_features_t +otx2_features_check(struct sk_buff *skb, struct net_device *dev, + netdev_features_t features) +{ + return features; +} +what is the point of no-op features_check ?
Cross checked this and I don’t see any need for this check. I will remove in v3.