HaLowLink2 VLAN Support

I recently purchased 2 HaLowLink2 routers with the hope of linking the various devices in my detached garage to the rest of the home. To make things interesting, I need to bridge 3 VLANs over the 802.11ah link.

The unit in the house is configured to have 3 VLANs all tagged on the WAN port (the firewall is disabled). One of the VLANs is configured to be untagged on the LAN port (being used for management). Each VLAN also has an associated 2.4GHz SSID. I’ve been able to connect to each port/SSID to verify that this portion of the setup is working properly. The 802.11ah radio is configured as an access point.

The unit in the detached garage is configured very similarly. The main difference is the WAN port has the 2nd VLAN untagged (firewall is also disabled). The unit is in “access point” mode, but the 802.11ah radio is configured as a client.

The issue I’m having is I have been able to get the 802.11ah link to show as connected between the 2 units, but I cannot figure out how to configure all 3 VLANs to properly pass over the link.

I’ve dome similar setups using OpenWRT with other routers, but this is my first attempt using a 802.11ah link. I assume there is one small piece that I’m missing or perhaps the radio doesn’t support what I’m trying to do? Thanks in advance for your help!

Here are some additional details from the AP side for context. As I mentioned above, the client side is very similar, so I haven’t bothered to attach those. I can if they would be helpful. I initially hadn’t assigned a static IP address to the “wlan” interface on either end of the link, but I added it here hoping that it would help. Unfortunately, I still can’t ping the interface on the opposite end of the link.

The firewall has been removed and everything is set to “accept”, so this shouldn’t be the issue.

brctl show

bridge name     bridge id               STP enabled     interfaces
br-lan          7fff.9483c48268a8       no              phy0-ap1
                                                        lan
                                                        phy0-ap2
                                                        wan
                                                        phy0-ap0
                                                        usblan

ifconfig -a

br-lan    Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          inet addr:10.42.42.254  Bcast:10.42.42.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11189 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7196 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1682630 (1.6 MiB)  TX bytes:7069739 (6.7 MiB)

br-lan.1  Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          inet addr:192.168.10.251  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7557 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6657 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1253669 (1.1 MiB)  TX bytes:7046233 (6.7 MiB)

br-lan.11 Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          inet addr:192.168.11.251  Bcast:192.168.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3003 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:402285 (392.8 KiB)  TX bytes:1548 (1.5 KiB)

br-lan.12 Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          inet addr:192.168.12.251  Bcast:192.168.12.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:629 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26676 (26.0 KiB)  TX bytes:454 (454.0 B)

eth0      Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          inet6 addr: fe80::9683:c4ff:fe82:68a8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1504  Metric:1
          RX packets:12304 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8909 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1999372 (1.9 MiB)  TX bytes:7289994 (6.9 MiB)
          Interrupt:22

lan       Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:3352 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3352 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:246486 (240.7 KiB)  TX bytes:246486 (240.7 KiB)

morse0    Link encap:UNSPEC  HWaddr 12-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

phy0-ap0  Link encap:Ethernet  HWaddr 94:83:C4:82:68:A9
          inet6 addr: fe80::9683:c4ff:fe82:68a9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1835 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:306222 (299.0 KiB)

phy0-ap1  Link encap:Ethernet  HWaddr 96:83:C4:82:68:A9
          inet6 addr: fe80::9483:c4ff:fe82:68a9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:154 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3163 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:53448 (52.1 KiB)  TX bytes:553371 (540.4 KiB)

phy0-ap2  Link encap:Ethernet  HWaddr 92:83:C4:82:68:A9
          inet6 addr: fe80::9083:c4ff:fe82:68a9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3000 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:663 (663.0 B)  TX bytes:497659 (485.9 KiB)

usblan    Link encap:Ethernet  HWaddr 94:83:C4:82:68:A8
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1031 (1.0 KiB)

wan       Link encap:Ethernet  HWaddr 94:83:C4:82:68:A7
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12304 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6834 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1777900 (1.6 MiB)  TX bytes:7128495 (6.7 MiB)

wlan0     Link encap:Ethernet  HWaddr 50:2E:91:D2:C5:9D
          inet6 addr: fe80::522e:91ff:fed2:c59d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5648 (5.5 KiB)  TX bytes:7416 (7.2 KiB)

wlan0.sta1 Link encap:Ethernet  HWaddr 50:2E:91:D2:C5:9D
          inet6 addr: fe80::522e:91ff:fed2:c59d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:802 (802.0 B)  TX bytes:680 (680.0 B)

cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '6'
        option band '2g'
        option htmode 'HT20'
        option country 'US'
        option cell_density '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'lan'
        option encryption 'psk2+ccmp'
        option key 'XXXXXXXXXX'
        option ieee80211r '1'
        option mobility_domain 'D123'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'

config wifi-device 'radio1'
        option type 'morse'
        option path 'platform/1e130000.sdhci/mmc_host/mmc0/mmc0:0001/mmc0:0001:2'
        option band 's1g'
        option hwmode '11ah'
        option reconf '0'
        option bcf 'bcf_mm_hl2_ext.bin'
        option channel '32'
        option country 'US'

config wifi-iface 'wifinet2'
        option device 'radio0'
        option mode 'ap'
        option ssid 'WildWest'
        option encryption 'psk2+ccmp'
        option key 'XXXXXXXXXX'
        option ieee80211r '1'
        option mobility_domain 'B123'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option network 'guest'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'ap'
        option ssid 'guest'
        option encryption 'psk2+ccmp'
        option key 'XXXXXXXXXX'
        option ieee80211r '1'
        option mobility_domain 'A123'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option network 'guest'

config wifi-iface 'wifinet4'
        option device 'radio1'
        option mode 'ap'
        option ssid 'HA-LINK'
        option encryption 'psk2+ccmp'
        option s1g_bss_color '1'
        option key 'XXXXXXXXXX'
        option wds '1'
        option network 'wlan'

cat /etc/config/network

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

config globals 'globals'
        option ula_prefix 'fdcf:a3a3:dec2::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        option ipv6 '0'
        list ports 'lan'
        list ports 'usblan'
        list ports 'wan'

config interface 'lan'
        option device 'br-lan.1'
        option proto 'static'
        option ipaddr '192.168.10.251'
        option netmask '255.255.255.0'
        option gateway '192.168.10.254'
        option delegate '0'
        list dns '192.168.10.254'

config bridge-vlan
        option device 'br-lan'
        option vlan '1'
        list ports 'lan'
        list ports 'usblan'
        list ports 'wan:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '11'
        list ports 'wan:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '12'
        list ports 'wan:t'

config interface 'guest'
        option proto 'static'
        option device 'br-lan.11'
        option ipaddr '192.168.11.251'
        option netmask '255.255.255.0'
        option gateway '192.168.11.254'
        option defaultroute '0'
        option delegate '0'
        list dns '192.168.11.254'

config interface 'ipcam'
        option proto 'static'
        option device 'br-lan.12'
        option ipaddr '192.168.12.251'
        option netmask '255.255.255.0'
        option gateway '192.168.12.254'
        option delegate '0'
        option defaultroute '0'
        list dns '192.168.12.254'

config device
        option name 'br-lan.1'
        option type '8021q'
        option ifname 'br-lan'
        option vid '1'
        option ipv6 '0'

config device
        option name 'br-lan.11'
        option type '8021q'
        option ifname 'br-lan'
        option vid '11'
        option ipv6 '0'

config device
        option name 'br-lan.12'
        option type '8021q'
        option ifname 'br-lan'
        option vid '12'
        option ipv6 '0'

config interface 'wlan'
        option proto 'static'
        option device 'br-lan'
        option ipaddr '10.42.42.254'
        option netmask '255.255.255.0'
        option defaultroute '0'
        option delegate '0'

Hi @NullDev

It looks like you want the 802.11ah to act as a trunk for your network. You’ll find that historically most wireless interfaces do not support 802.1q as the frame format doesn’t match 802.11.

I believe 802.11ak added some support - by way of 4 address support as well as adding the ethertype to the LLC/SNAP frame.

While we support 4 address mode , I don’t believe we have support for VLAN trunks like this, and my own configuration attempts directly with the wireless interface haven’t worked either. I am still confirming with the team though, so will get back to you on that :slight_smile:

There is a work around that is recommended by other threads online for other wireless cards, see for example:

Basically, those threads are recommending encapsulation of the ethernet frames. Instead of using GRE, the HaLowLinks come with B.A.T.M.A.N installed which can be used for encapsulating the trunked traffic.

I can confirm that using B.A.T.M.A.N to encapsulate the trunk does work as expected. In my test network, I had VLANs 1,2, and 3 - with 3 untagged at the port the HaLowLink was attached too, and 1,2 tagged. VLAN2 has no DHCP server running on it - hence the unmanaged setting throughout the config below.
My HaLowLink was connected to the network at the wan port, reserving lan and usblan for management.

Important snippets of the configuration are as below.
On the AP side:

# /etc/config/network

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

config bridge-vlan
        option device 'br-wan'
        option vlan '3'
        list ports 'bat0'
        list ports 'wan:u*'

config bridge-vlan
        option device 'br-wan'
        option vlan '2'
        list ports 'bat0:t'
        list ports 'wan:t'

config bridge-vlan
        option device 'br-wan'
        option vlan '1'
        list ports 'bat0:t'
        list ports 'wan:t'

config interface 'vlan1'
        option proto 'dhcp'
        option device 'br-wan.1'

config interface 'vlan2'
        option proto 'none'
        option device 'br-wan.2'

config interface 'vlan3'
        option proto 'dhcp'
        option device 'br-wan.3'

config interface 'bat0'
        option proto 'batadv'
        option routing_algo 'BATMAN_IV'
        option gw_mode 'off'
        option hop_penalty '30'

config interface 'batman'
        option proto 'batadv_hardif'
        option master 'bat0'

# /etc/config/wireless

config wifi-iface 'wifinet6'
        option device 'radio0'
        option mode 'ap'
        option ssid 'trunkedhalow'
        option encryption 'sae'
        option sae_pwe '1'
        option key '<key>'
        option network 'batman'
        option wds '1'

And on the “Client” side:

# /etc/config/network
config device
        option name 'br-wan'
        option type 'bridge'
        list ports 'bat0'
        list ports 'wan'

config bridge-vlan
        option device 'br-wan'
        option vlan '3'
        list ports 'bat0:u*'
        list ports 'wan:u*'

config bridge-vlan
        option device 'br-wan'
        option vlan '2'
        list ports 'bat0:t'
        list ports 'wan:t'

config bridge-vlan
        option device 'br-wan'
        option vlan '1'
        list ports 'bat0:t'
        list ports 'wan:t'

config interface 'vlan2'
        option proto 'none'
        option device 'br-wan.2'

config interface 'vlan1'
        option proto 'dhcp'
        option device 'br-wan.1'

config interface 'vlan3'
        option proto 'dhcp'
        option device 'br-wan.3'

config interface 'bat0'
        option proto 'batadv'
        option routing_algo 'BATMAN_IV'
        option gw_mode 'off'
        option hop_penalty '30'

config interface 'batman'
        option proto 'batadv_hardif'
        option master 'bat0'

# /etc/config/wireless

# HaLow client
config wifi-iface 'wifinet2'
        option device 'radio1'
        option mode 'sta'
        option network 'batman'
        option ssid 'trunkedhalow'
        option encryption 'sae'
        option key '<key>'
        option wds '1'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'ap'
        option ssid 'halowlink2-916f.1'
        option encryption 'sae'
        option hidden '1'
        option key 'scale64spoke6zoom'
        option network 'vlan1'

# 2.4 APs for VLAN access
config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'ap'
        option ssid 'halowlink2.1'
        option encryption 'sae'
        option hidden '1'
        option key '<key>'
        option network 'vlan1'

config wifi-iface 'wifinet4'
        option device 'radio0'
        option mode 'ap'
        option ssid 'halowlink2.2'
        option encryption 'sae'
        option key '<key>'
        option network 'vlan2'

config wifi-iface 'wifinet5'
        option device 'radio0'
        option mode 'ap'
        option ssid 'halowlink2.3'
        option encryption 'sae'
        option key '<key>'
        option network 'vlan3'

I built this configuration entirely from the Web UI as well :slight_smile: