diff options
author | Sachin Saxena <sachin.saxena@freescale.com> | 2013-04-15 09:38:38 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-04-16 22:39:41 (GMT) |
commit | 107eeafdd3d8dd59d4c493460902ce5d79269068 (patch) | |
tree | 506d4094899e0050385dacfab454d56bb5c92ab1 /net/core/dev.c | |
parent | 76d92610a3ba8bacb6703eeb6a44ba7159745a22 (diff) | |
download | linux-fsl-qoriq-107eeafdd3d8dd59d4c493460902ce5d79269068.tar.xz |
Changes to support ASF QOS Integration with Kernel
Signed-off-by: Sachin Saxena <sachin.saxena@freescale.com>
CQ ID : ENGR00253307
Change-Id: If090285cc4fdfe6a09bd62da1697a55404cdbce4
Reviewed-on: http://git.am.freescale.net:8181/1345
Reviewed-by: Gupta Rajan-B15745 <rajan.gupta@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 29aab09..68dd7f8 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2617,6 +2617,24 @@ static void skb_update_prio(struct sk_buff *skb) static DEFINE_PER_CPU(int, xmit_recursion); #define RECURSION_LIMIT 10 +#ifdef CONFIG_ASF_EGRESS_QOS +/* Linux QoS hook to tranfer all packet to ASF QoS */ +static asf_qos_fn_hook *asf_qos_fn; + +void asf_qos_fn_register(asf_qos_fn_hook *fn) +{ + asf_qos_fn = fn; +} +EXPORT_SYMBOL(asf_qos_fn_register); + +void asf_qos_fn_unregister(void) +{ + asf_qos_fn = NULL; +} +EXPORT_SYMBOL(asf_qos_fn_unregister); +#endif + + /** * dev_loopback_xmit - loop back @skb * @skb: buffer to transmit @@ -2686,6 +2704,14 @@ int dev_queue_xmit(struct sk_buff *skb) #ifdef CONFIG_NET_CLS_ACT skb->tc_verd = SET_TC_AT(skb->tc_verd, AT_EGRESS); #endif + +#ifdef CONFIG_ASF_EGRESS_QOS + if (asf_qos_fn) { + rc = asf_qos_fn(skb); + goto out; + } +#endif + trace_net_dev_queue(skb); if (q->enqueue) { rc = __dev_xmit_skb(skb, q, dev, txq); |