mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
nvethernet: Disable VLAN VID tag filters
Issue: The L2 Orin bridge use case is encountered an issue on AV+L NDAS builds for VLAN ping from HOST1 to HOST2 over L2 Orin bridge. As HOST1/HOST2 VLAN packets are dropped by EQOS/MGBE MAC due to VLAN VID feature enable. Fix: To support the L2 Orin bridge VLAN HOST1 to HOST2 data usecase, disable the VLAN VID filters in the nvethernet driver. Bug 4230250 Change-Id: I02514fcc15b7764fe93118a9f90c16716368c73c Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com> (cherry picked from commit 86cb37f933846a012ba6d8cdac275a2edda0aa42) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3003075 Reviewed-by: Bhadram Varka <vbhadram@nvidia.com> Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
d0ae4194d7
commit
e8d516daf3
@@ -2696,7 +2696,9 @@ static int ether_open(struct net_device *dev)
|
|||||||
#ifndef OSI_STRIPPED_LIB
|
#ifndef OSI_STRIPPED_LIB
|
||||||
/* As all registers reset as part of ether_close(), reset private
|
/* As all registers reset as part of ether_close(), reset private
|
||||||
* structure variable as well */
|
* structure variable as well */
|
||||||
|
#ifdef ETHER_VLAN_VID_SUPPORT
|
||||||
pdata->vlan_hash_filtering = OSI_PERFECT_FILTER_MODE;
|
pdata->vlan_hash_filtering = OSI_PERFECT_FILTER_MODE;
|
||||||
|
#endif /* ETHER_VLAN_VID_SUPPORT */
|
||||||
pdata->l2_filtering_mode = OSI_PERFECT_FILTER_MODE;
|
pdata->l2_filtering_mode = OSI_PERFECT_FILTER_MODE;
|
||||||
#endif /* !OSI_STRIPPED_LIB */
|
#endif /* !OSI_STRIPPED_LIB */
|
||||||
|
|
||||||
@@ -4123,7 +4125,7 @@ static int ether_set_features(struct net_device *ndev, netdev_features_t feat)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OSI_STRIPPED_LIB
|
#ifdef ETHER_VLAN_VID_SUPPORT
|
||||||
/**
|
/**
|
||||||
* @brief Adds VLAN ID. This function is invoked by upper
|
* @brief Adds VLAN ID. This function is invoked by upper
|
||||||
* layer when a new VLAN id is registered. This function updates the HW
|
* layer when a new VLAN id is registered. This function updates the HW
|
||||||
@@ -4211,7 +4213,7 @@ static int ether_vlan_rx_kill_vid(struct net_device *ndev, __be16 vlan_proto,
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* !OSI_STRIPPED_LIB */
|
#endif /* ETHER_VLAN_VID_SUPPORT */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ether_setup_tc - TC HW offload support
|
* @brief ether_setup_tc - TC HW offload support
|
||||||
@@ -4266,10 +4268,10 @@ static const struct net_device_ops ether_netdev_ops = {
|
|||||||
.ndo_select_queue = ether_select_queue,
|
.ndo_select_queue = ether_select_queue,
|
||||||
.ndo_set_features = ether_set_features,
|
.ndo_set_features = ether_set_features,
|
||||||
.ndo_set_rx_mode = ether_set_rx_mode,
|
.ndo_set_rx_mode = ether_set_rx_mode,
|
||||||
#ifndef OSI_STRIPPED_LIB
|
#ifdef ETHER_VLAN_VID_SUPPORT
|
||||||
.ndo_vlan_rx_add_vid = ether_vlan_rx_add_vid,
|
.ndo_vlan_rx_add_vid = ether_vlan_rx_add_vid,
|
||||||
.ndo_vlan_rx_kill_vid = ether_vlan_rx_kill_vid,
|
.ndo_vlan_rx_kill_vid = ether_vlan_rx_kill_vid,
|
||||||
#endif /* !OSI_STRIPPED_LIB */
|
#endif /* ETHER_VLAN_VID_SUPPORT */
|
||||||
.ndo_setup_tc = ether_setup_tc,
|
.ndo_setup_tc = ether_setup_tc,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -6363,10 +6365,10 @@ static void ether_set_ndev_features(struct net_device *ndev,
|
|||||||
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
features |= NETIF_F_HW_VLAN_CTAG_TX;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OSI_STRIPPED_LIB
|
#ifdef ETHER_VLAN_VID_SUPPORT
|
||||||
/* Rx VLAN tag stripping/filtering enabled by default */
|
/* Rx VLAN tag stripping/filtering enabled by default */
|
||||||
features |= NETIF_F_HW_VLAN_CTAG_FILTER;
|
features |= NETIF_F_HW_VLAN_CTAG_FILTER;
|
||||||
#endif /* !OSI_STRIPPED_LIB */
|
#endif /* ETHER_VLAN_VID_SUPPORT */
|
||||||
|
|
||||||
/* Receive Hashing offload */
|
/* Receive Hashing offload */
|
||||||
if (pdata->hw_feat.rss_en) {
|
if (pdata->hw_feat.rss_en) {
|
||||||
|
|||||||
Reference in New Issue
Block a user