Re: [PATCH v2 net-next 09/13] octeontx2-pf: Implement ingress/egress VLAN offload

From: Naveen Mamindlapalli
Date: Tue Nov 10 2020 - 11:58:44 EST


Hi Saeed,

Thanks for the review!

> -----Original Message-----
> From: Saeed Mahameed <saeed@xxxxxxxxxx>
> Sent: Saturday, November 7, 2020 4:03 AM
> To: Naveen Mamindlapalli <naveenm@xxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Cc: kuba@xxxxxxxxxx; davem@xxxxxxxxxxxxx; Sunil Kovvuri Goutham
> <sgoutham@xxxxxxxxxxx>; Linu Cherian <lcherian@xxxxxxxxxxx>;
> Geethasowjanya Akula <gakula@xxxxxxxxxxx>; Jerin Jacob Kollanukkaran
> <jerinj@xxxxxxxxxxx>; Subbaraya Sundeep Bhatta <sbhatta@xxxxxxxxxxx>;
> Hariprasad Kelam <hkelam@xxxxxxxxxxx>
> 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:
> > From: Hariprasad Kelam <hkelam@xxxxxxxxxxx>
> >
> > 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 <hkelam@xxxxxxxxxxx>
> > Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx>
> > Signed-off-by: Naveen Mamindlapalli <naveenm@xxxxxxxxxxx>
> > ---
>
> ..
>
> > @@ -56,6 +58,8 @@ void otx2_mcam_flow_del(struct otx2_nic *pf) int
> > otx2_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.
>
>
> > +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.