From 36e89d73e54c8db79d0fd1636cab9236eea7aae9 Mon Sep 17 00:00:00 2001 From: Lucy Liu Date: Wed, 5 Aug 2009 13:06:34 -0700 Subject: [PATCH] ixgbe: allow vlan egress priority mapping in DCB mode The skb priority to vlan-qos egress mapping that can be configured using set_egress_map with vconfig is overriden by the DCB code in the driver. This patch allows this existing mechanism to work and will increase the configuration flexibility of DCB mode on Linux. A hierarchy of configuration is: 1. Modifies the ixgbe_select_queue() routine for DCB mode to return the priority value from the VLAN tag. It will normally be zero, unless the egress priority map has modified it. This will get packets into the correct queue and result in the queue_mapping field being set correctly. 2. Any tc filter which modifies queue_mapping will be honored, as the filters are handled after the vlan egress map is handled. Signed-off-by: Lucy Liu Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller --- drivers/net/ixgbe/ixgbe_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 44adc9862826..52d7f19de435 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ -5126,7 +5126,7 @@ static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb) return smp_processor_id(); if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) - return 0; /* All traffic should default to class 0 */ + return (skb->vlan_tci & IXGBE_TX_FLAGS_VLAN_PRIO_MASK) >> 13; return skb_tx_hash(dev, skb); } -- 2.34.1