Handling WiFi vs. Ethernet Clients in Gateway Offline Mode
On the OpenSync gateway nodes, WiFi home AP interfaces are pre-added to the LAN bridge. When the WiFi home AP interfaces are configured, either when online or in the gateway offline mode, the WiFi clients which are connected to the home AP interfaces get their IP addresses via DHCP.
Read more about WiFi clients handling in the gateway offline mode here: https://opensync.atlassian.net/wiki/spaces/OCC/pages/39885111431/Cloudless+Router+Operation
In contrast, Ethernet ports are not pre-added to the LAN bridge. Controller adds an Ethernet port to the LAN bridge when an Ethernet client is detected on that port.
The conditions used by the controller in this case are:
if_type == "eth" && has_L2 == true && has_l3 == false && loop != true
Because the controller is responsible for adding Ethernet ports to the LAN bridge, Ethernet clients were previously unable to connect in the gateway offline mode.
Enabling Ethernet Client Connectivity in Gateway Offline Mode
With the introduction of cloudless router operation for Ethernet clients, connecting the Ethernet clients became possible even without controller connectivity.
Implemented support includes:
Additional changes in WANO. The condition
if_type == "eth" && has_L2 == true && has_l3 == false && loop != true
is not enough since there is a possibility to have a "dead L3 uplink" port with working L2, but no actual Ethernet client. WANO already was detecting Ethernet clients: what was added was notifying about the Ethernet client detection via OVSDB.CM: Enabled gateway offline mode for the active router (limp state) as well. This is needed for the PM to know when to handle the Ethernet clients (when entering offline mode even without a reboot).
PM:
If rebooted without connectivity and gateway offline mode is enabled: apply the stored OVSDB config and handle the Ethernet clients.
If configured by the controller and connectivity is lost: do not apply the stored OVSDB config (no need to) and only handle the Ethernet clients.
The conditions PM uses to detect an Ethernet client and to add a port to the OVS bridge are the same as those used by the controller (Connection_Manager_Uplink: if_type == "eth" && has_L2 == true && has_l3 == false && loop != true
) with an additional check Connection_Manager_Uplink:eth_client (set by WANO).
Ethernet Client Requirements
Ethernet client already connected before the gateway offline mode: maintains client connectivity – can ping other connected clients.
Ethernet client can connect back when reconnected during the gateway offline mode.
Gateway can connect a new wired client during the gateway offline mode.
An existing or new wired client can connect (back) / DHCP on a node power-cycle when entering the gateway offline mode.