summaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorAlexander Duyck2016-10-28 17:43:20 +0200
committerDavid S. Miller2016-10-31 20:00:47 +0100
commit9cf1f6a8c4cbb7836b838b51b3b02ddf32c6c6a0 (patch)
tree95234f2b1432742b72108a587692635ba5a47be2 /net/core/dev.c
parentdriver: tun: Use new macro SOCK_IOC_TYPE instead of literal number 0x89 (diff)
downloadkernel-qcow2-linux-9cf1f6a8c4cbb7836b838b51b3b02ddf32c6c6a0.tar.gz
kernel-qcow2-linux-9cf1f6a8c4cbb7836b838b51b3b02ddf32c6c6a0.tar.xz
kernel-qcow2-linux-9cf1f6a8c4cbb7836b838b51b3b02ddf32c6c6a0.zip
net: Move functions for configuring traffic classes out of inline headers
The functions for configuring the traffic class to queue mappings have other effects that need to be addressed. Instead of trying to export a bunch of new functions just relocate the functions so that we can instrument them directly with the functionality they will need. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 8341dadf5e94..2d54be912136 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2173,6 +2173,35 @@ error:
EXPORT_SYMBOL(netif_set_xps_queue);
#endif
+void netdev_reset_tc(struct net_device *dev)
+{
+ dev->num_tc = 0;
+ memset(dev->tc_to_txq, 0, sizeof(dev->tc_to_txq));
+ memset(dev->prio_tc_map, 0, sizeof(dev->prio_tc_map));
+}
+EXPORT_SYMBOL(netdev_reset_tc);
+
+int netdev_set_tc_queue(struct net_device *dev, u8 tc, u16 count, u16 offset)
+{
+ if (tc >= dev->num_tc)
+ return -EINVAL;
+
+ dev->tc_to_txq[tc].count = count;
+ dev->tc_to_txq[tc].offset = offset;
+ return 0;
+}
+EXPORT_SYMBOL(netdev_set_tc_queue);
+
+int netdev_set_num_tc(struct net_device *dev, u8 num_tc)
+{
+ if (num_tc > TC_MAX_QUEUE)
+ return -EINVAL;
+
+ dev->num_tc = num_tc;
+ return 0;
+}
+EXPORT_SYMBOL(netdev_set_num_tc);
+
/*
* Routine to help set real_num_tx_queues. To avoid skbs mapped to queues
* greater then real_num_tx_queues stale skbs on the qdisc must be flushed.