[openwrt/openwrt] kernel: Add KERNEL_DCB (Data Center Bridging)
LEDE Commits
lede-commits at lists.infradead.org
Sun Mar 9 09:06:58 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/40f1db9cb11d98ef0b5061b8e210e6351935df8a
commit 40f1db9cb11d98ef0b5061b8e210e6351935df8a
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Jan 19 19:49:38 2025 +0100
kernel: Add KERNEL_DCB (Data Center Bridging)
The kmod-mlxsw-spectrum driver activated CONFIG_DCB indirectly already
on all targets which are building this driver. All other DCB capable
driver did not activate their DCB support.
CONFIG_DCB increases the uncompressed kernel size by about 7.8KB.
CONFIG_DCB is only needed some data center Ethernet cards and not used
on normal routers. Activate it only on the x86_64 and the armsr_arm64
target which are used on normal servers or in VMs.
Link: https://github.com/openwrt/openwrt/pull/17672
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
config/Config-kernel.in | 22 ++++++++++++++++++++++
package/kernel/linux/modules/netdevices.mk | 18 ++++++++++--------
target/linux/generic/config-6.6 | 4 ----
target/linux/loongarch64/config-6.6 | 1 -
target/linux/x86/modules.mk | 4 +++-
5 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index 64c8c63466..31d0e2dba4 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -1212,6 +1212,28 @@ config KERNEL_NET_L3_MASTER_DEV
drivers to support L3 master devices like VRF.
Increases the compressed kernel size by ~4kB (as of Linux 6.6).
+config KERNEL_DCB
+ bool "Data Center Bridging support"
+ default y if TARGET_armsr_armv8
+ default y if TARGET_x86_64
+ help
+ This enables support for configuring Data Center Bridging (DCB)
+ features on DCB capable Ethernet adapters via rtnetlink. Say 'Y'
+ if you have a DCB capable Ethernet adapter which supports this
+ interface and you are connected to a DCB capable switch.
+
+ DCB is a collection of Ethernet enhancements which allow DCB capable
+ NICs and switches to support network traffic with differing
+ requirements (highly reliable, no drops vs. best effort vs. low
+ latency) to co-exist on Ethernet.
+
+ DCB features include:
+ Enhanced Transmission Selection (aka Priority Grouping) - provides a
+ framework for assigning bandwidth guarantees to traffic classes.
+ Priority-based Flow Control (PFC) - a MAC control pause frame which
+ works at the granularity of the 802.1p priority instead of the
+ link (802.3x).
+
config KERNEL_XDP_SOCKETS
bool "XDP sockets support"
help
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index d418701555..308958eb68 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -1148,7 +1148,8 @@ define KernelPackage/ixgbe
KCONFIG:=CONFIG_IXGBE \
CONFIG_IXGBE_VXLAN=n \
CONFIG_IXGBE_HWMON=y \
- CONFIG_IXGBE_DCA=n
+ CONFIG_IXGBE_DCA=n \
+ CONFIG_IXGBE_DCB=y
FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
AUTOLOAD:=$(call AutoLoad,35,ixgbe)
endef
@@ -1186,7 +1187,8 @@ define KernelPackage/i40e
KCONFIG:=CONFIG_I40E \
CONFIG_I40E_VXLAN=n \
CONFIG_I40E_HWMON=y \
- CONFIG_I40E_DCA=n
+ CONFIG_I40E_DCA=n \
+ CONFIG_I40E_DCB=y
FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/i40e/i40e.ko
AUTOLOAD:=$(call AutoProbe,i40e)
endef
@@ -1600,7 +1602,7 @@ define KernelPackage/bnxt-en
CONFIG_BNXT \
CONFIG_BNXT_SRIOV=y \
CONFIG_BNXT_FLOWER_OFFLOAD=y \
- CONFIG_BNXT_DCB=n \
+ CONFIG_BNXT_DCB=y \
CONFIG_BNXT_HWMON=y
AUTOLOAD:=$(call AutoProbe,bnxt_en)
endef
@@ -1642,7 +1644,7 @@ define KernelPackage/mlx4-core
$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko \
$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
KCONFIG:= CONFIG_MLX4_EN \
- CONFIG_MLX4_EN_DCB=n \
+ CONFIG_MLX4_EN_DCB=y \
CONFIG_MLX4_CORE=y \
CONFIG_MLX4_CORE_GEN2=y \
CONFIG_MLX4_DEBUG=n
@@ -1662,7 +1664,7 @@ define KernelPackage/mlx5-core
FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
KCONFIG:= CONFIG_MLX5_CORE \
CONFIG_MLX5_CORE_EN=y \
- CONFIG_MLX5_CORE_EN_DCB=n \
+ CONFIG_MLX5_CORE_EN_DCB=y \
CONFIG_MLX5_CORE_IPOIB=n \
CONFIG_MLX5_EN_ARFS=n \
CONFIG_MLX5_EN_IPSEC=n \
@@ -1781,8 +1783,7 @@ define KernelPackage/mlxsw-spectrum
KCONFIG:= \
CONFIG_MLXSW_SPECTRUM \
CONFIG_MLXSW_SPECTRUM_DCB=y \
- CONFIG_NET_SWITCHDEV=y \
- CONFIG_DCB=y
+ CONFIG_NET_SWITCHDEV=y
AUTOLOAD:=$(call AutoProbe,mlxsw_spectrum)
endef
@@ -1817,7 +1818,8 @@ define KernelPackage/qlcnic
KCONFIG:= \
CONFIG_QLCNIC \
CONFIG_QLCNIC_HWMON=y \
- CONFIG_QLCNIC_SRIOV=y
+ CONFIG_QLCNIC_SRIOV=y \
+ CONFIG_QLCNIC_DCB=y
FILES:=$(LINUX_DIR)/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
AUTOLOAD:=$(call AutoProbe,qlcnic)
endef
diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index d3b094eb58..ce2dc48dde 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -179,7 +179,6 @@ CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_AMD_MEM_ENCRYPT is not set
# CONFIG_AMD_PHY is not set
# CONFIG_AMD_XGBE is not set
-# CONFIG_AMD_XGBE_DCB is not set
# CONFIG_AMD_XGBE_HAVE_ECC is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_AMILO_RFKILL is not set
@@ -2531,7 +2530,6 @@ CONFIG_HZ_100=y
# CONFIG_I3C is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
-# CONFIG_I40E_DCB is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_I82092 is not set
# CONFIG_I82365 is not set
@@ -2883,7 +2881,6 @@ CONFIG_ISDN=y
# CONFIG_IWLWIFI is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
-# CONFIG_IXGBE_DCB is not set
# CONFIG_JAILHOUSE_GUEST is not set
# CONFIG_JBD2_DEBUG is not set
# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
@@ -4823,7 +4820,6 @@ CONFIG_PWRSEQ_SIMPLE=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_QLCNIC is not set
-# CONFIG_QLCNIC_DCB is not set
# CONFIG_QLGE is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6
index 553c7acbbc..fe0c50c98d 100644
--- a/target/linux/loongarch64/config-6.6
+++ b/target/linux/loongarch64/config-6.6
@@ -169,7 +169,6 @@ CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
-CONFIG_DCB=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
diff --git a/target/linux/x86/modules.mk b/target/linux/x86/modules.mk
index cdae01bce6..f43824571a 100644
--- a/target/linux/x86/modules.mk
+++ b/target/linux/x86/modules.mk
@@ -6,7 +6,9 @@ define KernelPackage/amd-xgbe
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=AMD Ethernet on SoC support
DEPENDS:=@PCI_SUPPORT @TARGET_x86_64 +kmod-lib-crc32c +kmod-ptp +kmod-libphy +kmod-mdio-devres
- KCONFIG:=CONFIG_AMD_XGBE
+ KCONFIG:= \
+ CONFIG_AMD_XGBE \
+ CONFIG_AMD_XGBE_DCB=y
FILES:=$(LINUX_DIR)/drivers/net/ethernet/amd/xgbe/amd-xgbe.ko
AUTOLOAD:=$(call AutoLoad,35,amd-xgbe)
endef
More information about the lede-commits
mailing list