:orphan: .. title:: CONFIG_NET_TC_RX_COUNT .. kconfig:: CONFIG_NET_TC_RX_COUNT CONFIG_NET_TC_RX_COUNT ###################### *How many Rx traffic classes to have for each network device* Type: ``int`` Help ==== .. code-block:: none 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 =================== !\ :kconfig:`NET_RAW_MODE ` && \ :kconfig:`NETWORKING ` *(Includes any dependencies from ifs and menus.)* Default ======= - 1 Kconfig definition ================== At ``/net/ip/Kconfig:164`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:44`` → ``/Kconfig:39`` → ``/net/Kconfig:87`` Menu path: (Top) → Sub Systems and OS Services → Networking → Link layer and IP networking support → IP stack .. code-block:: kconfig 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.)*