[BPI-R2] Bridge Forwarding LLDP Frames

I am trying to use multiple BPI-R2 devices aggregated together in a long string (lan3 of one connected to wan of the next), and the linux software bridge between wan/lan3 seems to be incorrectly forwarding LLDP frames. I’ve also tried lan0/lan3 with the same effect.

I am changing mac addresses in software using the macchanger -e utility. I am not making the change in the kernel .dtb file, so they boot with the same mac addresses.

The following post online is a good outline explaining how LLDP frames are not supposed to be transmitted across 802.1D compliant software bridges, so that devices can find their direct/nearest neighbor:

In the article, they are trying to override this behavior–which makes sense for certain virtual environments. However I’m having the opposite problem, and want it to behave as specified in 802.1D.

I am using the frank-w 4.14.141-bpi-r2-main kernel.

Here is my netplan file:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0: { dhcp4: no }
    eth1: { dhcp4: no }
    wan:  { dhcp4: no }
    lan0: { dhcp4: no }
    lan1: { dhcp4: no }
    lan2: { dhcp4: no }
    lan3: { dhcp4: no }
  bridges:
    br0:
      interfaces: [ lan0, lan3 ]
      addresses: [ 192.168.2.103/24 ]
      gateway4: 192.168.2.1

If unfamiliar with netplan, here are other outputs:

ip link

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:02:02:e9:c2:34 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:03:03:8e:07:15 brd ff:ff:ff:ff:ff:ff
4: wan@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 00:03:03:88:dc:30 brd ff:ff:ff:ff:ff:ff
5: lan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:02:02:9b:64:fd brd ff:ff:ff:ff:ff:ff
6: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 00:02:02:76:5b:a2 brd ff:ff:ff:ff:ff:ff
7: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 00:02:02:5c:dd:59 brd ff:ff:ff:ff:ff:ff
8: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 00:02:02:8c:7d:df brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 8e:b9:7b:fd:dd:f9 brd ff:ff:ff:ff:ff:ff

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:02:02:e9:c2:34 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::202:2ff:fee9:c234/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:03:03:8e:07:15 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::203:3ff:fe8e:715/64 scope link
       valid_lft forever preferred_lft forever
4: wan@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN group default qlen 1000
    link/ether 00:03:03:88:dc:30 brd ff:ff:ff:ff:ff:ff
5: lan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether 00:02:02:9b:64:fd brd ff:ff:ff:ff:ff:ff
6: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default qlen 1000
    link/ether 00:02:02:76:5b:a2 brd ff:ff:ff:ff:ff:ff
7: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default qlen 1000
    link/ether 00:02:02:5c:dd:59 brd ff:ff:ff:ff:ff:ff
8: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN group default qlen 1000
    link/ether 00:02:02:8c:7d:df brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 8e:b9:7b:fd:dd:f9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.103/24 brd 192.168.2.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::8cb9:7bff:fefd:ddf9/64 scope link
       valid_lft forever preferred_lft forever

brctl show

bridge name	bridge id		STP enabled	interfaces
br0		8000.8eb97bfdddf9	no		lan0
				          			lan3
				                	wan

Hi i do not know lldp,but wikipedia gives some infos:

  • to Multicast-address "01:80:C2:00:00:0E“
  • Ethertype „88-CC“

So you should check if L2-multicast generally is forwarded and if ethertype is not blocked anyhow

I would try tcpdump’ing the incoming post to see if packets are received and then on the outgoing

Btw. A strange construct to bridge lan+wan…maybe this causes issues