CONFIG_NET_TC_RX_COUNT
How many Rx traffic classes to have for each network device
Type: int
Help
Define how many Rx traffic classes (queues) the system should have
when receiving a network packet. The network packet priority can then
be mapped to this traffic class so that higher prioritized packets
can be processed before lower prioritized ones. Each queue is handled
by a separate thread which will need RAM for stack space.
Only increase the value from 1 if you really need this feature.
The default value is 1 which means that all the network traffic is
handled equally. In this implementation, the higher traffic class
value corresponds to lower thread priority.
If you select 0 here, then it means that all the network traffic
is pushed from the driver to application thread without any
intermediate RX queue. There is always a receive socket queue between
device driver and application. Disabling RX thread means that the
network device driver, that is typically running in IRQ context, will
handle the packet all the way to the application. This might cause
other incoming packets to be lost if the RX processing takes long
time.
Note that if USERSPACE support is enabled, then currently we need to
enable at least 1 RX thread.
Direct dependencies
(Includes any dependencies from ifs and menus.)
Default
1
Kconfig definition
At <Zephyr>/subsys/net/ip/Kconfig:164
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:44
→ <Zephyr>/subsys/Kconfig:39
→ <Zephyr>/subsys/net/Kconfig:83
Menu path: (Top) → Sub Systems and OS Services → Networking → Link layer and IP networking support → IP stack
config NET_TC_RX_COUNT
int "How many Rx traffic classes to have for each network device"
range 1 NET_TC_NUM_PRIORITIES if NET_TC_NUM_PRIORITIES <= 8 && USERSPACE
range 0 NET_TC_NUM_PRIORITIES if NET_TC_NUM_PRIORITIES <= 8
range 1 8 if USERSPACE
range 0 8
default 1
depends on !NET_RAW_MODE && NETWORKING
help
Define how many Rx traffic classes (queues) the system should have
when receiving a network packet. The network packet priority can then
be mapped to this traffic class so that higher prioritized packets
can be processed before lower prioritized ones. Each queue is handled
by a separate thread which will need RAM for stack space.
Only increase the value from 1 if you really need this feature.
The default value is 1 which means that all the network traffic is
handled equally. In this implementation, the higher traffic class
value corresponds to lower thread priority.
If you select 0 here, then it means that all the network traffic
is pushed from the driver to application thread without any
intermediate RX queue. There is always a receive socket queue between
device driver and application. Disabling RX thread means that the
network device driver, that is typically running in IRQ context, will
handle the packet all the way to the application. This might cause
other incoming packets to be lost if the RX processing takes long
time.
Note that if USERSPACE support is enabled, then currently we need to
enable at least 1 RX thread.
(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)