net: Add initial TX and RX traffic class support
With this commit it is possible to add priority to sent or received network packets. So user is able to send or receive higher priority packets faster than lower level packets. The traffic class support is activated by CONFIG_NET_TC_COUNT option. The TC support uses work queues to separate the traffic. The priority of the work queue thread specifies the ordering of the network traffic. Each work queue thread handles traffic to one specific work queue. Note that you should not enable traffic classes unless you really need them by your application. Each TC thread needs stack so this feature requires more memory. It is possible to disable transmit traffic class support and keep the receive traffic class support, or vice versa. If both RX and TX traffic classes are enabled, then both will use the same number of queues defined by CONFIG_NET_TC_COUNT option. Fixes #6588 Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This commit is contained in:
parent
159aaf1740
commit
6049207a29
16 changed files with 600 additions and 211 deletions
|
@ -169,6 +169,8 @@ struct net_stack_info {
|
|||
|
||||
#else /* CONFIG_NET_SHELL */
|
||||
|
||||
#define NET_STACK_GET_NAME(pretty, name, sfx) (name)
|
||||
|
||||
#define NET_STACK_INFO(...)
|
||||
#define NET_STACK_INFO_ADDR(...)
|
||||
|
||||
|
@ -216,6 +218,22 @@ static inline void net_analyze_stack(const char *name,
|
|||
#endif
|
||||
/* @endcond */
|
||||
|
||||
/* Some helper defines for traffic class support */
|
||||
#if defined(CONFIG_NET_TC_TX_COUNT) && defined(CONFIG_NET_TC_RX_COUNT)
|
||||
#define NET_TC_TX_COUNT CONFIG_NET_TC_TX_COUNT
|
||||
#define NET_TC_RX_COUNT CONFIG_NET_TC_RX_COUNT
|
||||
|
||||
#if NET_TC_TX_COUNT > NET_TC_RX_COUNT
|
||||
#define NET_TC_COUNT NET_TC_TX_COUNT
|
||||
#else
|
||||
#define NET_TC_COUNT NET_TC_RX_COUNT
|
||||
#endif
|
||||
#else /* CONFIG_NET_TC_TX_COUNT && CONFIG_NET_TC_RX_COUNT */
|
||||
#define NET_TC_TX_COUNT 1
|
||||
#define NET_TC_RX_COUNT 1
|
||||
#define NET_TC_COUNT 1
|
||||
#endif /* CONFIG_NET_TC_TX_COUNT && CONFIG_NET_TC_RX_COUNT */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue