aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/skbuff.c
diff options
context:
space:
mode:
authorPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>2007-07-06 16:36:20 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-11 01:16:21 -0400
commitf25f4e44808f0f6c9875d94ef1c41ef86c288eb2 (patch)
treed7809dd5e957f1626185326d0c3438ff9a04d350 /net/core/skbuff.c
parenta093bf006e09a305e95ff0938c0a18b7520aef67 (diff)
[CORE] Stack changes to add multiqueue hardware support API
Add the multiqueue hardware device support API to the core network stack. Allow drivers to allocate multiple queues and manage them at the netdev level if they choose to do so. Added a new field to sk_buff, namely queue_mapping, for drivers to know which tx_ring to select based on OS classification of the flow. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r--net/core/skbuff.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index c989c3a0f907..6a41b96b3d37 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -419,6 +419,7 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
419 n->nohdr = 0; 419 n->nohdr = 0;
420 C(pkt_type); 420 C(pkt_type);
421 C(ip_summed); 421 C(ip_summed);
422 skb_copy_queue_mapping(n, skb);
422 C(priority); 423 C(priority);
423#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) 424#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
424 C(ipvs_property); 425 C(ipvs_property);
@@ -460,6 +461,7 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
460#endif 461#endif
461 new->sk = NULL; 462 new->sk = NULL;
462 new->dev = old->dev; 463 new->dev = old->dev;
464 skb_copy_queue_mapping(new, old);
463 new->priority = old->priority; 465 new->priority = old->priority;
464 new->protocol = old->protocol; 466 new->protocol = old->protocol;
465 new->dst = dst_clone(old->dst); 467 new->dst = dst_clone(old->dst);
@@ -1932,6 +1934,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, int features)
1932 tail = nskb; 1934 tail = nskb;
1933 1935
1934 nskb->dev = skb->dev; 1936 nskb->dev = skb->dev;
1937 skb_copy_queue_mapping(nskb, skb);
1935 nskb->priority = skb->priority; 1938 nskb->priority = skb->priority;
1936 nskb->protocol = skb->protocol; 1939 nskb->protocol = skb->protocol;
1937 nskb->dst = dst_clone(skb->dst); 1940 nskb->dst = dst_clone(skb->dst);