博通 RoboSwitch 以太网交换机驱动程序

博通 RoboSwitch 以太网交换机系列广泛应用于各种 xDSL 路由器、有线调制解调器和其他多媒体设备。

实际的实现支持 BCM5325E、BCM5365、BCM539x、BCM53115 和 BCM53125 以及 BCM63XX 等设备。

实现细节

该驱动程序位于 drivers/net/dsa/b53/ 中,并作为 DSA 驱动程序实现;有关子系统及其提供的详细信息,请参阅 Documentation/networking/dsa/dsa.rst

如果可能,交换机配置为启用博通特定的 4 字节交换机标记,该标记由交换机为每个转发到 CPU 接口的数据包插入,反之,CPU 网络接口应为进入 CPU 端口的数据包插入类似的标记。标记格式在 net/dsa/tag_brcm.c 中描述。

设备的配置取决于是否支持标记。

接口名称和示例网络配置根据配置展示中描述的配置使用。

支持标记的配置

希望使用基于标记的配置。它不是 b53 DSA 驱动程序特有的,并且像所有支持标记的 DSA 驱动程序一样工作。

请参阅支持标记的配置

不支持标记的配置

较旧的型号(5325、5365)支持不同的标记格式,但尚未支持。539x 和 531x5 需要托管模式和一些特殊处理,这也尚未支持。在这些情况下,标记支持被禁用,并且交换机需要不同的配置。

配置与不支持标记的配置略有不同。

b53 在所有 VLAN 中标记 CPU 端口,因为否则任何 PVID 未标记的 VLAN 编程基本上都会更改 CPU 端口的默认 PVID,并使其未标记,这是不希望的。

不支持标记的配置中描述的配置不同,默认 VLAN 1 必须从单端口和网关配置中的用户界面配置中删除,而无需在桥接展示中添加额外的 VLAN 配置。

单端口

该配置只能通过 VLAN 标记和桥接设置来设置。默认情况下,数据包标记为 vid 1

# tag traffic on CPU port
ip link add link eth0 name eth0.1 type vlan id 1
ip link add link eth0 name eth0.2 type vlan id 2
ip link add link eth0 name eth0.3 type vlan id 3

# The conduit interface needs to be brought up before the user ports.
ip link set eth0 up
ip link set eth0.1 up
ip link set eth0.2 up
ip link set eth0.3 up

# bring up the user interfaces
ip link set wan up
ip link set lan1 up
ip link set lan2 up

# create bridge
ip link add name br0 type bridge

# activate VLAN filtering
ip link set dev br0 type bridge vlan_filtering 1

# add ports to bridges
ip link set dev wan master br0
ip link set dev lan1 master br0
ip link set dev lan2 master br0

# tag traffic on ports
bridge vlan add dev lan1 vid 2 pvid untagged
bridge vlan del dev lan1 vid 1
bridge vlan add dev lan2 vid 3 pvid untagged
bridge vlan del dev lan2 vid 1

# configure the VLANs
ip addr add 192.0.2.1/30 dev eth0.1
ip addr add 192.0.2.5/30 dev eth0.2
ip addr add 192.0.2.9/30 dev eth0.3

# bring up the bridge devices
ip link set br0 up

桥接

# tag traffic on CPU port
ip link add link eth0 name eth0.1 type vlan id 1

# The conduit interface needs to be brought up before the user ports.
ip link set eth0 up
ip link set eth0.1 up

# bring up the user interfaces
ip link set wan up
ip link set lan1 up
ip link set lan2 up

# create bridge
ip link add name br0 type bridge

# activate VLAN filtering
ip link set dev br0 type bridge vlan_filtering 1

# add ports to bridge
ip link set dev wan master br0
ip link set dev lan1 master br0
ip link set dev lan2 master br0
ip link set eth0.1 master br0

# configure the bridge
ip addr add 192.0.2.129/25 dev br0

# bring up the bridge
ip link set dev br0 up

网关

# tag traffic on CPU port
ip link add link eth0 name eth0.1 type vlan id 1
ip link add link eth0 name eth0.2 type vlan id 2

# The conduit interface needs to be brought up before the user ports.
ip link set eth0 up
ip link set eth0.1 up
ip link set eth0.2 up

# bring up the user interfaces
ip link set wan up
ip link set lan1 up
ip link set lan2 up

# create bridge
ip link add name br0 type bridge

# activate VLAN filtering
ip link set dev br0 type bridge vlan_filtering 1

# add ports to bridges
ip link set dev wan master br0
ip link set eth0.1 master br0
ip link set dev lan1 master br0
ip link set dev lan2 master br0

# tag traffic on ports
bridge vlan add dev wan vid 2 pvid untagged
bridge vlan del dev wan vid 1

# configure the VLANs
ip addr add 192.0.2.1/30 dev eth0.2
ip addr add 192.0.2.129/25 dev br0

# bring up the bridge devices
ip link set br0 up