Category: OpenWRT

  • Banana Pi BPI-R4 with Official OpenWrt 25 Firmware – 10GbE and WiFi 7 MLO Performance Testing

    Banana Pi BPI-R4 with Official OpenWrt 25 Firmware – 10GbE and WiFi 7 MLO Performance Testing

    The Banana Pi BPI-R4 is one of the most interesting networking platforms currently supported by OpenWrt. Powered by the MediaTek MT7988A quad-core Cortex-A73 processor, dual 10GbE SFP+ ports, and optional WiFi 7 expansion modules, it offers impressive hardware specifications at a relatively affordable price.

    In this article, I installed the latest official OpenWrt 25 release on the BPI-R4 and evaluated its wired and wireless performance. The goal was to compare the experience with the stock firmware and identify any issues that users may encounter when deploying OpenWrt on this platform.

    Test Setup

    For this evaluation, I used the following hardware:

    Router

    • Banana Pi BPI-R4
    • BPI-R4-NIC-BE14 WiFi 7 module

    Client Device

    • Windows 11 PC
    • Intel BE200 WiFi 7 adapter
    • Mellanox ConnectX-3 10GbE network card

    Network Infrastructure

    • 10 Gigabit Ethernet Switch
    • Linux server running OpenSpeedTest and iperf3

    The router was flashed with the latest official OpenWrt 25 image using Rufus and booted directly from a microSD card.

    After the initial boot, I configured a root password, disabled automatic firmware checking, and assigned the WAN interface to the SFP-WAN port while keeping the SFP-LAN port connected to the LAN network.

    For all routing tests, Packet Steering was enabled with 128 steering flows and Software Offloading remained disabled.

    WAN-to-LAN Performance Testing

    One of the most important capabilities of the BPI-R4 is its dual 10GbE connectivity. Naturally, this was the first area I wanted to test.

    The test setup was straightforward:

    Linux Server → 10GbE Switch → SFP-WAN → BPI-R4 → SFP-LAN → PC

    CPU utilization was monitored using btop while throughput measurements were performed with iperf3.

    First Test: 4 Parallel Streams

    Running iperf3 with four parallel streams resulted in approximately 3.48 Gbps throughput.

    While this result is not terrible, what immediately caught my attention was CPU utilization. Almost all traffic processing was handled by Core 0, while the remaining three cores remained mostly idle.

    Considering Packet Steering was enabled, I expected the workload to be distributed more evenly across all CPU cores.

    Second Test: 16 Parallel Streams

    Increasing the number of streams to sixteen surprisingly reduced performance.

    Throughput dropped to approximately 2.74 Gbps, while Core 0 remained fully loaded.

    The remaining CPU cores showed only minimal activity, typically between 10% and 15%.

    Alternative LAN Configuration

    I also tested a simplified LAN setup by assigning the LAN network directly to the SFP-LAN interface instead of using the default bridge configuration.

    Unfortunately, the results remained largely unchanged, fluctuating between 2.5 and 2.75 Gbps.

    Comparison with Stock Firmware

    These numbers became even more interesting when compared with my previous testing using the factory firmware supplied by Banana Pi.

    Using the same hardware setup, the stock firmware achieved approximately 9.16 Gbps WAN-to-LAN throughput.

    This suggests that either OpenWrt 25 is currently missing some optimizations, or there may be an issue with packet steering, driver behavior, or hardware acceleration.

    At this stage, I do not have a definitive answer, but it is certainly an area worth further investigation.

    WiFi 7 Testing

    For wireless testing, I installed the BPI-R4-NIC-BE14 module and connected using an Intel BE200 WiFi 7 adapter running the latest available driver.

    The client PC was positioned approximately one meter away from the access point with direct line of sight.

    Initial Problem: WiFi Not Working

    After installing OpenWrt 25, the MT7966E chipset was detected correctly and all three radios appeared in LuCI.

    However, I quickly discovered that none of the configured SSIDs would start.

    I tested multiple configurations:

    • WiFi 7 (BE)
    • WiFi 6 (AX)
    • WiFi 5 (AC)
    • WPA2 and WPA3 security
    • Different channels and bandwidth settings

    Nothing worked.

    The maximum transmit power was limited to only 7 dBm, which immediately suggested something was wrong.

    Fortunately, this issue is already known within the OpenWrt community.

    After applying the recommended Device Tree Overlay workaround and rebooting the router, transmit power returned to normal levels and wireless functionality was restored.

    WiFi 7 Performance on 6 GHz

    160 MHz Channel Width

    The first test used:

    • 6 GHz band
    • Channel 37
    • 160 MHz bandwidth
    • WPA3-SAE security

    Windows reported a link speed of approximately 2882 Mbps.

    Running OpenSpeedTest produced excellent results:

    • Download: approximately 1782 Mbps
    • Upload: approximately 1849 Mbps

    Multiple test runs produced very similar results.

    Interestingly, iperf3 throughput was slightly lower, reaching around 1.6 Gbps with eight parallel streams.

    320 MHz Channel Width

    Next, I increased the bandwidth to 320 MHz.

    Windows immediately reported much higher link rates, reaching 5.1 Gbps receive and 3.6 Gbps transmit.

    Unfortunately, real-world performance told a different story.

    OpenSpeedTest results dropped dramatically:

    • Download: approximately 774 Mbps
    • Upload: approximately 897 Mbps

    iperf3 results were similarly disappointing.

    At least in my test environment, 320 MHz operation performed significantly worse than 160 MHz.

    WiFi 7 Performance on 5 GHz

    Moving to the 5 GHz band, I configured:

    • Channel 60
    • 160 MHz bandwidth
    • WiFi 7 mode

    The results were very impressive.

    OpenSpeedTest consistently delivered:

    • Download: approximately 1.6 Gbps
    • Upload: approximately 1.7 Gbps

    Compared to the 6 GHz results, the difference was only around 100 to 150 Mbps.

    I also attempted to use 320 MHz bandwidth on 5 GHz, but the SSID completely disappeared from client devices. This may be related to regulatory limitations or DFS restrictions.

    WiFi 7 Performance on 2.4 GHz

    Testing the 2.4 GHz radio in WiFi 7 mode produced more modest but still respectable results.

    Using a 40 MHz channel width, OpenSpeedTest achieved:

    • Download: approximately 205 Mbps
    • Upload: approximately 125 Mbps

    Considering how crowded the 2.4 GHz spectrum typically is, these results are perfectly acceptable.

    Testing Multi-Link Operation (MLO)

    One of the headline features of WiFi 7 is Multi-Link Operation (MLO), which allows multiple radios to work together under a single connection.

    OpenWrt 25 includes early support for this feature, so naturally I wanted to test it.

    First Attempt

    My initial configuration combined:

    • 5 GHz @ 160 MHz
    • 6 GHz @ 320 MHz

    The MLO SSID was visible and clients could connect.

    However, diagnostic information showed that only the 5 GHz radio was actually participating in the MLO group.

    Second Attempt

    After reducing the 6 GHz radio to 160 MHz, MLO started working correctly.

    Both radios appeared active and Windows reported simultaneous connectivity on both frequency bands.

    The reported link speed was approximately 2882 Mbps / 2882 Mbps.

    MLO Performance Results

    OpenSpeedTest produced:

    • Download: approximately 1.8 Gbps
    • Upload: approximately 2.0 Gbps

    iperf3 achieved:

    • Up to 1.87 Gbps in the forward direction
    • Around 1.5 Gbps in reverse mode

    These were the best wireless results recorded during all testing.

    MLO Stability Issues

    Although MLO was functional, I did encounter stability problems.

    After approximately 10 to 15 minutes of operation, the client would lose connectivity to the router.

    The WiFi connection remained associated, but traffic stopped flowing and the gateway could no longer be reached.

    The only reliable solution was disabling and re-enabling WiFi on the client device.

    Whether this issue originates from OpenWrt, the MediaTek driver, Intel’s BE200 driver, or my own configuration remains unclear.

    Further testing will be required.

    Final Thoughts

    Based on my initial testing, OpenWrt 25 on the Banana Pi BPI-R4 is already very usable, but there are still several rough edges.

    The WiFi 7 implementation is surprisingly capable, especially when operating at 160 MHz on both 5 GHz and 6 GHz bands. MLO support is also promising, although stability improvements are clearly needed.

    The biggest concern at the moment is wired routing performance. Achieving only around 2.5–3.5 Gbps when the stock firmware can exceed 9 Gbps suggests there is still work to be done somewhere in the software stack.

    Nevertheless, the BPI-R4 remains one of the most exciting OpenWrt platforms currently available, and I expect performance and stability to improve significantly as OpenWrt development continues.

    If you are running OpenWrt 25 on a BPI-R4 and have achieved better results, feel free to share your configuration and findings. I would be very interested to compare notes and continue investigating these issues.

  • Install OpenWrt 23 Snapshot Firmware on Banana Pi BPI R2 PRO

    Install OpenWrt 23 Snapshot Firmware on Banana Pi BPI R2 PRO

    This is a quick guide to install OpenWrt 23 snapshot firmware on your BPI R2 Pro (to the internal eMMC). This firmware had been pre-installed with LuCI and some packages. Here is the screenshot on Sep 2, 2023.

    LuCI homepage overview. Linux kernel is 6.1.50
    Network Interfaces overview. PPPoE connection is up and running
    Speedtest & CPU usage overview

    Currently, OpenWrt 21 firmware built by Banana Pi is out of date and there are some problems with DSA (i.e VLAN is not working). Thus, I will use OpenWrt builds from mj22226

    1. Download this bpi-r2-pro-sd-to-emmc-flash.img.gz and burn it to a 16GB microSD card, using Rufus or your preferred application.
    2. Insert the microSD to the BPI R2 PRO, press & hold the MASKROOM button while connecting the Power cable. The BPI R2 PRO should boot up OpenWrt
    3. Login to LuCI. Under System -> Custom Command, press Run button to to flash the firmware to the internal eMMC.
    4. If you receive error message such as “no space left on /dev/emmc…”, you can try to boot up OpenWrt on the SD card again (step 2). If it still failed, try to install OpenWrt firmware to the eMMC using the USB cable & RockChip DevTool
    5. Once OpenWrt was flashed to the eMMC, remove the power cable, remove the microSD and boot up the BPI R2 PRO.
    6. Download openwrt-rockchip-armv8-rockchip_bpi-r2-pro-squashfs-sysupgrade.img.gz (or a newer release). Go to System – Backup & Flash firmware to update the BPI R2 PRO with the firmware you have downloaded.

    Enjoy you BPI R2 PRO router!

  • Setup File Sharing (SMB) on OpenWrt with Samba4

    Setup File Sharing (SMB) on OpenWrt with Samba4

    Why I write this guide?

    Well, there are 2 guides for Samba4 and Samba3 on the OpenWrt Wiki. Each of the guide is missing a “small” piece of information which makes beginner confused.

    1.Storage

    More information on how to setup the storage on OpenWrt available here.

    • USB Disk (USB stick/ USB to SATA adapter)
    opkg update
    opkg install kmod-usb-storage
    opkg install kmod-usb-storage-uas
    opkg install usbutils
    lsusb -t
    • Native SATA/NVMe Disk

    Usually there is no need to install driver

    2. Check if device is detected

    ls -l /dev/sd* => if using USB stick or HDD/SSD with SATA to USB adapter
    ls -l /dev/nvm* => if using NVMe
    opkg install block-mount
    block info

    3. Create a partition on the disk

    For this video/tutorial, I use fdisk

    opkg install fdisk
    fdisk /dev/nvme0n1 (Replace by your NVMe SSD disk name)
    fdisk /dev/sda1 (Replace by your USB/SSD/HDD disk name)

    • d => Delete partition
    • n => New partition
    • w => Write change to disk

    4. Create a file system in the partition

    This guide is only for ext4 file system. If you wish to use a different file system, please see the document.

    opkg install e2fsprogs
    opkg install kmod-fs-ext4
    mkfs.ext4 /dev/sda1      => if you are using USB Stick/HDD/SSD
    mkfs.ext4 /dev/nvme0n1    => if you are using NVMe

    5. Auto mount the partition

    It is easier to mount the partition using LuCI. See my video for more information. If you wish to do it with CLI, here is the commands

    block detect | uci import fstab
    
    uci set fstab.@mount[-1].enabled='1'
    uci commit fstab
    
    uci set fstab.@global[0].check_fs='1'
    uci commit fstab

    6. Install Samba4

    opkg update && opkg install luci-app-samba4

    Afer that, configure it with the the Web-UI. The Samba4 service should be automatically restart. If it doesn’t work, you can use

    /etc/init.d/samba restart

    7. Configure Samba Users

    The username is stored in /etc/passwd file. To modify it, use VI or Nano

    vi /etc/passwd

    After that, insert this example line to end of the file. It will create a new username with the below information:

    vantc:*:1000:65534:vantc:/var:/bin/false

    Hint: Using the same username for Samba4 (OpenWrt) and Windows will cause some problems where you need to change some setting on Local Security Policy. If possible, please use a different username for Samba4 & Windows.

    • user in this example will be called ‘vantc’“ (this is the loginname you need to enter, when Windows pops up the authentication dialogue)
    • with the unique system ID ‘1000’
    • with the group id ‘65534’ (which is the group identifier for ‘nobody’= no special default group)
    • ‘/var’ just means the user will not need a special home folder on the system
    • ‘/bin/false’ means the user will not have a default shell program associated

    smbpasswd -a vantc => Set password
    service samba restart (Optional)

    8.Troubleshoot – No Write Access

    • Modifying the permissions and owner of the folder

    If you are using USB stick/ HDD/ SSD

    chmod -R 777 /mnt/sda1
    chown -R nobody /mnt/sda1

    If you are using NVMe

    chmod -R 777 /mnt/nvme0n1
    chown -R nobody /mnt/nvme0n1

    More info: https://openwrt.org/docs/guide-user/services/nas/cifs.server#cannot_write_to_a_samba_share

    9. Fine-Tune & others

    • Since netfilter tracks every connection, it may improve throughput to disable conntrack for Samba connections if you use NAT.
      https://openwrt.org/docs/guide-user/services/nas/cifs.server#throughput
    • Remote Access
      Doable, not recommended. You better setup Wireguard VPN to access the NAS locally.
    • Apple Discovery & Network Discovery

    10. Enjoy your OpenWrt NAS

    Have fun with your OpenWrt NAS.

    If you enjoy my content, feel free to give it a like, leave a comment, subscribe to the channel, give me a Super Thanks or support me on Patreon. I will be happy regardless of the action!

  • Install OpenWRT on the Aruba AP-175

    Install OpenWRT on the Aruba AP-175

    OpenWRT support for the AP-175 was officially available on March 26, 2023. The PR to Add OpenWRT support for Aruba AP-175 was created by Hurricos (Martin) on September 2022. Special thanks to Hurricos and all developers involved to make it happen.

    Specifications

    • Device: Aruba AP-175
    • SoC: Atheros AR7161 680 MHz MIPS
    • RAM: 128MB – 2x Mira P3S12D40ETP
    • Flash: 16MB SPI NOR. Chip is vary from MXIC MX25L12845EMI-10G to Spansion S25FL128P
    • WiFi: 2 x DNMA-H92 Atheros AR9220-AC1A 802.11abgn
    • ETH: IC+ IP1001 Gigabit + PoE PHY
    • LED: 2x int., plus 12 ext. on TCA6416 GPIO expander
    • Console: CP210X linking USB-A Port to CPU console @ 115200
    • RTC: DS1374C, with internal battery
    • Temp: LM75 temperature sensor

    Firmware

    Installation Procedure Brief

    Since stock u-Boot only allows signed kernel to boot (Aruba OS), A U-Boot replacement is required to install OpenWrt on this device.

    • Use the CH314A SPI-Flasher or Raspberry Pi 4 and a 16-pin Test Clip (SOP16) to dump the SPI NOR chip
    • Apply custom u-Boot for AP-175 on the SPI NOR dump
    • Write the modified image to the SPI NOR chip again
    • Boot up OpenWrt sysupgrade image via TFTP

    Install u-Boot

    Note that the stock bootloader on this device does not allow for unsigned kernels to boot, so replacing the bootloader is required for OpenWrt support on this device. The only way to do this is via directly writing to the SPI Flash. The custom U-Boot for the Aruba AP-175 can be found here. Besides, you can compile it from https://github.com/Hurricos/u-boot-ap105/tree/ap175.

    To flash the SPI NOR you will need a 16-pin Test Clip (SOP16). You can use CH314A SPI-Flasher or directly wire the Raspberry Pi SBC to the SPI NOR with the test clip.

    In this guide, I am using a Raspberry Pi 4 Model B, a “DIY 16-pin test clip” and flashrom application (on Raspberry Pi OS) to dump the SPI NOR.

    Here is the main steps:

    1. Create a full dump of the SPI Flash, and store it in a safe place
    2. Erase and Clear 0x0-0x3ffff on the SPI Flash
    3. Flash U-Boot to 0x0
    4. Proceed to the OpenWrt Install Procedure

    Detail guide for using Raspberry Pi SBC with flashrom:

    • Make sure that SPI interface is enabled on Raspberry Pi OS. You can do this in raspi-config
    • Make sure the AP-175 is power-off (disconnect PoE Adapter) before proceed

    1. Create a full dump of the SPI Flash, and store it in a safe place

    WIP

  • Emulex OneConnect OCe14102 Dual SFP+ Adapter OpenWRT Throughput (Routing & Bridging)

    Emulex OneConnect OCe14102 Dual SFP+ Adapter OpenWRT Throughput (Routing & Bridging)

    This is the throughput result of the Emulex OneConnect OCe14102 Dual SFP+ Ethernet Adapter on OpenWRT. The power consumption when running the test with the Zimaboard is around 15W.

    Host: Zimaboard 432 (Intel N3450 CPU)

    OS: OpenWRT 22.02 Stable Release

    Kernel Module: kmod-be2net

    Bridging Throughput (2 SFP+ in the same br-lan)

    iperf3 – Single stream

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71
    Connecting to host 172.16.9.71, port 5201
    [  4] local 172.16.9.73 port 57489 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   276 MBytes  2.31 Gbits/sec
    [  4]   1.00-2.00   sec   216 MBytes  1.81 Gbits/sec
    [  4]   2.00-3.00   sec   244 MBytes  2.05 Gbits/sec
    [  4]   3.00-4.00   sec   206 MBytes  1.73 Gbits/sec
    [  4]   4.00-5.00   sec   226 MBytes  1.90 Gbits/sec
    [  4]   5.00-6.00   sec   214 MBytes  1.80 Gbits/sec
    [  4]   6.00-7.00   sec   240 MBytes  2.01 Gbits/sec
    [  4]   7.00-8.00   sec   208 MBytes  1.74 Gbits/sec
    [  4]   8.00-9.01   sec   174 MBytes  1.45 Gbits/sec
    [  4]   9.01-10.00  sec   234 MBytes  1.98 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-10.00  sec  2.19 GBytes  1.88 Gbits/sec                  sender
    [  4]   0.00-10.00  sec  2.19 GBytes  1.88 Gbits/sec                  receiver
    
    iperf Done.

    iperf3 – 4 Streams

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -P4
    Connecting to host 172.16.9.71, port 5201
    [  4] local 172.16.9.73 port 57512 connected to 172.16.9.71 port 5201
    [  6] local 172.16.9.73 port 57513 connected to 172.16.9.71 port 5201
    [  8] local 172.16.9.73 port 57514 connected to 172.16.9.71 port 5201
    [ 10] local 172.16.9.73 port 57515 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   146 MBytes  1.23 Gbits/sec
    [  6]   0.00-1.00   sec   152 MBytes  1.27 Gbits/sec
    [  8]   0.00-1.00   sec   145 MBytes  1.22 Gbits/sec
    [ 10]   0.00-1.00   sec   164 MBytes  1.38 Gbits/sec
    [SUM]   0.00-1.00   sec   607 MBytes  5.09 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   1.00-2.00   sec   146 MBytes  1.22 Gbits/sec
    [  6]   1.00-2.00   sec   171 MBytes  1.44 Gbits/sec
    [  8]   1.00-2.00   sec   177 MBytes  1.48 Gbits/sec
    [ 10]   1.00-2.00   sec   196 MBytes  1.65 Gbits/sec
    [SUM]   1.00-2.00   sec   690 MBytes  5.79 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   2.00-3.00   sec   214 MBytes  1.80 Gbits/sec
    [  6]   2.00-3.00   sec   149 MBytes  1.25 Gbits/sec
    [  8]   2.00-3.00   sec   192 MBytes  1.61 Gbits/sec
    [ 10]   2.00-3.00   sec   173 MBytes  1.45 Gbits/sec
    [SUM]   2.00-3.00   sec   728 MBytes  6.11 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   3.00-4.00   sec   176 MBytes  1.47 Gbits/sec
    [  6]   3.00-4.00   sec   160 MBytes  1.35 Gbits/sec
    [  8]   3.00-4.00   sec   194 MBytes  1.63 Gbits/sec
    [ 10]   3.00-4.00   sec   149 MBytes  1.25 Gbits/sec
    [SUM]   3.00-4.00   sec   679 MBytes  5.70 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   4.00-5.00   sec   192 MBytes  1.61 Gbits/sec
    [  6]   4.00-5.00   sec   162 MBytes  1.36 Gbits/sec
    [  8]   4.00-5.00   sec   184 MBytes  1.54 Gbits/sec
    [ 10]   4.00-5.00   sec   150 MBytes  1.26 Gbits/sec
    [SUM]   4.00-5.00   sec   688 MBytes  5.77 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   5.00-6.00   sec   151 MBytes  1.27 Gbits/sec
    [  6]   5.00-6.00   sec   179 MBytes  1.50 Gbits/sec
    [  8]   5.00-6.00   sec   152 MBytes  1.28 Gbits/sec
    [ 10]   5.00-6.00   sec   177 MBytes  1.49 Gbits/sec
    [SUM]   5.00-6.00   sec   660 MBytes  5.54 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   6.00-7.00   sec   187 MBytes  1.57 Gbits/sec
    [  6]   6.00-7.00   sec   188 MBytes  1.57 Gbits/sec
    [  8]   6.00-7.00   sec   193 MBytes  1.62 Gbits/sec
    [ 10]   6.00-7.00   sec   192 MBytes  1.61 Gbits/sec
    [SUM]   6.00-7.00   sec   760 MBytes  6.37 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   7.00-8.00   sec   161 MBytes  1.35 Gbits/sec
    [  6]   7.00-8.00   sec   204 MBytes  1.71 Gbits/sec
    [  8]   7.00-8.00   sec   141 MBytes  1.18 Gbits/sec
    [ 10]   7.00-8.00   sec   162 MBytes  1.36 Gbits/sec
    [SUM]   7.00-8.00   sec   667 MBytes  5.60 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   8.00-9.00   sec   165 MBytes  1.39 Gbits/sec
    [  6]   8.00-9.00   sec   174 MBytes  1.46 Gbits/sec
    [  8]   8.00-9.00   sec   156 MBytes  1.31 Gbits/sec
    [ 10]   8.00-9.00   sec   175 MBytes  1.47 Gbits/sec
    [SUM]   8.00-9.00   sec   671 MBytes  5.62 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   9.00-10.00  sec   169 MBytes  1.42 Gbits/sec
    [  6]   9.00-10.00  sec   201 MBytes  1.69 Gbits/sec
    [  8]   9.00-10.00  sec   159 MBytes  1.34 Gbits/sec
    [ 10]   9.00-10.00  sec   178 MBytes  1.50 Gbits/sec
    [SUM]   9.00-10.00  sec   708 MBytes  5.95 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-10.00  sec  1.67 GBytes  1.43 Gbits/sec                  sender
    [  4]   0.00-10.00  sec  1.67 GBytes  1.43 Gbits/sec                  receiver
    [  6]   0.00-10.00  sec  1.70 GBytes  1.46 Gbits/sec                  sender
    [  6]   0.00-10.00  sec  1.70 GBytes  1.46 Gbits/sec                  receiver
    [  8]   0.00-10.00  sec  1.65 GBytes  1.42 Gbits/sec                  sender
    [  8]   0.00-10.00  sec  1.65 GBytes  1.42 Gbits/sec                  receiver
    [ 10]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  sender
    [ 10]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  receiver
    [SUM]   0.00-10.00  sec  6.70 GBytes  5.75 Gbits/sec                  sender
    [SUM]   0.00-10.00  sec  6.70 GBytes  5.75 Gbits/sec                  receiver
    
    iperf Done.
    

    iperf3 – Reversed – Single Stream

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -R
    Connecting to host 172.16.9.71, port 5201
    Reverse mode, remote host 172.16.9.71 is sending
    [  4] local 172.16.9.73 port 57527 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   286 MBytes  2.40 Gbits/sec
    [  4]   1.00-2.00   sec   293 MBytes  2.46 Gbits/sec
    [  4]   2.00-3.00   sec   330 MBytes  2.77 Gbits/sec
    [  4]   3.00-4.00   sec   336 MBytes  2.82 Gbits/sec
    [  4]   4.00-5.00   sec   324 MBytes  2.72 Gbits/sec
    [  4]   5.00-6.00   sec   322 MBytes  2.70 Gbits/sec
    [  4]   6.00-7.00   sec   330 MBytes  2.77 Gbits/sec
    [  4]   7.00-8.00   sec   342 MBytes  2.87 Gbits/sec
    [  4]   8.00-9.00   sec   335 MBytes  2.81 Gbits/sec
    [  4]   9.00-10.00  sec   328 MBytes  2.75 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  3.15 GBytes  2.71 Gbits/sec    0             sender
    [  4]   0.00-10.00  sec  3.15 GBytes  2.71 Gbits/sec                  receiver
    
    iperf Done.

    iperf3 – Reversed – 4 Streams

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -R -P4
    Connecting to host 172.16.9.71, port 5201
    Reverse mode, remote host 172.16.9.71 is sending
    [  4] local 172.16.9.73 port 57540 connected to 172.16.9.71 port 5201
    [  6] local 172.16.9.73 port 57541 connected to 172.16.9.71 port 5201
    [  8] local 172.16.9.73 port 57542 connected to 172.16.9.71 port 5201
    [ 10] local 172.16.9.73 port 57543 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   121 MBytes  1.01 Gbits/sec
    [  6]   0.00-1.00   sec   203 MBytes  1.70 Gbits/sec
    [  8]   0.00-1.00   sec   129 MBytes  1.08 Gbits/sec
    [ 10]   0.00-1.00   sec   111 MBytes   933 Mbits/sec
    [SUM]   0.00-1.00   sec   564 MBytes  4.73 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   1.00-2.00   sec   166 MBytes  1.39 Gbits/sec
    [  6]   1.00-2.00   sec   177 MBytes  1.48 Gbits/sec
    [  8]   1.00-2.00   sec   175 MBytes  1.47 Gbits/sec
    [ 10]   1.00-2.00   sec   154 MBytes  1.29 Gbits/sec
    [SUM]   1.00-2.00   sec   672 MBytes  5.64 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   2.00-3.00   sec   189 MBytes  1.59 Gbits/sec
    [  6]   2.00-3.00   sec   162 MBytes  1.36 Gbits/sec
    [  8]   2.00-3.00   sec   202 MBytes  1.69 Gbits/sec
    [ 10]   2.00-3.00   sec   175 MBytes  1.47 Gbits/sec
    [SUM]   2.00-3.00   sec   728 MBytes  6.11 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   3.00-4.00   sec   152 MBytes  1.27 Gbits/sec
    [  6]   3.00-4.00   sec   195 MBytes  1.64 Gbits/sec
    [  8]   3.00-4.00   sec   160 MBytes  1.35 Gbits/sec
    [ 10]   3.00-4.00   sec   145 MBytes  1.22 Gbits/sec
    [SUM]   3.00-4.00   sec   653 MBytes  5.48 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   4.00-5.00   sec   135 MBytes  1.13 Gbits/sec
    [  6]   4.00-5.00   sec   179 MBytes  1.50 Gbits/sec
    [  8]   4.00-5.00   sec   140 MBytes  1.18 Gbits/sec
    [ 10]   4.00-5.00   sec   126 MBytes  1.06 Gbits/sec
    [SUM]   4.00-5.00   sec   580 MBytes  4.86 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   5.00-6.00   sec   159 MBytes  1.34 Gbits/sec
    [  6]   5.00-6.00   sec   145 MBytes  1.22 Gbits/sec
    [  8]   5.00-6.00   sec   166 MBytes  1.40 Gbits/sec
    [ 10]   5.00-6.00   sec   154 MBytes  1.29 Gbits/sec
    [SUM]   5.00-6.00   sec   625 MBytes  5.24 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   6.00-7.00   sec   108 MBytes   905 Mbits/sec
    [  6]   6.00-7.00   sec   191 MBytes  1.60 Gbits/sec
    [  8]   6.00-7.00   sec   113 MBytes   948 Mbits/sec
    [ 10]   6.00-7.00   sec   102 MBytes   860 Mbits/sec
    [SUM]   6.00-7.00   sec   514 MBytes  4.31 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   7.00-8.00   sec   142 MBytes  1.19 Gbits/sec
    [  6]   7.00-8.00   sec   187 MBytes  1.57 Gbits/sec
    [  8]   7.00-8.00   sec   150 MBytes  1.26 Gbits/sec
    [ 10]   7.00-8.00   sec   130 MBytes  1.09 Gbits/sec
    [SUM]   7.00-8.00   sec   608 MBytes  5.10 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   8.00-9.00   sec   181 MBytes  1.52 Gbits/sec
    [  6]   8.00-9.00   sec   163 MBytes  1.37 Gbits/sec
    [  8]   8.00-9.00   sec   192 MBytes  1.61 Gbits/sec
    [ 10]   8.00-9.00   sec   169 MBytes  1.41 Gbits/sec
    [SUM]   8.00-9.00   sec   704 MBytes  5.91 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   9.00-10.00  sec   190 MBytes  1.59 Gbits/sec
    [  6]   9.00-10.00  sec   163 MBytes  1.36 Gbits/sec
    [  8]   9.00-10.00  sec   203 MBytes  1.70 Gbits/sec
    [ 10]   9.00-10.00  sec   172 MBytes  1.45 Gbits/sec
    [SUM]   9.00-10.00  sec   728 MBytes  6.11 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  1.51 GBytes  1.30 Gbits/sec    0             sender
    [  4]   0.00-10.00  sec  1.51 GBytes  1.29 Gbits/sec                  receiver
    [  6]   0.00-10.00  sec  1.72 GBytes  1.48 Gbits/sec    0             sender
    [  6]   0.00-10.00  sec  1.72 GBytes  1.48 Gbits/sec                  receiver
    [  8]   0.00-10.00  sec  1.59 GBytes  1.37 Gbits/sec    0             sender
    [  8]   0.00-10.00  sec  1.59 GBytes  1.37 Gbits/sec                  receiver
    [ 10]   0.00-10.00  sec  1.41 GBytes  1.21 Gbits/sec    0             sender
    [ 10]   0.00-10.00  sec  1.41 GBytes  1.21 Gbits/sec                  receiver
    [SUM]   0.00-10.00  sec  6.23 GBytes  5.35 Gbits/sec    0             sender
    [SUM]   0.00-10.00  sec  6.23 GBytes  5.35 Gbits/sec                  receiver
    
    iperf Done.

    Routing (WAN to LAN, Software Offloading Enabled)

    iperf3 – Single Stream

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71
    Connecting to host 172.16.9.71, port 5201
    [  4] local 192.168.1.167 port 58681 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   290 MBytes  2.43 Gbits/sec
    [  4]   1.00-2.00   sec   192 MBytes  1.61 Gbits/sec
    [  4]   2.00-3.00   sec   188 MBytes  1.57 Gbits/sec
    [  4]   3.00-4.00   sec   179 MBytes  1.50 Gbits/sec
    [  4]   4.00-5.00   sec   168 MBytes  1.41 Gbits/sec
    [  4]   5.00-6.00   sec   247 MBytes  2.07 Gbits/sec
    [  4]   6.00-7.00   sec   236 MBytes  1.98 Gbits/sec
    [  4]   7.00-8.00   sec   203 MBytes  1.70 Gbits/sec
    [  4]   8.00-9.00   sec   156 MBytes  1.31 Gbits/sec
    [  4]   9.00-10.00  sec   193 MBytes  1.62 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-10.00  sec  2.00 GBytes  1.72 Gbits/sec                  sender
    [  4]   0.00-10.00  sec  2.00 GBytes  1.72 Gbits/sec                  receiver
    
    iperf Done.
    

    iperf3 – 4 Streams

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -P4
    Connecting to host 172.16.9.71, port 5201
    [  4] local 192.168.1.167 port 58696 connected to 172.16.9.71 port 5201
    [  6] local 192.168.1.167 port 58697 connected to 172.16.9.71 port 5201
    [  8] local 192.168.1.167 port 58698 connected to 172.16.9.71 port 5201
    [ 10] local 192.168.1.167 port 58699 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   148 MBytes  1.25 Gbits/sec
    [  6]   0.00-1.00   sec   157 MBytes  1.32 Gbits/sec
    [  8]   0.00-1.00   sec   206 MBytes  1.73 Gbits/sec
    [ 10]   0.00-1.00   sec   196 MBytes  1.64 Gbits/sec
    [SUM]   0.00-1.00   sec   707 MBytes  5.93 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   1.00-2.00   sec   156 MBytes  1.31 Gbits/sec
    [  6]   1.00-2.00   sec   155 MBytes  1.30 Gbits/sec
    [  8]   1.00-2.00   sec   197 MBytes  1.65 Gbits/sec
    [ 10]   1.00-2.00   sec   192 MBytes  1.61 Gbits/sec
    [SUM]   1.00-2.00   sec   699 MBytes  5.86 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   2.00-3.00   sec   154 MBytes  1.29 Gbits/sec
    [  6]   2.00-3.00   sec   173 MBytes  1.45 Gbits/sec
    [  8]   2.00-3.00   sec   187 MBytes  1.57 Gbits/sec
    [ 10]   2.00-3.00   sec   221 MBytes  1.85 Gbits/sec
    [SUM]   2.00-3.00   sec   734 MBytes  6.16 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   3.00-4.00   sec   171 MBytes  1.43 Gbits/sec
    [  6]   3.00-4.00   sec   141 MBytes  1.18 Gbits/sec
    [  8]   3.00-4.00   sec   177 MBytes  1.48 Gbits/sec
    [ 10]   3.00-4.00   sec   157 MBytes  1.32 Gbits/sec
    [SUM]   3.00-4.00   sec   645 MBytes  5.41 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   4.00-5.00   sec   168 MBytes  1.41 Gbits/sec
    [  6]   4.00-5.00   sec   188 MBytes  1.58 Gbits/sec
    [  8]   4.00-5.00   sec   218 MBytes  1.82 Gbits/sec
    [ 10]   4.00-5.00   sec   154 MBytes  1.29 Gbits/sec
    [SUM]   4.00-5.00   sec   727 MBytes  6.10 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   5.00-6.00   sec  95.5 MBytes   800 Mbits/sec
    [  6]   5.00-6.00   sec  98.6 MBytes   827 Mbits/sec
    [  8]   5.00-6.00   sec   127 MBytes  1.07 Gbits/sec
    [ 10]   5.00-6.00   sec   115 MBytes   961 Mbits/sec
    [SUM]   5.00-6.00   sec   436 MBytes  3.65 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   6.00-7.00   sec   161 MBytes  1.35 Gbits/sec
    [  6]   6.00-7.00   sec   170 MBytes  1.43 Gbits/sec
    [  8]   6.00-7.00   sec   146 MBytes  1.23 Gbits/sec
    [ 10]   6.00-7.00   sec   165 MBytes  1.38 Gbits/sec
    [SUM]   6.00-7.00   sec   642 MBytes  5.39 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   7.00-8.00   sec   129 MBytes  1.09 Gbits/sec
    [  6]   7.00-8.00   sec   122 MBytes  1.02 Gbits/sec
    [  8]   7.00-8.00   sec   151 MBytes  1.27 Gbits/sec
    [ 10]   7.00-8.00   sec   151 MBytes  1.27 Gbits/sec
    [SUM]   7.00-8.00   sec   554 MBytes  4.65 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   8.00-9.00   sec   154 MBytes  1.29 Gbits/sec
    [  6]   8.00-9.00   sec   154 MBytes  1.29 Gbits/sec
    [  8]   8.00-9.00   sec   164 MBytes  1.37 Gbits/sec
    [ 10]   8.00-9.00   sec   148 MBytes  1.25 Gbits/sec
    [SUM]   8.00-9.00   sec   620 MBytes  5.20 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   9.00-10.00  sec   147 MBytes  1.23 Gbits/sec
    [  6]   9.00-10.00  sec   117 MBytes   985 Mbits/sec
    [  8]   9.00-10.00  sec   138 MBytes  1.16 Gbits/sec
    [ 10]   9.00-10.00  sec   179 MBytes  1.50 Gbits/sec
    [SUM]   9.00-10.00  sec   581 MBytes  4.87 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-10.00  sec  1.45 GBytes  1.24 Gbits/sec                  sender
    [  4]   0.00-10.00  sec  1.45 GBytes  1.24 Gbits/sec                  receiver
    [  6]   0.00-10.00  sec  1.44 GBytes  1.24 Gbits/sec                  sender
    [  6]   0.00-10.00  sec  1.44 GBytes  1.24 Gbits/sec                  receiver
    [  8]   0.00-10.00  sec  1.67 GBytes  1.43 Gbits/sec                  sender
    [  8]   0.00-10.00  sec  1.67 GBytes  1.43 Gbits/sec                  receiver
    [ 10]   0.00-10.00  sec  1.64 GBytes  1.41 Gbits/sec                  sender
    [ 10]   0.00-10.00  sec  1.64 GBytes  1.41 Gbits/sec                  receiver
    [SUM]   0.00-10.00  sec  6.20 GBytes  5.32 Gbits/sec                  sender
    [SUM]   0.00-10.00  sec  6.20 GBytes  5.32 Gbits/sec                  receiver
    
    iperf Done.
    

    iperf3 – Reversed

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -R
    Connecting to host 172.16.9.71, port 5201
    Reverse mode, remote host 172.16.9.71 is sending
    [  4] local 192.168.1.167 port 58903 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   346 MBytes  2.91 Gbits/sec
    [  4]   1.00-2.00   sec   372 MBytes  3.12 Gbits/sec
    [  4]   2.00-3.00   sec   374 MBytes  3.14 Gbits/sec
    [  4]   3.00-4.00   sec   373 MBytes  3.13 Gbits/sec
    [  4]   4.00-5.00   sec   367 MBytes  3.08 Gbits/sec
    [  4]   5.00-6.00   sec   372 MBytes  3.12 Gbits/sec
    [  4]   6.00-7.00   sec   330 MBytes  2.77 Gbits/sec
    [  4]   7.00-8.00   sec   349 MBytes  2.93 Gbits/sec
    [  4]   8.00-9.00   sec   361 MBytes  3.03 Gbits/sec
    [  4]   9.00-10.00  sec   373 MBytes  3.13 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  3.53 GBytes  3.04 Gbits/sec    0             sender
    [  4]   0.00-10.00  sec  3.53 GBytes  3.04 Gbits/sec                  receiver
    
    iperf Done.
    

    iperf3 – Reversed – 4 Streams

    C:\iperf-3.1.3-win64>iperf3.exe -c 172.16.9.71 -R -P4
    Connecting to host 172.16.9.71, port 5201
    Reverse mode, remote host 172.16.9.71 is sending
    [  4] local 192.168.1.167 port 58956 connected to 172.16.9.71 port 5201
    [  6] local 192.168.1.167 port 58957 connected to 172.16.9.71 port 5201
    [  8] local 192.168.1.167 port 58958 connected to 172.16.9.71 port 5201
    [ 10] local 192.168.1.167 port 58959 connected to 172.16.9.71 port 5201
    [ ID] Interval           Transfer     Bandwidth
    [  4]   0.00-1.00   sec   177 MBytes  1.49 Gbits/sec
    [  6]   0.00-1.00   sec   167 MBytes  1.40 Gbits/sec
    [  8]   0.00-1.00   sec   181 MBytes  1.52 Gbits/sec
    [ 10]   0.00-1.00   sec   169 MBytes  1.41 Gbits/sec
    [SUM]   0.00-1.00   sec   693 MBytes  5.81 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   1.00-2.00   sec   188 MBytes  1.57 Gbits/sec
    [  6]   1.00-2.00   sec   175 MBytes  1.46 Gbits/sec
    [  8]   1.00-2.00   sec   193 MBytes  1.62 Gbits/sec
    [ 10]   1.00-2.00   sec   181 MBytes  1.52 Gbits/sec
    [SUM]   1.00-2.00   sec   736 MBytes  6.17 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   2.00-3.00   sec   167 MBytes  1.40 Gbits/sec
    [  6]   2.00-3.00   sec   157 MBytes  1.32 Gbits/sec
    [  8]   2.00-3.00   sec   172 MBytes  1.44 Gbits/sec
    [ 10]   2.00-3.00   sec   160 MBytes  1.34 Gbits/sec
    [SUM]   2.00-3.00   sec   656 MBytes  5.51 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   3.00-4.00   sec   186 MBytes  1.56 Gbits/sec
    [  6]   3.00-4.00   sec   177 MBytes  1.48 Gbits/sec
    [  8]   3.00-4.00   sec   189 MBytes  1.59 Gbits/sec
    [ 10]   3.00-4.00   sec   177 MBytes  1.48 Gbits/sec
    [SUM]   3.00-4.00   sec   729 MBytes  6.11 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   4.00-5.00   sec   190 MBytes  1.59 Gbits/sec
    [  6]   4.00-5.00   sec   173 MBytes  1.45 Gbits/sec
    [  8]   4.00-5.00   sec   189 MBytes  1.59 Gbits/sec
    [ 10]   4.00-5.00   sec   178 MBytes  1.49 Gbits/sec
    [SUM]   4.00-5.00   sec   731 MBytes  6.13 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   5.00-6.00   sec   167 MBytes  1.40 Gbits/sec
    [  6]   5.00-6.00   sec   156 MBytes  1.31 Gbits/sec
    [  8]   5.00-6.00   sec   170 MBytes  1.42 Gbits/sec
    [ 10]   5.00-6.00   sec   158 MBytes  1.33 Gbits/sec
    [SUM]   5.00-6.00   sec   651 MBytes  5.46 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   6.00-7.00   sec   169 MBytes  1.42 Gbits/sec
    [  6]   6.00-7.00   sec   158 MBytes  1.33 Gbits/sec
    [  8]   6.00-7.00   sec   169 MBytes  1.42 Gbits/sec
    [ 10]   6.00-7.00   sec   160 MBytes  1.35 Gbits/sec
    [SUM]   6.00-7.00   sec   657 MBytes  5.51 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   7.00-8.00   sec   181 MBytes  1.52 Gbits/sec
    [  6]   7.00-8.00   sec   171 MBytes  1.43 Gbits/sec
    [  8]   7.00-8.00   sec   185 MBytes  1.56 Gbits/sec
    [ 10]   7.00-8.00   sec   175 MBytes  1.47 Gbits/sec
    [SUM]   7.00-8.00   sec   713 MBytes  5.98 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   8.00-9.00   sec   165 MBytes  1.39 Gbits/sec
    [  6]   8.00-9.00   sec   154 MBytes  1.29 Gbits/sec
    [  8]   8.00-9.00   sec   163 MBytes  1.37 Gbits/sec
    [ 10]   8.00-9.00   sec   153 MBytes  1.29 Gbits/sec
    [SUM]   8.00-9.00   sec   635 MBytes  5.33 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [  4]   9.00-10.00  sec   148 MBytes  1.25 Gbits/sec
    [  6]   9.00-10.00  sec   140 MBytes  1.17 Gbits/sec
    [  8]   9.00-10.00  sec   150 MBytes  1.25 Gbits/sec
    [ 10]   9.00-10.00  sec   141 MBytes  1.18 Gbits/sec
    [SUM]   9.00-10.00  sec   579 MBytes  4.85 Gbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  1.70 GBytes  1.46 Gbits/sec    0             sender
    [  4]   0.00-10.00  sec  1.70 GBytes  1.46 Gbits/sec                  receiver
    [  6]   0.00-10.00  sec  1.59 GBytes  1.37 Gbits/sec    0             sender
    [  6]   0.00-10.00  sec  1.59 GBytes  1.37 Gbits/sec                  receiver
    [  8]   0.00-10.00  sec  1.72 GBytes  1.48 Gbits/sec    1             sender
    [  8]   0.00-10.00  sec  1.72 GBytes  1.48 Gbits/sec                  receiver
    [ 10]   0.00-10.00  sec  1.61 GBytes  1.39 Gbits/sec    1             sender
    [ 10]   0.00-10.00  sec  1.61 GBytes  1.39 Gbits/sec                  receiver
    [SUM]   0.00-10.00  sec  6.63 GBytes  5.69 Gbits/sec    2             sender
    [SUM]   0.00-10.00  sec  6.62 GBytes  5.69 Gbits/sec                  receiver
    
    iperf Done.
    
    C:\iperf-3.1.3-win64>
    
    
  • NOKIA GPON SFP ONT G-010S-A

    NOKIA GPON SFP ONT G-010S-A

    This page will reserved for the GPON SFP ONT from Nokia, the G-010S-A. The information is being updated.

    If you have something to add, please leave a comment. Thank you!

    root@NOKIA:/# cat /proc/cpuinfo

    system type             : Falcon rev A22
    machine                 : SFP - Lantiq Falcon SFP Stick
    processor               : 0
    cpu model               : MIPS 34Kc V5.6
    BogoMIPS                : 265.98
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 16
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0240, 0x0060, 0x0020]
    isa                     : mips1 mips2 mips32r1 mips32r2
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    kscratch registers      : 0
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    

    root@NOKIA:/etc# cat openwrt_release

    DISTRIB_ID="OpenWrt"
    DISTRIB_RELEASE="7.5.3"
    DISTRIB_REVISION="14.07_ltq"
    DISTRIB_CODENAME="sfp"
    DISTRIB_TARGET="lantiq/generic"
    DISTRIB_DESCRIPTION="OpenWrt SFP 7.5.3"
    DISTRIB_TAINTS="no-all busybox"
    

    root@NOKIA:/etc# uname -a

    Linux NOKIA 3.10.49 #1 Mon Mar 21 15:34:09 CST 2022 mips GNU/Linux
    

    root@NOKIA:/etc# cat device_info

    DEVICE_MANUFACTURER="OpenWrt"
    DEVICE_PRODUCT="Lantiq GPON Evaluation System (SFP)"
    DEVICE_REVISION="v0"
    

    dmesg (boot log)

    root@NOKIA:/sbin# dmesg
    [    0.000000] Linux version 3.10.49 (sean@Lantiq-DEV) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 14.07_ltq) ) #1 Mon Mar 21 15:34:09 CST 2022
    [    0.000000] SoC: Falcon rev A22
    [    0.000000] bootconsole [early0] enabled
    [    0.000000] CPU revision is: 00019556 (MIPS 34Kc)
    [    0.000000] MIPS: machine is SFP - Lantiq Falcon SFP Stick
    [    0.000000] e=memsize=64
    [    0.000000] e=initrd_start=0xA0000000
    [    0.000000] e=initrd_size=0x0
    [    0.000000] e=flash_start=0x00000000
    [    0.000000] e=flash_size=0x0
    [    0.000000] e=ethaddr=ac:9a:96:00:00:00
    [    0.000000] MEMSIZE = 67108864
    [    0.000000] Determined physical RAM map:
    [    0.000000]  memory: 04000000 @ 00000000 (usable)
    [    0.000000] User-defined physical RAM map:
    [    0.000000]  memory: 03f00000 @ 00000000 (usable)
    [    0.000000] Initrd not found or empty - disabling initrd
    [    0.000000] Zone ranges:
    [    0.000000]   Normal   [mem 0x00000000-0x03efffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x00000000-0x03efffff]
    [    0.000000] On node 0 totalpages: 16128
    [    0.000000] free_area_init_node: node 0, pgdat 803149f0, node_mem_map 81003ec0
    [    0.000000]   Normal zone: 126 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 16128 pages, LIFO batch:3
    [    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
    [    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16002
    [    0.000000] Kernel command line: rootfstype=squashfs,jffs2 ip=192.168.1.10:192.168.1.100:192.168.2.1::::off ethaddr=ac:9a:96:00:00:00 machtype=SFP vpe1_load_addr=0x83f00000 vpe1_mem=1M mem=63M mtdparts=sflash:256k(uboot)ro,512k(uboot_env),6144k(linux),6144k(image1),1024k(configfs),2112k(logfs),64k(ri),64k(sfp),64k(ribackup) quiet console=ttyLTQ0,115200 init=/etc/preinit
    [    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
    [    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.000000] Writing ErrCtl register=00004441
    [    0.000000] Readback ErrCtl register=00004441
    [    0.000000] Memory: 60204k/64512k available (2597k kernel code, 4308k reserved, 664k data, 184k init, 0k highmem)
    [    0.000000] NR_IRQS:328
    [    0.000000] Setting up vectored interrupts
    [    0.000000] CPU Clock: 400MHz
    [    0.032000] Calibrating delay loop... 265.98 BogoMIPS (lpj=531968)
    [    0.036000] pid_max: default: 32768 minimum: 301
    [    0.036000] Mount-cache hash table entries: 512
    [    0.040000] pinctrl core: initialized pinctrl subsystem
    [    0.040000] NET: Registered protocol family 16
    [    0.060000] pinctrl-falcon pinctrl.4: Init done
    [    0.080000] bio: create slab <bio-0> at 0
    [    0.080000] FALC(tm) ON GPIO Driver, (C) 2012 Lantiq Deutschland Gmbh
    [    0.088000] Switching to clocksource MIPS
    [    0.092000] NET: Registered protocol family 2
    [    0.092000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
    [    0.092000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
    [    0.092000] TCP: Hash tables configured (established 512 bind 512)
    [    0.092000] TCP: reno registered
    [    0.092000] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.092000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.092000] NET: Registered protocol family 1
    [    0.092000] RPC: Registered named UNIX socket transport module.
    [    0.092000] RPC: Registered udp transport module.
    [    0.092000] RPC: Registered tcp transport module.
    [    0.092000] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.096000] EASY98000 LED driver, Version 1.0.1 (c) Copyright 2013, Lantiq Deutschland GmbH
    [    0.096000] Wired TLB entries for Linux read_c0_wired() = 0
    [    0.096000] config3 0x2425 MT 1
    [    0.096000] MVPControl 0x2, STLB 0 VPC 1 EVP 0
    [    0.096000] mvpconf0 0xb8008403, PVPE 1 PTC 3 M 1
    [    0.100000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.100000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
    [    0.100000] msgmni has been set to 117
    [    0.100000] io scheduler noop registered
    [    0.100000] io scheduler deadline registered (default)
    [    0.104000] 1e100c00.serial: ttyLTQ0 at MMIO 0x1e100c00 (irq = 104) is a lantiq,asc
    [    0.104000] console [ttyLTQ0] enabled, bootconsole disabled
    [    0.108000] m25p80 spi0.0: found mx25l12805d, expected s25fl129p0
    [    0.108000] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
    [    0.108000] 9 cmdlinepart partitions found on MTD device sflash
    [    0.108000] Creating 9 MTD partitions on "sflash":
    [    0.108000] 0x000000000000-0x000000040000 : "uboot"
    [    0.112000] 0x000000040000-0x0000000c0000 : "uboot_env"
    [    0.116000] 0x0000000c0000-0x0000006c0000 : "linux"
    [    0.116000] 0x0000001e7f89-0x0000006c0000 : "rootfs"
    [    0.116000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
    [    0.120000] mtd: device 3 (rootfs) set to be root filesystem
    [    0.120000] mtd: partition "rootfs_data" created automatically, ofs=0x4c0000, len=0x200000
    [    0.120000] 0x0000004c0000-0x0000006c0000 : "rootfs_data"
    [    0.120000] 0x0000006c0000-0x000000cc0000 : "image1"
    [    0.124000] 0x000000cc0000-0x000000dc0000 : "configfs"
    [    0.128000] 0x000000dc0000-0x000000fd0000 : "logfs"
    [    0.128000] 0x000000fd0000-0x000000fe0000 : "ri"
    [    0.132000] 0x000000fe0000-0x000000ff0000 : "sfp"
    [    0.132000] 0x000000ff0000-0x000001000000 : "ribackup"
    [    0.136000] wdt 1f8803f0.watchdog: Init done
    [    0.140000] TCP: cubic registered
    [    0.140000] NET: Registered protocol family 17
    [    0.140000] 8021q: 802.1Q VLAN Support v1.8
    [   12.192000] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
    [   12.196000] Freeing unused kernel memory: 184K (80332000 - 80360000)
    [   15.080000] pps_core: LinuxPPS API ver. 1 registered
    [   15.080000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
    [   15.080000] PTP clock support registered
    [   18.988000] jffs2: notice: (293) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 22 of xref (0 dead, 1 orphan) found.
    [   21.580000] IFXOS, Version 1.6.6 (c) Copyright 2009, Lantiq Deutschland GmbH
    [   21.652000] NET: Registered protocol family 10
    [   21.684000] GPON SFP I2C Slave Driver, Version 2.2.1 (c) Copyright 2015, Lantiq Beteiligungs-GmbH & Co. KG
    [   21.688000] [sfp_i2c] vpe code <sfp_i2c_vpe.bin> with size <4060 bytes> loaded!
    [   21.688000] VPE loader: VPE1 running successfully
    [   21.772000] FALC(tm) ON Optic Driver, version 7.5.1.0 (c) Copyright 2015, Lantiq Beteiligungs-GmbH & Co. KG
    [   22.240000] FALC(tm) ON Base Driver, Version 7.5.1.0 (c) Copyright 2017, Intel Corporation - Testpatch GPONSW-3406 v H05
    [   22.276000] FALC(tm) ON Ethernet Driver, Version 7.5.1.0 (c) Copyright 2017, Intel Corporation - Testpatch GPONSW-3406 v H05
    [   22.296000] nf_conntrack version 0.5.0 (943 buckets, 3772 max)
    [   22.352000] xt_time: kernel timezone is -0000
    [   22.356000] ip_tables: (C) 2000-2006 Netfilter Core Team
    [   29.264000] i2c /dev entries driver
    [   29.296000] Custom GPIO-based I2C driver version 0.1.1
    [   29.308000] i2c-gpio i2c-gpio.0: using pins 37 (SDA) and 38 (SCL)
    [   39.476000] [onu] serial number: VNPT034BB2C1
    [   39.740000] [onu] password: A02134926
    [   40.940000] [onu] GPHY Firmware loaded into RAM (phy11g.bin)
    [   41.176000] [onu] PE[255] firmware loaded v9.90.6.1
    [   42.920000] libphy: Falcon MDIO: probed
    [   42.940000] IPv6: ADDRCONF(NETDEV_UP): host: link is not ready
    [   43.004000] IPv6: ADDRCONF(NETDEV_UP): lct0: link is not ready
    [   44.244000] IPv6: ADDRCONF(NETDEV_UP): lct0: link is not ready
    [   45.348000] IPv6: ADDRCONF(NETDEV_UP): dbc: link is not ready
    [   51.536000] IPv6: ADDRCONF(NETDEV_UP): host: link is not ready
    [   54.456000] [onu] PLOAM Rx - message lost
    [   54.456000] [onu] PLOAM loss detected, but not in O5
    [   54.580000] device exc entered promiscuous mode
    [   54.952000] IPv6: ADDRCONF(NETDEV_CHANGE): lct0: link becomes ready
    [   58.348000] IPv6: ADDRCONF(NETDEV_CHANGE): host: link becomes ready
    [   58.352000] IPv6: ADDRCONF(NETDEV_CHANGE): dbc: link becomes ready
    
  • Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    This is the Orange Pi R1 Plus/ R1 Plus LTS OpenWrt firmware with minimal packages. The default language is English. You can write the ext4-sysupgrade.img.gz to the microSD card with Rufus or balenaEtcher, the root file system will be automatically expanded during first boot, which allow you to use all the space of the microSD card.

    You can also build the firmware for the Orange Pi R1 Plus / R1 Plus LTS from my source code. It is a fork of the Orange Pi OpenWrt, with some adjustments on the defconfig file. Please use the openwrt-21.02 branch when building the firmware.

    Firmware Detail

    OpenWrt 21.02.2 r16495-bf0c965af0

    LuCI openwrt-21.02 branch git-22.046.85957-59c3392

    Kernel 5.4.179

    Orange Pi R1 Plus Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR4 (2x 512DDR4)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by Realtek RTL8111F
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    Orange Pi R1 Plus LTS Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR3 (Not Shared With GPU)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by MotorComm YT8531C
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    R1 Plus LTS Overview and OpenWRT Installation

    Screenshot

    Status page

    Network Interfaces page
    Software page – I am using a 2GB microSD card

    List of packages with opkg list-installed

    base-files - 1444-r16495-bf0c965af0
    bash - 5.1-2
    block-mount - 2021-01-04-c53b1882-1
    busybox - 1.33.2-2
    ca-bundle - 20210119-1
    cgi-io - 2021-09-08-98cef9dd-20
    dnsmasq - 2.85-3
    dropbear - 2020.81-2
    e2fsprogs - 1.45.6-2
    f2fs-tools - 1.14.0-1
    f2fsck - 1.14.0-1
    fdisk - 2.36.1-2
    firewall - 2021-03-23-61db17ed-1
    fstools - 2021-01-04-c53b1882-1
    fwtool - 2019-11-12-8f7fe925-1
    getrandom - 2020-10-25-9ef88681-2
    htop - 3.1.2-1
    ifstat - 1.1-3
    iftop - 2018-10-03-77901c8c-2
    ip6tables - 1.8.7-1
    ipset - 7.6-1
    iptables - 1.8.7-1
    iptables-mod-conntrack-extra - 1.8.7-1
    iptables-mod-ipopt - 1.8.7-1
    iptables-mod-tproxy - 1.8.7-1
    jshn - 2021-05-16-b14c4688-2
    jsonfilter - 2018-02-04-c7e938d6-1
    kernel - 5.4.179-1-0668302a4d3e5f16962d6a1f596f7c01
    kmod-asn1-decoder - 5.4.179-1
    kmod-gpio-button-hotplug - 5.4.179-3
    kmod-ip6tables - 5.4.179-1
    kmod-ipt-conntrack - 5.4.179-1
    kmod-ipt-conntrack-extra - 5.4.179-1
    kmod-ipt-core - 5.4.179-1
    kmod-ipt-ipopt - 5.4.179-1
    kmod-ipt-ipset - 5.4.179-1
    kmod-ipt-nat - 5.4.179-1
    kmod-ipt-nat6 - 5.4.179-1
    kmod-ipt-offload - 5.4.179-1
    kmod-ipt-raw - 5.4.179-1
    kmod-ipt-tproxy - 5.4.179-1
    kmod-lib-crc-ccitt - 5.4.179-1
    kmod-lib-textsearch - 5.4.179-1
    kmod-mii - 5.4.179-1
    kmod-nf-conntrack - 5.4.179-1
    kmod-nf-conntrack6 - 5.4.179-1
    kmod-nf-flow - 5.4.179-1
    kmod-nf-ipt - 5.4.179-1
    kmod-nf-ipt6 - 5.4.179-1
    kmod-nf-nat - 5.4.179-1
    kmod-nf-nat6 - 5.4.179-1
    kmod-nf-nathelper - 5.4.179-1
    kmod-nf-nathelper-extra - 5.4.179-1
    kmod-nf-reject - 5.4.179-1
    kmod-nf-reject6 - 5.4.179-1
    kmod-nfnetlink - 5.4.179-1
    kmod-nls-base - 5.4.179-1
    kmod-ppp - 5.4.179-1
    kmod-pppoe - 5.4.179-1
    kmod-pppox - 5.4.179-1
    kmod-slhc - 5.4.179-1
    kmod-usb-core - 5.4.179-1
    kmod-usb-net - 5.4.179-1
    kmod-usb-net-rtl8152 - 5.4.179-1
    kmod-usb-serial - 5.4.179-1
    kmod-usb-serial-option - 5.4.179-1
    kmod-usb-serial-wwan - 5.4.179-1
    libblkid1 - 2.36.1-2
    libblobmsg-json20210516 - 2021-05-16-b14c4688-2
    libc - 1.1.24-3
    libcomerr0 - 1.45.6-2
    libext2fs2 - 1.45.6-2
    libf2fs6 - 1.14.0-1
    libfdisk1 - 2.36.1-2
    libgcc1 - 8.4.0-3
    libip4tc2 - 1.8.7-1
    libip6tc2 - 1.8.7-1
    libipset13 - 7.6-1
    libiwinfo-data - 2021-04-30-c45f0b58-2.1
    libiwinfo-lua - 2021-04-30-c45f0b58-2.1
    libiwinfo20210430 - 2021-04-30-c45f0b58-2.1
    libjson-c5 - 0.15-2
    libjson-script20210516 - 2021-05-16-b14c4688-2
    liblua5.1.5 - 5.1.5-9
    liblucihttp-lua - 2021-06-11-3dc89af4-1
    liblucihttp0 - 2021-06-11-3dc89af4-1
    libmnl0 - 1.0.4-2
    libmount1 - 2.36.1-2
    libncurses6 - 6.2-3
    libnetsnmp - 5.8-2
    libnl-tiny1 - 2020-08-05-c291088f-2
    libpcap1 - 1.9.1-3.1
    libpci - 3.7.0-2
    libpthread - 1.1.24-3
    libreadline8 - 8.1-1
    librt - 1.1.24-3
    libsmartcols1 - 2.36.1-2
    libss2 - 1.45.6-2
    libubox20210516 - 2021-05-16-b14c4688-2
    libubus-lua - 2021-06-30-4fc532c8-2
    libubus20210630 - 2021-06-30-4fc532c8-2
    libuci20130104 - 2021-04-14-4b3db117-5
    libuclient20201210 - 2021-05-14-6a6011df-1
    libusb-1.0-0 - 1.0.24-3
    libustream-wolfssl20201210 - 2022-01-16-868fd881-1
    libuuid1 - 2.36.1-2
    libwolfssl5.1.1.99a5b54a - 5.1.1-stable-1
    libxtables12 - 1.8.7-1
    logd - 2020-10-25-9ef88681-2
    losetup - 2.36.1-2
    lua - 5.1.5-9
    luci - git-20.074.84698-ead5e81
    luci-app-firewall - git-22.046.85957-59c3392
    luci-app-opkg - git-21.312.69848-4745991
    luci-base - git-22.046.85957-59c3392
    luci-compat - git-22.046.85744-f08a0f6
    luci-lib-base - git-20.232.39649-1f6dc29
    luci-lib-ip - git-20.250.76529-62505bd
    luci-lib-ipkg - git-18.318.71164-4bbe325
    luci-lib-jsonc - git-19.317.29469-8da8f38
    luci-lib-nixio - git-20.234.06894-c4a4e43
    luci-mod-admin-full - git-19.253.48496-3f93650
    luci-mod-network - git-22.046.85061-dd54dce
    luci-mod-status - git-22.046.85784-0ac2542
    luci-mod-system - git-22.019.40321-7a37d02
    luci-proto-ipv6 - git-21.148.49484-14511e5
    luci-proto-ppp - git-21.163.64918-6c6559a
    luci-theme-bootstrap - git-22.047.35373-cc582eb
    mkf2fs - 1.14.0-1
    mount-utils - 2.36.1-2
    mtd - 26
    netifd - 2021-10-30-8f82742c-1
    odhcp6c - 2021-01-09-53f07e90-16
    odhcpd-ipv6only - 2021-07-18-bc9d317f-3
    openwrt-keyring - 2021-02-20-49283916-2
    opkg - 2021-06-13-1bf042dd-1
    partx-utils - 2.36.1-2
    ppp - 2.4.8.git-2020-10-03-3
    ppp-mod-pppoe - 2.4.8.git-2020-10-03-3
    procd - 2021-03-08-2cfc26f8-1
    resize2fs - 1.45.6-2
    rpcd - 2021-03-11-ccb75178-1
    rpcd-mod-file - 2021-03-11-ccb75178-1
    rpcd-mod-iwinfo - 2021-03-11-ccb75178-1
    rpcd-mod-luci - 20210614
    rpcd-mod-rrdns - 20170710
    terminfo - 6.2-3
    uboot-envtools - 2021.01-3
    ubox - 2020-10-25-9ef88681-2
    ubus - 2021-06-30-4fc532c8-2
    ubusd - 2021-06-30-4fc532c8-2
    uci - 2021-04-14-4b3db117-5
    uclient-fetch - 2021-05-14-6a6011df-1
    uhttpd - 2021-03-21-15346de8-2
    uhttpd-mod-ubus - 2021-03-21-15346de8-2
    urandom-seed - 3
    urngd - 2020-01-21-c7f7b6b6-1
    usign - 2020-05-23-f1f65026-1
    

    Build the firmware with Github Action

    You can also build the firmware with Github action. Here is the .config file

    # Devices
    CONFIG_TARGET_rockchip=y
    CONFIG_TARGET_rockchip_armv8=y
    CONFIG_TARGET_rockchip_armv8_DEVICE_xunlong_orangepi-r1-plus-lts=y
    CONFIG_TARGET_ROOTFS_PARTSIZE=512
    
    # iptables
    
    CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
    CONFIG_PACKAGE_iptables-mod-ipopt=y
    CONFIG_PACKAGE_iptables-mod-tproxy=y
    
    # Luci
    
    CONFIG_PACKAGE_luci=y
    CONFIG_PACKAGE_luci-base=y
    CONFIG_PACKAGE_liblucihttp=y
    CONFIG_PACKAGE_liblucihttp-lua=y
    CONFIG_PACKAGE_uhttpd=y
    CONFIG_PACKAGE_uhttpd-mod-ubus=y
    CONFIG_PACKAGE_luci-mod-admin-full=y
    CONFIG_PACKAGE_luci-mod-network=y
    CONFIG_PACKAGE_luci-mod-status=y
    CONFIG_PACKAGE_luci-mod-system=y
    CONFIG_PACKAGE_luci-app-firewall=y
    CONFIG_PACKAGE_luci-app-opkg=y
    CONFIG_PACKAGE_luci-theme-bootstrap=y
    CONFIG_PACKAGE_luci-proto-ipv6=y
    CONFIG_PACKAGE_luci-proto-ppp=y
    CONFIG_PACKAGE_luci-lib-base=y
    CONFIG_PACKAGE_luci-lib-ip=y
    CONFIG_PACKAGE_luci-lib-jsonc=y
    CONFIG_PACKAGE_luci-lib-nixio=y
    
    # Packages
    
    CONFIG_PACKAGE_ifstat=y
    CONFIG_PACKAGE_iftop=y
    CONFIG_PACKAGE_ipset=y
    CONFIG_PACKAGE_htop=y
    CONFIG_PACKAGE_libusb-1.0=y
    
    # Kmod
    
    CONFIG_PACKAGE_kmod-ipt-nat6=y
    CONFIG_PACKAGE_kmod-nf-nat6=y
    CONFIG_PACKAGE_kmod-usb-serial-option=y

    don’t forget to change the repo URL on the the build-openwrt.yml:

    #
    # Copyright (c) 2019-2020 P3TERX <https://p3terx.com>
    #
    # This is free software, licensed under the MIT License.
    # See /LICENSE for more information.
    #
    # https://github.com/P3TERX/Actions-OpenWrt
    # Description: Build OpenWrt using GitHub Actions
    #
    
    name: Build OpenWrt
    
    on:
      repository_dispatch:
      workflow_dispatch:
        inputs:
          ssh:
            description: 'SSH connection to Actions'
            required: false
            default: 'false'
    
    env:
      REPO_URL: https://github.com/vantechcorner/openwrt-orangepi
      REPO_BRANCH: openwrt-21.02
      FEEDS_CONF: feeds.conf.default
      CONFIG_FILE: .config
      DIY_P1_SH: diy-part1.sh
      DIY_P2_SH: diy-part2.sh
      UPLOAD_BIN_DIR: false
      UPLOAD_FIRMWARE: true
      UPLOAD_COWTRANSFER: false
      UPLOAD_WETRANSFER: false
      UPLOAD_RELEASE: false
      TZ: Asia/Shanghai
    
    jobs:
      build:
        runs-on: ubuntu-20.04

    Good luck!

  • NanoPi R5S OpenWRT Performance

    NanoPi R5S OpenWRT Performance

    Right now, the NanoPi R5S performance information is widely available in Chinese. Therefore, I decided to make this post, hope it will be useful if you are looking for this piece of information.

    If you have yet to watch the NanoPi R5S detailed overview in English, you can find it here.

    In the video, I am using the latest FriendlyWRT released on August 3, 2022. It is a fold of OpenWRT developed by Friendlyelec.

    Testing Network Diagram

    I setup a 2.5 Gigiabit network connection in order to test out the potential of the NanoPi R5S. The NanoPi R5S and the test server is connected to the FastRhino R68s LAN ports.

    NanoPi R5S FriendlyWRT Performance

    I run the WAN to LAN test a few times and the result is different from one to another. It looks like there are stability problem that FriendlyElec team need to fix.

    For Wireguard VPN and OpenVPN, the result is stable. The OpenVPN throughput is at 150Mbps and Wireguard VPN is around 610 Mbps.

    Data Rate Unit: MbpsOpenSpeedTest DownloadOpenSpeedTest Uploadiperf3
    WAN to LAN1168883607
    WAN to LAN (SW Offloading)18531338641
    OpenVPN160148150
    Wireguard VPN637610480

    Testing Video

    You can watch the full video to see how I upgrade the FriendlyWRT to the latest version as well as configuring the LAN1 port as a WAN port (2.5GbE).

    Feeel free to let me know what is the test you want me to do next with the NanoPi R5S!

  • Install OpenWRT on Xiaomi CR6608 Router

    Install OpenWRT on Xiaomi CR6608 Router

    Xiaomi CR6608 is a Wi-Fi6 AX1800 Router with 4 Gigabit Ethernet Ports. The router was manufacured for local Chinese ISP: CR6606 (China Unicom), CR6608 (China Mobile), CR6609 (China Telecom).

    OpenWRT support for this device was migrated into OpenWRT master on Feb 7, 2022. Special thanks to InfWang for his effort on the PR ramips: add support for Xiaomi Mi Router CR660x series

    Specifications:

    • SoC: MediaTek MT7621AT
    • RAM: 256MB DDR3 (ESMT M15T2G16128A)
    • Flash: 128MB NAND (ESMT F59L1G81MB)
    • Ethernet: 1000Base-T x4 (MT7530 SoC)
    • WLAN: 2×2 2.4GHz 574Mbps + 2×2 5GHz 1201Mbps (MT7905DAN + MT7975DN)
    • LEDs: System (Blue, Yellow), Internet (Blue, Yellow)
    • Buttons: Reset, WPS
    • UART: through-hole on PCB ((VCC 3.3v)(RX)(GND)(TX) 115200, 8n1)
    • Power: 12VDC, 1A

    The way to install OpenWRT on the Xiaomi CR6608 is simple and doesn’t required hardware modification. However, you will need a router running OpenWRT to proceed. It is a long video, but there are only 2 main steps:

    • Get SSH access to the router
    • Write OpenWRT firmware with mtd

    Get SSH access to Xiaomi CR6608

    First thing, connect the PC to the OpenWRT router. After that, create the xqsystem.lua file in /usr/lib/lua/luci/controller/admin/ with the below lines. Alternatively, you can create this file on your PC and upload it to the router with WinSCP.

    module("luci.controller.admin.xqsystem", package.seeall)
    
    function index()
          local page   = node("api")
          page.target  = firstchild()
          page.title   = ("")
          page.order   = 100
          page.index = true
          page   = node("api","xqsystem")
          page.target  = firstchild()
          page.title   = ("")
          page.order   = 100
          page.index = true
          entry({"api", "xqsystem", "token"}, call("getToken"), (""), 103, 0x08)
    end
    
    local LuciHttp = require("luci.http")
    
    function getToken()
          local result = {}
          result["code"] = 0
          result["token"] = "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
          LuciHttp.write_json(result)
    end

    To verify, you can browse

    http://{OpenWRT-Router-IP}/cgi-bin/luci/api/xqsystem/token

    It should give you a respond like this:

    {"code":0,"token":"; nvram set ssh_en=1; nvram commit; …"}

    Now, setup the wireless interface on the OpenWRT router. To make it simple, I setup the SSID on 2.4GHz radio, SSID openwrt and the password is 12345678

    After that, change the IP address of the LAN (br-lan) interface to 169.254.31.1 and turn off DHCP server for this interface. Please note that, if you are changing the IP address using LuCI, you will need to set a static IP adddress for the PC to 169.254.31.3 and vist the OpenWRT router at 169.254.31.1 to confirm the changes (else, the router will revert the IP to default after 1 – 2 minutes).

    Now, switch to the Xiaomi CR6608 Router

    Connect to it via WiFi or Ethernet cable. After login to the Web UI, pay attention to the STOK ID which can be found on the URL

     http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/web/home#router

    We are going to use the STOK for the next 2 query.

    http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/api/misystem/extendwifi_connect?ssid={WiFi-SSID}&password={WiFi-Password}
    
    Here is how it looks like and the response if the connection is succes.

    Now, run the second command to get SSH access

    http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx

    At this step, you should be able to connect SSH to the router. The username is root and the password is the default password at the back of the router. (默认登录密码)

    Since UART access is locked ootb, you should get UART access by modify uboot env. Otherwise, your router may become bricked.
    Excute these in stock firmware shell:

    nvram set boot_wait=on
    nvram set bootdelay=3
    nvram commit

    If you don’t want to install OpenWRT now, you can safely shutdown the router and the SSH connection will be avalable. However, if you can’t wait to install OpenWRT (I think this is the reason you are reading this post, please proceed)

    Install OpenWRT on Xiaomi CR6608 with mtd

    We are going to need the openwrt-ramips-mt7621-xiaomi_mi-router-cr660x-squashfs-firmware.bin for the installation. Click here to download the firmware for the Xiaomi CR660x series.

    If the Xiaomi CR6608 is having internet connection, you can use wget or curl command to download the firmware directly to the /tmp directory. Or, you can download it to the computer and upload it to your router with WinSCP.

    After that, run these commands

    nvram set flag_try_sys1_failed=0
    nvram set flag_try_sys2_failed=1
    nvram commit

    Finnaly, executive this command to flash OpenWRT on the Xiaomi CR6608

    mtd -r write /tmp/openwrt-squashfs-firmware.bin firmware

    After this, the router will reboot itself and you can establish the SSH connection to it at 192.168.1.1. to install LuCI. Connect the WAN port of the CR6608 to the upstream router for internet connection and the below commands to install LuCI

    opkg update
    opkg install luci

    Now, you should be able to reach LuCI at 192.168.1.1

    Good luck and enjoy your CR660x OpenWRT router!

  • Install OpenWRT on Mikrotik RB2011

    Install OpenWRT on Mikrotik RB2011

    The RB2011 is a low cost multi port device series. It has 10 Ethernet ports: 5 Gigabit Ethernet and 5 Fast Ethernet ports. With the 600MHz AR9344 CPU, the router is only suitable for home or very-small-office where you are connecting to the Internet with PPPoE or DHCP.

    In this video, I will show you how to install OpenWRT 19.07 on this Mikrotik Routerboard 2011. After that, we will have some tests to check out the device performance: WAN to LAN iperf test, OpenSpeedTest and PPPoE with VLAN speedtest. Of course software & hardware offloading tests will be conducted as well.

    Due to the switch configuration bug in LuCI (for the RB2011), you won’t be able to configure VLAN with LuCI. But no worry, I will also show you how to configure VLAN tagging using the Command Line.

    Resources that you will need:

    Mikrotik RB20211 Firmware Download & Guide

    Common Procedures for MikroTik RouterBoard

    TinyPXE Application

    Good luck!