Blog

  • 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.

  • Orange Pi Plus 2E – Install Armbian 26.2.0 (Debian Trixie) in late 2025 / early 2026

    Orange Pi Plus 2E – Install Armbian 26.2.0 (Debian Trixie) in late 2025 / early 2026

    Brief history of the Orange Pi Plus 2E

    Orange Pi Plus 2E was released by Shenzhen Xunlong 2016. There is no solid information of the launch day, but it is around April. The SBC is powered by Allwinner H3 chip (1.3 GHz, 4 cores) with 2GB DDR3 RAM and 16GB eMMC.

    I personally don’t like the Allwinner chip due to poor performance. Suprisingly, this is my first-ever purchased SBC since it is very cheap.

    Also, thanks to the poor stock firmware, I get to know Armbian and setup the Orange Pi Plus 2E as a home server with OpenVPN, Wireguard VPN, Pi-Hole and DDNS. It worked well for 2 and a half year (2019 – 2021), until I shut it down for new device upgrade.

    Today, I take out the board for some tests before giving away. Unfortunately, the boot process interrupted halfway, so I decided to give it a fresh OS installation.

    Install Armbian 26.2.0 (Debian Trixie)

    The installation procedure for Allwinner chip is simple (for those who knows):

    1. Boot up Armbian from the microSD card
    2. Go to the OS and run the installation script to copy the OS to the internal eMMC
    Step1: Download Debian 13 (Trixie) Minimal/IOT images with Armbian Linux v6.6

    Once you downloaded the image, burn it to the microSD using Rufus.

    Now, insert the microSD card to the Orange Pi Plus 2E, press and hold the SW2 button (sdcard boot) and connect the power supply. Armbian should be up and running from the microSD in few minutes.

    Follow the console message to create the root password, and create a normal account/username. Once it is done, you can playaround with the OS. Some useful command:

    armbian-config

    armbian-upgrade

    Step 2. Install Armbian to the internal eMMC

    With root access, run the below command

    armbian-install

    Select 2. Boot from eMMC2 – System on eMMC and follow the guide to complete the installation

    During this process, the eMMC will be formated. In my case, I choose ext4 for filesystem. It will take around 5 minutes to complete.

    Once you see this message, just press Enter, disconnect the power supply, remove the microSD card and power the SBC back on. You are ready to go!

    Some Tests with the Orange Pi Plus 2E on Dec 2025

    OS and Linux kernel information

    root@orangepiplus2e:~# cat /etc/os-release
    PRETTY_NAME="Armbian_community 26.2.0-trunk.44 trixie"
    NAME="Debian GNU/Linux"
    VERSION_ID="13"
    VERSION="13 (trixie)"
    VERSION_CODENAME=trixie
    DEBIAN_VERSION_FULL=13.2
    ID=debian
    HOME_URL="https://www.armbian.com"
    SUPPORT_URL="https://forum.armbian.com"
    BUG_REPORT_URL="https://www.armbian.com/bugs"
    ARMBIAN_PRETTY_NAME="Armbian_community 26.2.0-trunk.44 trixie"
    root@orangepiplus2e:~# uname -a
    Linux orangepiplus2e 6.6.75-legacy-sunxi #1 SMP Sat Feb  1 17:37:57 UTC 2025 armv7l GNU/Linux

    eMMC read sequential speed: 80.99 MB/s

    root@orangepiplus2e:~# sudo hdparm -Tt /dev/mmcblk2
    /dev/mmcblk2:
     Timing cached reads:   1168 MB in  2.00 seconds = 583.62 MB/sec
     Timing buffered disk reads: 244 MB in  3.01 seconds =  80.99 MB/sec
    root@orangepiplus2e:~#

    eMMC sequential write speed: 151 MB/s

    root@orangepiplus2e:~# dd if=/dev/zero of=/tmp/testfile.img bs=1G count=1 oflag=dsync
    dd: error writing '/tmp/testfile.img': No space left on device
    1+0 records in
    0+0 records out
    1052647424 bytes (1.1 GB, 1004 MiB) copied, 6.95331 s, 151 MB/s
    root@orangepiplus2e:~#

    ipef3 throughput

    • Normal, 4 streams (Upload): 849 Mbps
    • Reversed, 4 streams (Download): 914 Mbps

    That is all. Thanks for reading and long-live the Orange Pi Plus 2E.

  • Upgrading My PC’s Wireless Card from Intel AX210 to Intel BE200 (WiFi 7)

    Upgrading My PC’s Wireless Card from Intel AX210 to Intel BE200 (WiFi 7)

    In preparation for upcoming WiFi 7 device reviews, I have upgraded my desktop’s wireless card from the Intel AX210 WiFi 6E to the Intel BE200 WiFi 7 module. For everyday usage, the differences are modest, but this upgrade is essential for accurate testing with next-generation wireless equipment.

    Wi-Fi 6E
    Intel AX210
    Wi-Fi 7
    Intel BE200
    TX/RX Streams2×22×2
    Bands2.4, 5, 6 GHz (160MHz)2.4GHz, 5GHz and 6GHz
    Max Speed2.4 Gbps5.8 Gbps (320MHz,4096QAM)
    Real Life Speed (tested by me)2.4Gbps
    (GL-MT6000)
    2.9Gbps
    (BPI R4)
    StabilityGoodNot really

    Installation Overview

    My system is powered by the MSI MAG B460M MORTAR motherboard, which does not include an M.2 Key-E slot for wireless modules. To accommodate the BE200, I used a PCIe-to-M.2 adapter.

    The adapter is very popular on marketplaces including Amazon, eBay, AliExpress, etc.

    The installation process is straightforward:

    • Remove the adapter from the PC (make sure you disconnect the AC power before doing that)
    • Remove the Intel AX210 from the adapter.
    • Install the new BE200 module and tighten the mounting screw.
    • Carefully reconnect the antenna cables.
    • Insert the PCIe adapter into the PCIe x1 slot and secure it.
    • Connect the Bluetooth power header included on the adapter.

    With the hardware completed, the PC was ready for testing.

    Driver and System Setup

    The Intel BE200 has limited functionality on Windows 10. To ensure proper operation, I upgraded the system to Windows 11 and installed Intel’s latest wireless driver (version 23.170.0.1, released October 28, 2025).
    A quick check using netsh wlan show drivers confirmed support for 2.4GHz, 5GHz and 6GHz bands.

    Performance Testing on Windows 11

    Connected to a WiFi 7 SSID on 5GHz, the BE200 reported a link speed of up to 2882 Mbps. However, real-world throughput was lower than expected:

    • Speedtest: 595 Mbps Download / 929 Mbps Upload
    • iperf3: ~ 1Gbps

    Testing with a WiFi 6 SSID produced similar results. On the AX210, I typically achieved around 1.2 Gbps Download and 900 Mbps Upload (with the OpenWrt One WiFi 6 router), but the BE200 underperformed with only 660 Mbps Download and 883 Mbps Upload.

    Performance on Ubuntu 24

    On Ubuntu 24, the BE200 worked immediately thanks to the pre-installed driver.
    Connected to a 5GHz WiFi 7 SSID (MT7996):

    • Link Speed: 2161 Mbps (this number is not stable, sometime it is higher, sometime lower)
    • Security: WPA3
    • Signal Strength: Excellent
    • iperf3: ~1.15 Gbps upload (normal direction, 4 streams) and ~1.2 Gbps download (reversed, 4 streams)

    6GHz Capability

    Although the BE200 technically supports 6GHz, I was unable to connect to any WiFi 7 SSID operating in the 6GHz band. Interestingly, the Windows 11 did report the colocated AP on 6GHz (when I am connected to 5GHz WiFi 7 SSID of the Banana Pi R4 (MT7996).

    Conclusion

    This upgrade marks an important step toward detailed testing of WiFi 7 hardware on the channel. While the Intel BE200 shows promising link rates, actual performance still requires further investigation.

    In the next article and video, I will review the Banana Pi R4 with the MT7996 WiFi 7 module and explore its capabilities.

    Thank you for reading.

  • 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

  • All about the TP-Link XZ000-G3 GPON ONT

    All about the TP-Link XZ000-G3 GPON ONT

    Recently, I’ve installed a Gigabit fiber internet plan and my ISP provided me the TP-Link XZ000-G3 which was configured in bridge mode, so that I can use my own router to establish the PPPoE connection.

    Since I already have the Nokia G-010S-A GPON SFP and the 2.5G Media Converter to use with the NanoPi R6S, this XZ000-G3 will be a fun stuff to play with. I decided to tear it down, solder the UART headers and check out what can I do with it.

    Closer look at the PCB

    UART Serial

    You can use a USB to Serial adapter (USB to TTL) and connect it to RX, RX and GND. For the power PWR, I leave it blank.

    Now, open a Serial connection with the relevant COM port, Baudrate 115200 and you will see the console up and running.

    The root login is:

    admin/1234

    CPU Info

    # cat /proc/cpuinfo
    system type             : EcoNet EN751221 SOC
    processor               : 0
    cpu model               : MIPS 34Kc V5.8
    BogoMIPS                : 465.30
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 64
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0ff8, 0x0ff8, 0x0ff8]
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    
    processor               : 1
    cpu model               : (null) V5.8
    BogoMIPS                : 349.79
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 64
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0ff8, 0x0ff8, 0x0ff8]
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    
    processor               : 2
    cpu model               : (null) V5.8
    BogoMIPS                : 348.97
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 64
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0ff8, 0x0ff8, 0x0ff8]
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    
    processor               : 3
    cpu model               : (null) V5.8
    BogoMIPS                : 348.97
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 64
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0ff8, 0x0ff8, 0x0ff8]
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    

    Memory Info

    # cat /proc/meminfo
    MemTotal:          60792 kB
    MemFree:           28980 kB
    Buffers:            1288 kB
    Cached:             6476 kB
    SwapCached:            0 kB
    Active:             4824 kB
    Inactive:           4996 kB
    .......

    Flash Layout

    # cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00400000 00010000 "flash"
    mtd1: 00020000 00010000 "tcboot"
    mtd2: 00010000 00010000 "romfile"
    mtd3: 00010000 00010000 "factoryinfo"
    mtd4: 00010000 00010000 "loid"
    mtd5: 00010000 00010000 "hwinfo"
    mtd6: 00010000 00010000 "config"
    mtd7: 00010000 00010000 "iot"
    mtd8: 00130000 00010000 "kernelA"
    mtd9: 00250000 00010000 "rootfsA"
    

    Firmware Dump (mtd0)

    The dump of mtd0, and other mtd can be found here

    Use this command to dump the flash
    cat /dev/mtd0 > /tmp/mtd0
    
    To grab it from device, you need a working TFPT server on the PC.
    tftp -p -l /tmp/mtd0-r mtd0 192.168.1.5 (replace the IP with your own IP)

    Boot log

    KGD IC
    Xtal:1
    DDR2 init.
    DRAMC init done.
    Calculate size.
    DRAM size=64MB
    Set new TRFC.
    ddr-800
    
    7512DRAMC V1.3.2 (0)
    
    
    EN751221 at Wed Feb 16 02:11:32 UTC 2022 version 1.1 free bootbase
    
    Memory size 64MB
    
    flash base: bc000000
    Set SPI Clock to 25 Mhz
    Found SPI Flash 4MiB EN25QH32B at 0xbc000000
    mtd:  part 4: partitioning exceeds flash size, truncating
    
    Press any key in 0.1 secs to enter boot command mode.
    ..
    
    Decompress to 80002000 free_mem_ptr=80D00000 free_mem_ptr_end=807B0000
    [boot_kernel:1241] Here.
    [boot_kernel:1250] Here.
    75xx: 0x0
    Uncompressing [LZMA] ...  done.
    Linux version 2.6.36 (root@ubuntu) (gcc version 4.3.6 (Buildroot 2012.05) ) #43 SMP Tue Aug 30 09:45:16 CST 2022
    ISPRAM0: PA=002c0000,Size=00010000,enabled
    flash_init: flash_base:bc000000
    flash_init: flash_base:bc000000
    memsize:64MB
    EcoNet EN751221 SOC prom init
    bootconsole [early0] enabled
    CPU revision is: 00019558 (MIPS 34Kc)
    Determined physical RAM map:
     memory: 03fe0000 @ 00020000 (usable)
    Wasting 1024 bytes for tracking 32 unused pages
    Zone PFN ranges:
      Normal   0x00000020 -> 0x00004000
    Movable zone start PFN for each node
    early_node_map[1] active PFN ranges
        0: 0x00000020 -> 0x00004000
    3 available secondary CPU TC(s)
    PERCPU: Embedded 7 pages/cpu @81083000 s7168 r8192 d13312 u65536
    pcpu-alloc: s7168 r8192 d13312 u65536 alloc=16*4096
    pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16224
    Kernel command line:  es=1
    PID hash table entries: 256 (order: -2, 1024 bytes)
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
    Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
    Writing ErrCtl register=0005e35f
    Readback ErrCtl register=0005e35f
    nmi base is 810c4200
    Memory: 60572k/65408k available (2840k kernel code, 4836k reserved, 624k data, 220k init, 0k highmem)
    SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    Hierarchical RCU implementation.
            RCU-based detection of stalled CPUs is disabled.
            Verbose stalled-CPUs detection is disabled.
    NR_IRQS:64
    CPU frequency 700.00 MHz
     Using 199.996 MHz high precision timer.
    console [ttyS0] enabled, bootconsole disabled
    console [ttyS0] enabled, bootconsole disabled
    Calibrating delay loop... 465.30 BogoMIPS (lpj=2326528)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    34K sync es set to 1.
    Config7: 0x80080500
    Limit of 4 TCs set
    TLB of 64 entry pairs shared by 2 VPEs
    VPE 0: TC 0 1 2, VPE 1: TC 3
    IPI buffer pool of 16 buffers
    CPU revision is: 00019558 ((null))
    TC 1 going on-line as CPU 1
    CPU revision is: 00019558 ((null))
    TC 2 going on-line as CPU 2
    CPU revision is: 00019558 ((null))
    TC 3 going on-line as CPU 3
    Brought up 4 CPUs
    NET: Registered protocol family 16
    7522 - 21S/F disable PCIe gen1 port
    PCIe driver version: 751221.5.20170807
    MT7512_pcie_init
    check pcie link up status:
    isRC0_LINKUP=0
    isRC1_LINKUP=0
    PCI-E RC0 & RC1 can not link up
    Initializing Ecnt Event Netlink Socket
    Initializing Econet Event Netlink Socket nl_sk = 83c65e00
    bio: create slab <bio-0> at 0
    NET: Registered protocol family 8
    NET: Registered protocol family 20
    Switching to clocksource MIPS
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    UDP hash table entries: 128 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    TC3162 hardware watchdog module loaded.
    squashfs: version 4.0 (2009/01/31) Phillip Lougher
    msgmni has been set to 118
    cryptomgr_test used greatest stack depth: 15224 bytes left
    io scheduler noop registered (default)
    ttyS0 at I/O 0xbfbf0003 (irq = 1) is a TC3162
    ECNT ring buffer init success
    brd: module loaded
    
    SPI Flash Init Start
    Set SPI Clock to 25 Mhz
    
    SPI Flash Init Finish
    IS_SPIFLASH=0x2, IS_NANDFLASH=0x0, (0xBFA10114)=0x0)
    [linux_spi_nand_flash_init] spi nor flash
    tc3162: flash device 0x01000000 at 0x1c000000
    tc3162: Found SPIFLASH 4MiB EN25QH32B
    Creating 10 MTD partitions on "tc3162":
    0x000000000000-0x000000400000 : "flash"
    0x000000000000-0x000000020000 : "tcboot"
    0x000000020000-0x000000030000 : "romfile"
    0x000000030000-0x000000040000 : "factoryinfo"
    0x000000040000-0x000000050000 : "loid"
    0x000000050000-0x000000060000 : "hwinfo"
    0x000000060000-0x000000070000 : "config"
    0x000000070000-0x000000080000 : "iot"
    0x000000080000-0x0000001b0000 : "kernelA"
    0x0000001b0000-0x000000400000 : "rootfsA"
    rootfsA
    PPP generic driver version 2.4.2
    PPP Deflate Compression module registered
    PPP BSD Compression module registered
    NET: Registered protocol family 24
    RT3xxx EHCI/OHCI init.
    Netfilter messages via NETLINK v0.30.
    nf_conntrack version 0.5.0 (946 buckets, 3784 max)
    ctnetlink v0.93: registering with nfnetlink.
    nf_conntrack_rtsp v0.6.21 loading
    nf_nat_rtsp v0.6.21 loading
    ip_tables: (C) 2000-2006 Netfilter Core Team
    TCP cubic registered
    NET: Registered protocol family 10
    IPv6 over IPv4 tunneling driver
    NET: Registered protocol family 17
    802.1Q VLAN Support v1.8 Ben Greear <[email protected]>
    All bugs added by David S. Miller <[email protected]>
    VFS: Mounted root (squashfs filesystem) readonly on device 31:9.
    Freeing unused kernel memory: 220k freed
    busybox init and set aff
    init started: BusyBox v1.26.2 (2022-08-30 09:47:06 CST)
    starting pid 38, tty '': '/usr/etc/init.d/rcS'
    [ used greatest stack depth: 14832 bytes left
    chmod: /userfs/profile.cfg: Read-only file system
    devpts: called with bogus options
    mount used greatest stack depth: 14320 bytes left
    Unlocking factoryinfo .mtd used greatest stack depth: 14240 bytes left
    ..
    Doing bob get function , get bob info to /tmp/7570_bob.conf
    read bob magic code is 0x07050701
    module_sel: module license 'unspecified' taints kernel.
    Disabling lock debugging due to kernel taint
    
    tc_multiwan version: tcsmux V1.1.0.0 (Apr  9 2019-11:56:42).
    
    tcportbind version: tcportbind V1.1.0.0 (Aug 30 2022-09:45:47).
    vlantag_drv_init
    TCSUPPORT_IPV6
    TC3162 LED Manager 0.1 init
    
    tcledctrl version: tcledctrl V1.1.0.0 (Aug 30 2022-09:45:43).
    led path:/userfs/led.conf
    insmod used greatest stack depth: 13912 bytes left
    tccicmd V1.1.0.0 (Aug 30 2022-09:45:45)
    
    SIFMaster 0.1 init
    ===== Interface 0 is ON =====
    
    Register sifm cmd
    the number of cfg node is 58
    portbind_init
    autopvc_init
    LanguageSwitch_init vendorCfgFile_init The number of cache node is 5
    Enter into function:parser_romfile
    mxml: Bad control character 0x0b not allowed by XML standard!
    Romfile format is wrong, we use default romfile to replace current setting romfile!!
    /bin/sh: /userfs/bin/mmm: not found
    /var/tmp/samba_exe.sh: line 1: /usr/script/samba.sh: not found
    /var/tmp/samba_exe.sh: line 2: /userfs/bin/smbpasswd: not found
    /var/tmp/samba_exe.sh: line 3: /usr/script/samba_add_dir.sh: not found
    iptables used greatest stack depth: 13792 bytes left
    Can't open /etc/Wireless/WLAN_APOn
    Can't open /etc/Wireless/RT61AP/RT61AP.dat
    Wrong dispBy
    lanHost_read: Create node LanHost !
    tesIdx
    /bin/sh: /usr/bin/ip: not found
    insmod ETH_LAN driver
    macType = 0
    qdma_lan: physical_size is 0x00200000
    ether.c:v1.00-NAPI 29.Mar.2015
    MAC from flash_base: 0xbc000000(offset: 0x30000):ffffff9c ffffffa2 fffffff4 3a ffffffad ffffffdc
    eth0: FE MAC Ethernet address: 9C:A2:F4:3A:AD:DC
    Use Internal switch ,type 10
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (9, 0xb000)
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (10, 0xb000)
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (11, 0xb000)
    tcPhyVerLookUp 4038 9471
     7522 Ge,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (12, 0x0)
    tcPhyVerLookUp 4038 9471
     7522 Ge,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (12, 0x0)
     GE Rxet cal (1)(0)(0)(0x21)
     GE Rxet cal (2)(0)(0)(0x22)
     GE Rxet cal (3)(0)(0)(0x23)
     GE Rxet cal (4)(0)(0)(0x24)
     GE Rxet cal (5)(0)(0)(0x25)
     GE Rxet cal (6)(0)(0)(0x26)
      GE Rext AnaCal Done! (7)(0x27)
      GE Rext AnaCal Done! (7)(0x27)
      GE R50 AnaCal Done! (8) (0x20)(0xa0)
      GE R50 AnaCal Done! (8) (0x20)(0xa0)
      GE R50 AnaCal Done! (8) (0x20)(0xa0)
     GE-c zcal(32)
      GE R50 AnaCal Done! (8) (0x20)(0xa0)
     GE-d zcal(32)
     GE Tx offset AnaCal Done! (1)(0x21)
     GE Tx offset AnaCal Done! (2)(0x2)
     GE Tx offset AnaCal Done! (3)(0x3)
     GE Tx offset AnaCal Done! (3)(0x3)
     GE-a tx_amp(19)
     GE Tx amp AnaCal Done! (pair-0)(0x12)(0x7c20)
     GE Tx amp AnaCal Done! (13) (0x13)
     GE-b tx_amp(14)
     GE Tx amp AnaCal Done! (pair-1)(0x17)(0x1b20)
     GE Tx amp AnaCal Done! (18) (0xe)
     GE-c,d tx_amp(13)
     GE Tx amp AnaCal Done! (pair-2)(0x19)(0x1620)
     GE Tx amp AnaCal Done! (19) (0xd)
     GE-c,d tx_amp(13)
     GE Tx amp AnaCal Done! (pair-3)(0x21)(0x1620)
     GE Tx amp AnaCal Done! (19) (0xd)
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 0
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     FE-9 R50 AnaCal Done! (2)(0x22)
     7522 FE zcal tx(38) rx(34)
     7522 FE l4_22(0x2600)
     7522 FE l4_22(0x2622)
     FE-9 Tx offset AnaCal Done! (3)(-1)(0x21)
     FE-9 Tx amp AnaCal Done! (2)(0x10)
     FE-9 Tx amp AnaCal Done! (2)(0x10)
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     FE-10 R50 AnaCal Done! (3)(0x23)
     7522 FE zcal tx(38) rx(34)
     7522 FE l4_22(0x2600)
     7522 FE l4_22(0x2622)
     FE-10 Tx offset AnaCal Done! (4)(-2)(0x22)
     FE-10 Tx amp AnaCal Done! (7)(0xb)
     FE-10 Tx amp AnaCal Done! (7)(0xb)
    tcPhyVerLookUp 4038 9414
     7522 Fe,
     FE-11 R50 AnaCal Done! (4)(0x24)
     7522 FE zcal tx(33) rx(33)
     7522 FE l4_22(0x2100)
     7522 FE l4_22(0x2121)
     FE-11 Tx offset AnaCal Done! (4)(2)(0x2)
     FE-11 Tx amp AnaCal Done! (5)(0xd)
     FE-11 Tx amp AnaCal Done! (5)(0xd)
    tcPhyVerLookUp 4038 9471
     7522 Ge,
    eth0: starting interface.
    netif_start_queue
    macType = 0
    qdma_wan: qdma_bmgr.c [2934]: HW_FWD physical size is not illegal, force setting to 4MB
    qdma_wan: physical_size is 0x00400000
    RX_IMP value:0x0000000f
    E3 patched
    EN7571 found!
    FLASH matrix got
    PWRADC offset = 0x3808
    PWRADC ready
    BG 1.76V = 0x286
    BG 0.875V = 0x140
    RSSI_Vref = 0x211
    RSSI_V = 0x298
    eFuse value = 0x7
    eFuse offset = 2.1'C
    Start GPON Tx Calibration
    RGS_T0C = 0x5a
    RGS_T1C = 0x54
    Initial current loaded
    PWR/ER loaded
    TIASD = 0x48
    Rx LOS is set
    Internal DDMI Enabled
    KT Enabled
    EN7571 Initialization Done!
    PON PHY driver version is 170824.106.8
    insmod used greatest stack depth: 13776 bytes left
    xPON driver initialization
    Alloc data struct memory successful, 35448
    
    Get MAC address from 0x30000the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    the channel id_is must between 0 and 15
    
    Get MAC address from 0x30000
    
    Get MAC address from 0x30000
    insmod used greatest stack depth: 13736 bytes left
    XPON Mapping Module init OK!
    Mirror/redirect action on
    ifconfig: ioctl 0x8913 failed: No such device
    Ebtables v2.0 registered
    The remaining IMEM space cannot accommodate section .imem_text !!
    Remaining IMEM space: 11232 bytes       Section Size: 14652 bytes
    HWNAT Module enabled with Type:L2B/IPv4/IPv6/DS-LITE/6RD, foeSize:80B, foeNum:16384
    IP check use Black List
    insmod used greatest stack depth: 12936 bytes left
    device eth0 entered promiscuous mode
    TC3162 hardware watchdog initialized
    Hi~
    no specific node
    four ports
    device eth0.1 is not a slave of br0
    device eth0.2 is not a slave of br0
    device eth0.3 is not a slave of br0
    device eth0.4 is not a slave of br0
    device eth0 is already a member of a bridge; can't enslave it to bridge br0.
    device eth0 left promiscuous mode
    br0: port 1(eth0) entering disabled state
    device eth0.1 entered promiscuous mode
    device eth0.2 entered promiscuous mode
    device eth0.3 entered promiscuous mode
    device eth0.4 entered promiscuous mode
    ifconfig: ioctl 0x8913 failed: No such device
    interface eth0.5 does not exist!
    pon_vlan_init
    
    Multi Lan port
     initilize xpon igmp module....done!
    pon_mac_filter_init
    
    Multi Lan portifconfig: SIOCSIFMTU: No such device
    *reg=00001640 value:00000000 (ext_switch:0)
    00:00:11 imgr.c [71]: Initial system driver.
    00:00:11 imgr.c [77]: Initial pthread parameters.
    00:00:11 imgr.c [83]: Initial dispatcher.
    00:00:11 dspch_init.c [23]: Create IPC trap message queue
    00:00:11 dspch_init.c [36]: Create IPC trap message queue
    00:00:11 imgr.c [89]: Initial database manager.
    00:00:11 dbmgr_init.c [32]: Create database memory.
    00:00:11 dbmgr_init.c [38]: Create the share database memory successful.
    00:00:11 dbmgr_init.c [41]: The total share database size is 0.
    00:00:11 imgr.c [95]: Initial config manager.
    00:00:11 imgr.c [101]: Initial fault manager.
    00:00:11 imgr.c [107]: Initial performance manager.
    
    device pon entered promiscuous mode
    iptables v1.4.10: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    iptables v1.4.10: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    iptables v1.4.10: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    iptables v1.4.10: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    /etc/isp0.conf
    device nas0 entered promiscuous mode
    add nas0 for BDCOM issue...
    device nas0 is already a member of a bridge; can't enslave it to bridge br0.
    /bin/sh: tc: not found
    /bin/sh: tc: not found
    /etc/isp1.conf
    /etc/isp2.conf
    /etc/isp3.conf
    /etc/isp4.conf
    /etc/isp5.conf
    /etc/isp6.conf
    /etc/isp7.conf
    br0: port 6(nas0) entering forwarding state
    br0: port 6(nas0) entering forwarding state
    br0: port 5(pon) entering forwarding state
    br0: port 5(pon) entering forwarding state
    br0: port 4(eth0.4) entering forwarding state
    br0: port 4(eth0.4) entering forwarding state
    br0: port 3(eth0.3) entering forwarding state
    br0: port 3(eth0.3) entering forwarding state
    br0: port 2(eth0.2) entering forwarding state
    br0: port 2(eth0.2) entering forwarding state
    br0: port 1(eth0.1) entering forwarding state
    br0: port 1(eth0.1) entering forwarding state
    Radvd function activated!
    Enter set first loop, IP addr by radvd
    /bin/sh: /tmp/del_radvd_prefix.sh: not found
    dhcp6s parameter activated by exec!
    /bin/sh: /userfs/bin/d========================insmod iptable_filter=======================
    nsmasq: not found
    /bin/sh: /userfs/bin/dhcp6s: not found
    /bin/sh: /userfs/bin/radvd: not found
    chmod: /userfs/profile.cfg: Read-only file system
    sh used greatest stack depth: 12872 bytes left
    valid subcommands:
    adsl
    kworker/u:0 used greatest stack depth: 12744 bytes left
    /etc/lanAlias0.conf
    killall: klogd: no process killed
    killall: syslogd: no process killed
    ftp switch turn on
    sip switch turn on
    h323 switch turn on
    rtsp switch turn on
    l2tp switch turn on,sw_state=
    iptables: Bad rule (does a matching rule exist in that chain?).
    ipsec switch turn on,sw_state=
    iptables: Bad rule (does a matching rule exist in that chain?).
    pptp switch turn on
    /var/tmp/samba_exe.sh: line 1: /userfs/bin/nmbd: not found
    /var/tmp/samba_exe.sh: line 2: /userfs/bin/smbd: not found
    set olt type: 0
    echo used greatest stack depth: 5504 bytes left
    Link State: LAN_1 up.
    come into gpon_boot
    activeImage=0, committedImage=0
    omci get image from flash : 0
    valid subcommands:
    adsl
    omci get image from flash : 1
    /usr/etc/init.d/rcS: line 1225: /userfs/bin/tftpd: not found
    
    Send OAM Update config!
    !sendEponOamCmdMsg open message queue fail!
    
    sendOmciCmdMsg open message queue fail!Modify to hw_nat L2 rule
    tcPhyVerLookUp 4038 9471
     7522 Ge,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (12, 0x0)
      GE R45 zcal_idx (26) (0x1a)
      GE R45 zcal_idx (36) (0x24)
      GE R45 AnaCal Done! (6) (0x27)(0xa7)
      GE R45 zcal_idx (25) (0x19)
      GE R45 zcal_idx (35) (0x23)
      GE R45 AnaCal Done! (7) (0x28)(0xa8)
      GE R45 zcal_idx (26) (0x1a)
      GE R45 zcal_idx (36) (0x24)
      GE R45 AnaCal Done! (6) (0x27)(0xa7)
     GE-c zcal(39)
      GE R45 zcal_idx (26) (0x1a)
      GE R45 zcal_idx (36) (0x24)
      GE R45 AnaCal Done! (6) (0x27)(0xa7)
     GE-d zcal(39)
     GE Tx offset AnaCal Done! (1)(0x21)
     GE Tx offset AnaCal Done! (2)(0x2)
     GE Tx offset AnaCal Done! (3)(0x3)
     GE Tx offset AnaCal Done! (3)(0x3)
     GE-a tx_amp(19)
     GE Tx amp AnaCal Done! (pair-0)(0x12)(0x7c1b)
     GE Tx amp AnaCal Done! (13) (0x13)
     GE Tx amp hbt  (0x13)(0x5c1a)
     GE-b tx_amp(13)
     GE Tx amp AnaCal Done! (pair-1)(0x17)(0x1a1b)
     GE Tx amp AnaCal Done! (19) (0xd)
     GE Tx amp hbt  (0xd)(0x1114)
     GE-c,d tx_amp(13)
     GE Tx amp AnaCal Done! (pair-2)(0x19)(0x1620)
     GE Tx amp AnaCal Done! (19) (0xd)
     GE-c,d tx_amp(14)
     GE Tx amp AnaCal Done! (pair-3)(0x21)(0x1720)
     GE Tx amp AnaCal Done! (18) (0xe)
     FE-9 R45 AnaCal Done! (2)(0x22)
     7522 FE zcal tx(65) rx(47)
     7522 FE l4_22(0x4100)
     7522 FE l4_22(0x412f)
     FE-9 Tx offset AnaCal Done! (3)(-1)(0x21)
     FE-9 Tx amp AnaCal Done! (2)(0x10)
     FE-10 R45 AnaCal Done! (3)(0x23)
     7522 FE zcal tx(42) rx(42)
     7522 FE l4_22(0x2a00)
     7522 FE l4_22(0x2a2a)
     FE-10 Tx offset AnaCal Done! (4)(-2)(0x22)
     FE-10 Tx amp AnaCal Done! (7)(0xb)
     FE-11 R45 AnaCal Done! (4)(0x24)
     7522 FE zcal tx(43) rx(43)
     7522 FE l4_22(0x2b00)
     7522 FE l4_22(0x2b2b)
     FE-11 Tx offset AnaCal Done! (4)(2)(0x2)
     FE-11 Tx amp AnaCal Done! (5)(0xd)
    tcPhyVerLookUp 4038 9471
     7522 Ge,
     [tcPhyInit] in  [tcPhyInit] out , r31 = (12, 0x0)
     751221 set 5R
    Link State: LAN_1 down.
    * doPhyMMDWrite => phyaddr=12, dev_addr=30, data_addr=0x0003 , value=0x0096
    * doPhyMMDWrite => phyaddr=12, dev_addr=30, data_addr=0x0006 , value=0x03A9
    * doPhyMMDWrite => phyaddr=12, dev_addr=31, data_addr=0x0268 , value=0x07F8
    * doPhyMMDWrite => phyaddr=12, dev_addr=31, data_addr=0x0271 , value=0x7E14
    
    Please press Enter to activate this console. [ setHostname ] 304:  hostname TP-LINK
    
    [ waitOmciInit ] 204:  <<<<  COS wait for OMCI init...  >>>>
    
    [ waitOmciInit ] 210:  <<<<  OMCI init use 0 seconds!  >>>>
    
    [ dm_readFile ] 2011:  can not open xml file /var/tmp/pc/reduced_data_model.xml!, about to open file /etc/reduced_data_model.xml
    sendto: No such file or directory
    send 2004 error 934, -1
    device eth0 entered promiscuous mode
    br0: port 7(eth0) entering forwarding state
    br0: port 7(eth0) entering forwarding state
    Get tp sw version :3.1.4 build 220830 Rel.35191n
    TpProductId:0x4685b102
    HwVersion:2.0.0.1
    SwVersion0:3.1.4.50
    SwVersion1:3.1.4.50
    MAC:9c:a2:f4:3a:ad:dc
    Get dut name and main version :XZ000-G3
    Get tp build info date :220830 , time : 35191
    api_set_pon_ver_info(415): -- not implemented, to do here! --
    [ oal_iotcheckfiles ] 1013:  iot file check ok len=1639
    
    [ oal_sys_readSnFlash ] 1883:  Read invalid sn from auth flash!!!!
    
    [ rsl_InitGponPloamSnPwd ] 1619:  Read sn from auth flash failed, Now try to read from hwinfo flash
    
    Get tp sw version :3.1.4 build 220830 Rel.35191n
    TpProductId:0x4685b102
    HwVersion:2.0.0.1
    SwVersion0:3.1.4.50
    SwVersion1:3.1.4.50
    MAC:9c:a2:f4:api_set_sn_auth_info(340): snIUint32[0] = 0x54504c47, snIUint32[1] = 0xf43aaddc,
    3
     tmp: TPLGf43aaddc
    a:ad:dc
    [ rsl_InitGponPloamSnPwd ] 1628:  Read sn from hwinfo flash is invalid, Use auto_sn!!
    
    [ lanMacToOnuSn ] 197:  -------f43aaddc-----
    invendor: 0x54504c47
    it sn:<54504C47f43aaddc>
    
    Send OAM Update config!
    !sendEponOamCmdMsg open message queue fail!
    [ oal_sys_readPwapi_set_sn_auth_info(375): passwd:;
    dFlash ] 2058:  Read invalid pwd from auth flash!!!! Set to NULL....
    
    init pwd:<>
    Password:
    
    Send OAM Update config!
    !sendEponOamCmdMsg open message queue fail!
    [ oal_sys_readLoidFlash ] 1791:  Read invalid loid from flash. Now set default value to NULL
    
    Init loid:   ,  passwd:
    [ oal_sys_readVlanFlash ] 2160:  Read invalid vlan from auth flash!!!! Use default value...
    
    api_set_vlan_mode(987): set vlanmode=0 vid=1 pri=0
    ponvlancmd cleanrule 11 0
    ponvlancmd cleanrule 11 1
    
    ponvlan ioctl errorponvlancmd enable
    ponvlancmd setdsctl 0
    [ rsl_setget bootflag(0)GponFwRuleObj ] 2389:  Set vlan mode, mgmtMode=0 vid=1 pri=0
    
    Init vlan_mode 0 , vlan_vid 1 , vlan_prio 0
    got mainVer(V3.1.4) standbyVer(V3.1.4)mainSw(V3.1.4), standBySw(V3.1.4)api_set_sn_auth_info(340): snIUint32[0] = 0x54504c47, snIUint32[1] = 0xf43aaddc,
    
     tmp: TPLGf43aaddc
    vendor: 0x54504c47
    echo used greatest stack depth: 5032 bytes left
    
    Send OAM Update config!
    !sendEponOamCmdMsg open message queue fail!
    me_xml_get_root(79): can noapi_renegotiate(644): cmdBuf:echo gpon startup 0 > /proc/gpon/debug
    t alloc mem for xml file /etc/omci_me.xml.
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 256,Disable GPON ONU
     instId = 0, attrId = 1, value = V4.0
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 256, instId = 0, attrId = 0, value = TPLG
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 256, instId = 0, attrId = 2, value = 54504C47f43aaddc
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 256, instId = 0, attrId = 3, value = 0
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 257, instId = 0, attrId = 0, value = TX-6610
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 257, instId = 0, attrId = 1, value = 134
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 7, instId = 0, attrId = 0, value = V3.1.4
    
    [ rsl_setGponOmciMeIotObj ] 3112:  rsl_setGponOmciMeIotObj 3112() : optCode = 3, meId = 7, instId = 1, attrId = 0, value = V3.1.4
    
    api_renegotiate(650): cmdBuf:echo gpon startup 1 > /proc/gpon/debug
    Enable GPON ONU
    echo used greatest stack depth: 4816 bytes left
    omci_api_cos.c omci_api_call (1514): unknow api id 23
    [ oal_doSetGponDebugObj ] 2181:  Call OMCI API to set pon debug error
    
    api_set_onu_dhcp_status(1198): -- not implemented, to do here! --
    device pon is already a member of a bridge; can't enslave it to bridge br0.
    [ cos_init ] 482:  TX enable(echo txctl 1 0 > /proc/pon_phy/debug)!
    
    phy_write_proc ctrlFlag(1, 0-limit 1-open). set pon tx power[not used now](0, 0-ON 1-OFF).
    killall: epon_oam: no process killed
    telnetd: starting
      port: 23; login program: /usr/bin/cli
    [ setSystemDropCaches ] 195:  echo 2 > /proc/sys/vm/drop_caches
    
    Link State: LAN_1 up.
    killall: epon_oam: no process killed
    killall: epon_oam: no process killed
    Change packet overhead to 0x14
    Link State: PON link up.
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    /bin/sh: can't create /proc/tc3162/tsarm_qosred_update: nonexistent directory
    killall: dnsmasq: no process killed
    /bin/sh: /userfs/bin/dnsmasq: not found
    iptables: Bad rule (does a matching rule exist in that chain?).
    iptables: Bad rule (does a matching rule exist in that chain?).
    iptables: Bad rule (does a matching rule exist in that chain?).
    iptables: Bad rule (does a matching rule exist in that chain?).
    chmod: /userfs/profile.cfg: Read-only file system
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    /usr/script/wan_stop.sh: line 45: ip6tables: not found
    /usr/script/wan_stop.sh: line 46: ip6tables: not found
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    br0: port 6(nas0) entering forwarding state
    br0: port 6(nas0) entering disabled state
    [: !=: argument expected
    killall: siproxd: no process killed
    rmmod: can't unload module 'ipt_REDIRECT': No such file or directory
    sip switch turn on
    iptables: No chain/target/match by that name.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables: No chain/target/match by that name.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.4.10: Couldn't find target `acl_chain'
    
    Try `iptables -h' or 'iptables --help' for more information.
    iptables: No chain/target/match by that name.
    ifconfig: nas0: error fetching interface information: Device not found
    chmod: /userfs/profile.cfg: Read-only file system
    chmod: /userfs/profile.cfg: Read-only file system
    /bin/sh: /etc/route.sh: not found
    method = HW_NAT_TAB_CLEAN
    done
    ddns running
    

    Good luck and have fun!

  • 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
    
  • Setup the MediaTek mt7921k Wi-Fi 6 Wireless Adapter on Debian

    Setup the MediaTek mt7921k Wi-Fi 6 Wireless Adapter on Debian

    This guide is based on Debian Bullseye and the test is done on the ZimaBoard N3450 (x86) via the PCIe x4 to m.2/ngff adapter. However, it should work for other Debian releases. You are welcome to try and share the feedback.

    1. Update the Sources List

    You are going to install some packages that are belong to the non-free & testing repository. Before proceed with the installation, it is advised to check and update the /etc/apt/sources.list file:

    sudo nano /etc/apt/sources.list

    Make sure the non-free & testing repository is added to the file. If you are not sure how to modify it, you can use my example below:

    #Stable
    deb http://deb.debian.org/debian bullseye main contrib non-free
    deb-src http://deb.debian.org/debian bullseye main contrib non-free
    
    deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
    deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
    
    deb http://deb.debian.org/debian bullseye-updates main contrib non-free
    deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
    
    # Testing
    deb http://ftp.us.debian.org/debian/ testing main contrib non-free
    deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

    2. Driver for MT7921k

    The dirver & firmware for the Mediatek MT7921 series (MT7921 & MT7921K) are available in the firmware-misc-nonfree package. You just need to install it with apt

    sudo apt install firmware-misc-nonfree
    

    After the package is installed, you should see the driver for the mt7921k available in /lib/firmware/mediatek directory. Use this command to check

    ls /lib/firmware/mediatek

    If you can’t find these 3 files, there is something wrong with the installation, please try again. Else, it is good to proceed.

    BT_RAM_CODE_MT7961_1_2_hdr.bin
    WIFI_MT7961_patch_mcu_1_2_hdr.bin
    WIFI_RAM_CODE_MT7961_1.bin

    3. Kernel

    Debian Bullseye stable is having linux kernel 5.10.140-1. However, this kernel version is not compatible with the mt7921k driver. In order for it to work, you will need the linux-kernel 5.19.0-2-amd64. It is available in the testing repo which we already added in the beginning.

    You can install it with the below commands:

    apt-cache search linux-image
    

    A list of available linux kernel will show up. Continue to install the 5.19.0-2-amd64 kernel by:

    sudo apt install linux-image-5.19.0-2-amd64

    After that, reboot the PC

    4. Checking

    Run the lspci -v command and you should see the adapter up and running with kernel modules mt7921e

    01:00.0 Network controller: MEDIATEK Corp. Device 0608
            Subsystem: MEDIATEK Corp. Device 0608
            Flags: bus master, fast devsel, latency 0, IRQ 128
            Memory at 91400000 (64-bit, prefetchable) [size=1M]
            Memory at 91500000 (64-bit, prefetchable) [size=16K]
            Memory at 91504000 (64-bit, prefetchable) [size=4K]
            Capabilities: <access denied>
            Kernel driver in use: mt7921e
            Kernel modules: mt7921e

    This means everything is working as expected. Now, you can establish the wireless connection with the network manager package that you are using. For this part, I won’t go too deep into it.

    Let’s have a final check before finish the post:

    nmcli device wifi list

    Here, I use the nmcli command to scan the available WiFi networks nearby. The mt7921k adapter is working great!

    Good luck!