A new dual 10G router based on Filogic 880 (Banana Pi BPi-R4)

The problem is, ISP ONT is using RJ45, I do not have any choice but to use their XG-PON, internally of course I prefer to use fiber or DAC.

1 Like

What problems did you encounter? Because I'm also from Germany and want to order in the next days.
Did you order through Aliexpress or another platform? The official stores don't ship to Germany, but I found two others that do, for a slight markup of course.

I bought it from the "chipboard home" store and with a lot of trying out coupons and coins and stuff, I got it for almost the same price as the one from the official store.
And by the way, they sell hardware rev. 1.1, so that's nothing to worry about. :slight_smile:

1 Like

Has anyone besides me encoutered this error?:

br-wan: received packet on wan with own address as source address

Started happening today out of nowhere :frowning: I have no loops in my wiring nor do I have duplicate IPs/MACs

I thought maybe it has something to do with the 1gig ports all having the same mac?

Which image are you using? I compiled one yesterday and found the network lan and wan mapping was incorrect.

In the installed shipped NAND image, it does have the correct assignment, but the image linked here is different. In the shipped image, there are two WAN ports, one 1G and one 10G, I would confirm what's configured in /etc/config/network and comparing to ip a.

I built my own with @daniel s repo

/etc/config/network:


config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdf2:6ef0:82c2::/64'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'eth1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '64'
        option delegate '0'

config device
        option name 'br-wan'
        option type 'bridge'
        list ports 'wan'
        list ports 'eth2'

config interface 'wan'
        option device 'br-wan'
        option proto 'static'
        option ipaddr '192.168.178.51'
        option netmask '255.255.255.0'
        option gateway '192.168.178.1'
        list dns '1.1.1.1'
        list dns '1.0.0.1'
        list dns '192.168.178.1'

config interface 'wan6'
        option device 'br-wan'
        option proto 'dhcpv6'

ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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 1504 qdisc mq state UP qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::cc4f:85ff:fed4:4a38/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN qlen 1000
    link/ether 36:6c:4e:52:86:36 brd ff:ff:ff:ff:ff:ff
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-wan state DOWN qlen 1000
    link/ether da:b9:49:98:e4:0d brd ff:ff:ff:ff:ff:ff
5: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-wan state UP qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
6: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
7: lan2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
8: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
9: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fdf2:6ef0:82c2::1/60 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::cc4f:85ff:fed4:4a38/64 scope link
       valid_lft forever preferred_lft forever
10: br-wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether ce:4f:85:d4:4a:38 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.51/24 brd 192.168.178.255 scope global br-wan
       valid_lft forever preferred_lft forever
    inet6 2003:ec:af1a:ce00:cc4f:85ff:fed4:4a38/64 scope global dynamic noprefixroute
       valid_lft 6626sec preferred_lft 1226sec
    inet6 fe80::cc4f:85ff:fed4:4a38/64 scope link
       valid_lft forever preferred_lft forever

From SINOVOIP network config.

There is a difference in the br-wan config, in terms of using lan1 and wan port

config device
        option name 'br-wan'
        option type 'bridge'
        list ports 'wan'
        list ports 'eth2'

vs

	option name 'br-wan'
	option type 'bridge'
	list ports 'lan0'
	list ports 'eth2'
type or paste code here

Config from SINOVOIP


config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'auto'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'
	list ports 'eth1'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config device
	option name 'br-wan'
	option type 'bridge'
	list ports 'lan0'
	list ports 'eth2'

config interface 'wan'
	option device 'br-wan'
	option proto 'dhcp'

config interface 'wan6'
	option device 'br-wan'
	option proto 'dhcpv6'

config interface 'WWAN'
	option proto 'dhcp'
	option device 'usb0'

config interface 'WWAN6'
	option proto 'dhcpv6'
	option device 'usb0'
	option reqaddress 'try'
	option reqprefix 'auto'

config interface 'WWAN_Q'
	option proto 'dhcp'
	option device 'wwan0_1'

config interface 'WWAN6_Q'
	option proto 'dhcpv6'
	option device 'wwan0_1'
	option reqaddress 'try'
	option reqprefix 'auto'

I already noticed that too, but that's just different naming. Its the same port

I just finished the build, and I still have no idea which one belongs to which.
There are 3 x eth + 3 x lan, I guess 3 eth are 2 SFPs & left most RJ45?

Weird, now when I moved my build platform to another PC, I failed to build, the very last step was to run dd to generate the firmware image and then bad file descriptor error occurred.

Maybe set up imagebuilder in vm?

Hey guys!

After some trial and error, I finally managed to make a working isolated build environment.

Source and instructions are available at github.com/pi0/bpi-r4-openwrt

Prebuild-images and snapshots are also hosted at https://dl.pi0.io/openwrt/bpi-r4

Let me know if you could use it and contributions are more than welcome!

1 Like

Why didn't you use the existing imagebuilder docker image? https://github.com/openwrt/docker

From there, my next suggestion would be to use GitHub actions to build the firmware. On the one hand the automation, on the other hand the transparency, that the images are built from the source in your repo or wherever.

I will probably get my own board within the month and can then join the "fun". :wink:

Thanks for sharing, @totkeks! I'll check the official Docker image to see if I can adopt it. Wasn't aware it existed, haha! Feel free to send a PR to test GitHub Actions. Not sure about the duration, as my home lab server takes a couple of minutes. The current build flow is almost fully scripted, which is why I created the repo initially for transparency.

Hope your board arrives soon to join the party! :crossed_fingers: I'll share some early benchmarks for SFP+ performances.

Some quick benchmarks:

iperf3 with WAN or Lan:

[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.10 GBytes  9.41 Gbits/sec    0   1.89 MBytes
[  5]   1.00-2.00   sec  1.10 GBytes  9.42 Gbits/sec    0   1.89 MBytes
[  5]   2.00-3.00   sec  1.10 GBytes  9.41 Gbits/sec    0   2.04 MBytes
[  5]   3.00-4.00   sec  1.10 GBytes  9.41 Gbits/sec    0   2.04 MBytes
[  5]   4.00-5.00   sec  1.10 GBytes  9.42 Gbits/sec    0   2.18 MBytes
[  5]   5.00-6.00   sec  1.10 GBytes  9.41 Gbits/sec    0   2.18 MBytes
[  5]   6.00-7.00   sec  1.10 GBytes  9.41 Gbits/sec    0   2.18 MBytes
[  5]   7.00-8.00   sec  1.10 GBytes  9.41 Gbits/sec    0   2.18 MBytes
[  5]   8.00-9.00   sec  1.10 GBytes  9.42 Gbits/sec    0   2.18 MBytes
[  5]   9.00-10.00  sec  1.10 GBytes  9.41 Gbits/sec    0   2.18 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.0 GBytes  9.41 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  11.0 GBytes  9.41 Gbits/sec                  receiver

Two hosts (LAN+WAN SFP+) in parallel: (It seems to be capped around ~12G!)

image


Speed test against ~stable full-duplex 4Gbps connection: (It seems there is some overhead)

      Server: dstny - Amsterdam (id: 33814)
         ISP: KPN
Idle Latency:     4.55 ms   (jitter: 1.43ms, low: 3.23ms, high: 5.17ms)
    Download:  3692.82 Mbps (data used: 4.7 GB)
                  6.13 ms   (jitter: 0.99ms, low: 2.94ms, high: 8.74ms)
      Upload:  1126.20 Mbps (data used: 1.8 GB)
                  3.43 ms   (jitter: 0.93ms, low: 2.42ms, high: 7.36ms)
 Packet Loss:     0.0%
2 Likes

I tried to build but when it comes to run DD command to dump firmware images I get "bad file descriptor" and it failed.

It might be because you either don’t have root permission or the SDCard is dead. Have you tried to normally format it and try writing a file if it remains?

I'm still compiling, it's dumping to my SSD (I'm compiling on the same SSD), not directly to SD card.

Finally managed to get rid of that problem, was accidentally checked "ramdisk" option and caused issue.

So if I understood correctly bpi-r4 does not allow full 10gbps WAN to LAN:cold_face:

I hope it's only a temporary problem (snapshot release?)