From: Hauke Mehrtens Date: Sun, 19 Jan 2025 18:49:38 +0000 (+0100) Subject: kernel: Add KERNEL_DCB (Data Center Bridging) X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=40f1db9cb11d98ef0b5061b8e210e6351935df8a;p=openwrt%2Fopenwrt.git 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 --- 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