TR398 issue 3 Mesh Rate vs Range

Today I improved and implemented the TR398 Mesh RvR test in our LANforge software and testbed. This test requires a TR398 + Mesh testbed, and the parts of interest for this particular test are the Root, Node-1, and STA chambers. All three are connected via attenuators. In this test case, the Root and Node-1 chambers vary the attenuation to emulate a backhaul signal level of -60, -70, and -80. At each iteration, a TCP upload and download throughput test is run.

First, I calibrated using two of our CT521a devices acting as AP and/or STA. This requires some initial setup, and physically placing the CT521a in the correct location. After that, the TR398 automation code will do the calibration automatically. Here’s a picture of the main chamber in calibration mode. Note that the antenna being used for the calibration is in the center of the turntable.

The Node-1 system also needs a calibration AP to calibrate its backhaul and STA to Node-1 link. I raised it up on some foam blocks so that the directional antennas were pointing at the calibration antennas similar to how the DUT AP will be positioned:

Once the calibration is complete, the DUT APs are placed back in the position formerly occupied by the calibration devices.

And then run the TR398 test case, which passes all tests as currently written with this DUT:

See the full report here:

Happy testing!


LANforge 5.4.4 Released

Ben working on LANforge

We are excited to share the new features in 5.4.4:

  • WiFi 6 and 6e client emulation
  • TR398 issue 2 test suites
  • Android WiFi testing app
  • improved python scripting

New Linux Kernel and Intel Wireless support:

Support recent 5.15 kernel for updated drivers and latest features. This includes several updated drivers for Intel AX200 and AX210 radios.

MediaTek Radio Support

  • Support MTK 4×4 AX radios in tr-398 issue 1 (except MU-MIMO test case, which is not currently supported.)
  • Support MTK 4×4 AX radios in tr-398 issue 2 (except MU-MIMO test case, which is not currently supported.)
  • Support tx-overrides on MTK 4×4 AX NIC (ability to specify NSS, MCS, bw, guard-interval for transmitted data frames.

TR398 Testing Suites

  • Update TR398 issue 2 to support latest proposed test revision.
  • Improve report content for TR398 and TR398i2.
  • Add proposed TR398 issue-3 Airtime Fairness (ATF) test case.
  • Add proposed TR398 issue-3 Quality of Service (QoS) test case.
  • Add proposed TR398 issue-3 Latency test case.
  • Add proposed TR398 issue-3 Multicast test case.
  • Add subtest pass/fail counters to TR398 and TR398i2 KPI reports.

Test Updates

  • Add pass/fail option for Dataplane and Rate vs Range test.
  • Add Latency graphs for the AP-Auto multi-station throughput test.
  • Scale test: Add ping support, improve error checking and feedback to user.
  • Improve RvR test report and procedure.

Android App

Initial support for LANforge pure-java resource on Android phones. Includes TCP, UDP, IPv4, IPv6 and HTTP/HTTPS protocol support for traffic generation. This app has been used in campus WiFi testing.

Python Scripting

Improved python scripting support, including:
– auto-generated .py files to support LANforge CLI commands
– cleanup and stability improvements
– various new automated python tests

Regression testing of the scripting library fixed many areas. We are introducing support for Python virtual environments. Python Pypi libraries are now installed in user environment and do not require OS python libraries.

Fedora Support

We continue focusing our product around Fedora, and support python scripting on Fedora 27 and newer. Our latest products are installed using Fedora 34.

LANforge 5.4.1 Released

We’re happy to announce LANforge 5.4.1, that supports a number of new features:

  • Add TR-398 automated WiFi test support.
  • Support /AC on 2.4Ghz on /b/g/n/AC radios (2.4Ghz /AC)
  • Add support for wired traffic test to the Dataplane scenario test.
  • Support 5.2 kernel for latest drivers and kernel features.
  • Support IPSEC interfaces.
  • Support CT850a 2D attenuator turn-table.
  • Support ComXim MT series turn-table (for instance: MT200RUWL20)
  • Improve performance of creating virtual stations, tested 500 stations per /n radio.

IPTables and conntrack

When you are using LANforge as a virtual router doing NAT, you might need to see how many NAT table entries you’re handling.  This can be important because NAT entries take memory, and if you want to handle 65,000 simultaneous connections, you might be heading for trouble.

If your LANforge is only generating traffic, you won’t see NAT entries…rather you want to use netstat -ntp to see how many open connections there are.

LANforge uses iptables PREROUTING heavily, forcing each port to have it’s own set of tables. When you type iptables -nvL and see nothing…that’s because nothing is in the tables for your default route, which is probably eth0. You get close with the raw table. Try iptables -S -t raw. You will see PREROUTING entries for every interface:

# iptables -S -t raw
-A PREROUTING -i br2000 -j CT --zone 10001
-A PREROUTING -i eth1 -j CT --zone 10001
-A PREROUTING -i vap13 -j CT --zone 10001
-A PREROUTING -i vap14 -j CT --zone 10001
-A PREROUTING -i eth2 -j CT --zone 10001

This shows we have a CT chain and a zone note for that chain.

When you create a virtual router, add NAT to a port in it, you can view the NAT table entries with conntrack.

* conntrack -L will list them all, but that’s probably not super useful
If you’re running TCP-multicon connections, expect thousands of connections.
* conntrack -C will show how many NAT entries are present, so you can avoid doing a conntrack -L | wc -l

Happy networking!

Adding hostnames to dhclient configs

If you have hundreds of stations on your LANforge and want to give them all hostnames, this is certainly possible. Please get the script from the lanforge-scripts repository.

  1. First bring up your stations with DHCP enabled. This will create your dhclient config files in /home/lanforge/vr_conf.
  2. Admin-down the stations.
  3. With a root shell, go to that vr_conf directory and run this script on the files you want to give hostnames to.
    1. For just one station:
      root# ~lanforge/scripts/ dhclient_sta0000.conf
    2. For all the stations:
      root# ~lanforge/scripts/ dhclient_sta*conf
  4. Admin-up the stations.
    1. If you are sniffing, you will see a DHCP Request packet that has a hostname attribute.
    2. If you are inspecting a LANforge dhcpd server in a virtual router, you would check /home/lanforge/vr_conf/vrcx_eth1_dhcp_lease.db for entries with the setting client-hostname.

That should work.

Java on OS X

Sometimes your Mac has a very old version of Java on it, like 1.6.0_123. This can break running the LANforge client. Let’s learn how to manage this. First, open Terminal and find what version of Java you think you have:

$ java -version

This reports what your JAVA_HOME environment variable (which might not be set) is, so the System will do a /usr/libexec/java_home command for you. You might need to follow these instructions on removing old Java version.

Install a recent version of Java. Then go back to the terminal. You want to make sure that your JAVA_HOME variable is getting set to the version you want. Verify you have a .profile and a .bashrc file in your home directory:

$ ls -l ~/.profile ~/.bashrc

Create them if the don’t exist:

$ touch ~/.profile ~/.bashrc
$ chmod 700 ~/.profile ~/.bashrc
$ echo "source .bashrc" >> ~/.profile

To see the versions of Java installed, use the java_home command:

$ /usr/libexec/java_home -V

The first column of output will be the version number, which is important for running the java_home command. Edit your .bashrc file to export your JAVA_HOME environment variable:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_122)

Save and open a new terminal. Verify using java -version.

More discussion on setting the version:

Introduction Video

We have a new introduction video that explains what Candela Technologies does and where we fit in the technology landscape. It’s on our homepage and it’s on one of our Candelatech YouTube pages.

Lately we’ve been discussing what other videos we could produce. We’ll definitely produce a very short introduction video. And we’ll definitely make more topical videos about testing scenarios. If you have suggestions for videos about network and WiFi testing you’d like to see, please let us know!