Commit 8d33668a authored by Chiqijun's avatar Chiqijun Committed by Yang Yingliang
Browse files

net/hinic: Fix data inconsistency in the forwarding scenario when DCB is turned on



driver inclusion
category: bugfix
bugzilla: 4472

-----------------------------------------------------------------------

When there are multiple priority packets in a tx queue in 1822, the
out-of-sequence of the sent packets will cause data inconsistency. When
DCB is enabled and Layer 2 forwarding is configured, when the receiving
vlan device is configured with ingress_map, the priority of skb may be
mapped to a non-zero value. The hinic driver first selects the queue
through skb-> priority, but the priority is fixed to use vlan priority.
As a result, there may be multiple priorities for the same tx queue.
Therefore, the driver is modified to only select the queue through the
VLAN priority.

Signed-off-by: default avatarChiqijun <chiqijun@huawei.com>
Reviewed-by: default avatarZengweiliang <zengweiliang.zengweiliang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parent 805b016e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1193,7 +1193,6 @@ static u16 hinic_select_queue(struct net_device *netdev, struct sk_buff *skb)
{
	struct hinic_nic_dev *nic_dev = netdev_priv(netdev);

	if (skb->vlan_tci && !skb->priority)
	skb->priority = skb->vlan_tci >> VLAN_PRIO_SHIFT;

	if (netdev_get_num_tc(netdev) || !nic_dev->rss_hkey_user_be)