On Thu, 2020-11-05 at 14:58 +0530, Naveen Mamindlapalli wrote: > From: Hariprasad Kelam <hke...@marvell.com> > > 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 <hke...@marvell.com> > Signed-off-by: Sunil Goutham <sgout...@marvell.com> > Signed-off-by: Naveen Mamindlapalli <nave...@marvell.com> > ---
.. > @@ -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://www.kernel.org/doc/html/latest/networking/netdev-features.html Features dependencies must be resolved via: ndo_fix_features() and netdev_update_features(); > +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 ?