Design
In addition to the Generic Routing Encapsulation (GRE), OpenSync can use the Multi-AP 4-address mode connections to establish wireless backhaul connections.
OpenSync relies on parts of the Multi-AP specification to set up the backhaul links. The most relevant chapters of the specification are Chapter 14 (Four-address MAC header format) for data plane behavior, and Chapter 7 (Multi-AP configuration) for control plane. OpenSync neither relies on nor uses the 1905 bits for the onboarding logic defined in the specification.
Requirements
Required Adaptations for the 4addr Clients
For the multihop OpenSync SDN-managed system, the ability to control wireless backhaul interfaces must be provided. For the controller to properly manage the in-home AP topologies, 4-address client connections (backhauls) must be represented as separate network interfaces.
Requirement: Every 4-address client on an AP interface must be represented through a separate netdev interface.
ap_vlan
ap_vlan_sta_addr
Semantics of the 4-address links must adhere to the Multi-AP specification. For reference, please look at the open source mac80211 driver and hostapd project to see how 4addr AP, AP_VLAN and STA interfaces are handled.
Appendix
Changes in OVSDB Schema
To enable multi-ap backhaul, the Wifi_VIF_Config and Wifi_VIF_State OVSDB tables requires these changes:
In the multi_ap field, use device type as defined by the Multi-AP specification: Backhaul STA, Backhaul BSS, or Fronthaul BSS.
"multi_ap": { "type": { "key": { "type": "string", "enum": [ "set", [ "none", "backhaul_sta", "backhaul_bss", "fronthaul_bss", "fronthaul_backhaul_bss" ] ] }, "min": 0, "max": 1 } },
In the mode field, an additional mode was added to define the interface which represents a 4-address client link for the Multi-AP functionality.
"mode": { "type": { "key": { "type": "string", "enum": [ "set", [ "ap", "ap_vlan", "monitor", "sta" ] ] }, "min": 0, "max": 1 }
Note: Each connected multi-ap client requires creation of a Wifi_VIF_State row with mode=ap_vlan.
In the ap_vlan_sta_addr field, define the MAC address of the connected station (Backhaul STA).
"ap_vlan_sta_addr": { "type": { "key": { "type": "string", "maxLength": 17 }, "min": 0, "max": 1 } }
Requirement: Added fields in Wifi_VIF_Config and Wifi_VIF_State OVSDB tables:
multi_ap, ap_vlan, ap_vlan_sta_addr