From 71948c6c9b294cc6d5903844b65afd7bd528deab Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 18 Nov 2022 16:42:44 +0100 Subject: [PATCH] aarch64,amd64: enable IEC 62439-2 MRP bridge and userspace support Set up bridge first: root@infix:~# ip link set dev eth0 up root@infix:~# ip link set dev eth1 up root@infix:~# ip link set dev eth2 up root@infix:~# ip link set dev eth3 up root@infix:~# ip link add name br0 type bridge root@infix:~# ip link set dev eth0 master br0 root@infix:~# ip link set dev eth1 master br0 root@infix:~# ip link set dev eth2 master br0 root@infix:~# ip link set dev eth3 master br0 Start MRP server and add a configuration: root@infix:~# mrp_server & root@infix:~# mrp addmrp bridge br0 ring_nr 1 pport eth0 sport eth1 ring_role mrm root@infix:~# mrp addmrp bridge br0 ring_nr 2 pport eth2 sport eth3 ring_role mrm root@infix:~# mrp getmrp bridge: br0 ring_nr: 1 pport: eth0 sport: eth1 ring_role: MRM ring_state: CHK_RO bridge: br0 ring_nr: 2 pport: eth2 sport: eth3 ring_role: MRM ring_state: CHK_RC Once all rings are set up: root@infix:~# ip link set dev br0 up For more information, see: - https://github.com/microchip-ung/mrp - https://lwn.net/Articles/809089/ Signed-off-by: Joachim Wiberg --- board/aarch64/linux_defconfig | 2 ++ board/amd64/linux_defconfig | 5 +++++ configs/aarch64_defconfig | 3 ++- configs/amd64_defconfig | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/board/aarch64/linux_defconfig b/board/aarch64/linux_defconfig index d0eb393c..2a5e095e 100644 --- a/board/aarch64/linux_defconfig +++ b/board/aarch64/linux_defconfig @@ -104,6 +104,8 @@ CONFIG_IP_NF_MANGLE=m CONFIG_NF_LOG_IPV6=m CONFIG_BRIDGE=y CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_BRIDGE_MRP=y +CONFIG_BRIDGE_CFM=y CONFIG_NET_DSA=y CONFIG_VLAN_8021Q=y CONFIG_VLAN_8021Q_GVRP=y diff --git a/board/amd64/linux_defconfig b/board/amd64/linux_defconfig index 0198353d..a6cae040 100644 --- a/board/amd64/linux_defconfig +++ b/board/amd64/linux_defconfig @@ -10,6 +10,11 @@ CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_BRIDGE_MRP=y +CONFIG_BRIDGE_CFM=y +CONFIG_VLAN_8021Q=y # CONFIG_WIRELESS is not set CONFIG_PCI=y CONFIG_DEVTMPFS=y diff --git a/configs/aarch64_defconfig b/configs/aarch64_defconfig index caaf1bcd..a83f0037 100644 --- a/configs/aarch64_defconfig +++ b/configs/aarch64_defconfig @@ -14,8 +14,8 @@ BR2_INIT_FINIT=y BR2_SYSTEM_BIN_SH_BASH=y BR2_ENABLE_LOCALE_WHITELIST="C en_US en_CA" BR2_GENERATE_LOCALE="en_US en_CA" -BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_INFIX_PATH)/board/common/rootfs" BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_INFIX_PATH)/board/common/rootfs" BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_INFIX_PATH)/board/common/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_INFIX_PATH)/board/common/post-image.sh" BR2_LINUX_KERNEL=y @@ -28,6 +28,7 @@ BR2_LINUX_KERNEL_INTREE_DTS_NAME="marvell/cn9130-crb-A marvell/cn9130-crb-B micr BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_INFIX_PATH)/board/common/busybox_defconfig" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_MRP=y BR2_PACKAGE_BASH_COMPLETION=y BR2_PACKAGE_TMUX=y BR2_PACKAGE_SYSKLOGD=y diff --git a/configs/amd64_defconfig b/configs/amd64_defconfig index b63b4828..744aa826 100644 --- a/configs/amd64_defconfig +++ b/configs/amd64_defconfig @@ -29,6 +29,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_INFIX_PATH)/board/common/busybox_defc BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_MRP=y BR2_PACKAGE_BASH_COMPLETION=y BR2_PACKAGE_TMUX=y BR2_PACKAGE_SYSKLOGD=y