net: If SKB has attached socket, use socket's hash for TX queue selection.
authorDavid S. Miller <davem@davemloft.net>
Wed, 28 Jan 2009 00:27:48 +0000 (16:27 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Jan 2009 00:27:48 +0000 (16:27 -0800)
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index b21ad0b47aae439b9b9c21970bc8e4759da82a0e..cb8caa93cacaba5079a441022a61b865c488590a 100644 (file)
@@ -1729,6 +1729,13 @@ static u16 simple_tx_hash(struct net_device *dev, struct sk_buff *skb)
                goto out;
        }
 
+       if (skb->sk && skb->sk->sk_hash) {
+               u32 val = skb->sk->sk_hash;
+
+               hash = jhash_1word(val, simple_tx_hashrnd);
+               goto out;
+       }
+
        switch (skb->protocol) {
        case htons(ETH_P_IP):
                if (!(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)))