Matter currently supports as first-class network technologies: Bluetooth, Thread, Wi-Fi, and Ethernet with Bluetooth reserved only for commissioning, and Thread, Wi-Fi, and Ethernet as either on-network commissioning networks and/or operational networks.
On Linux, BlueZ and the bluetoothd daemon is the de facto Bluetooth implementation.
For Thread, OpenThread is the de facto Thread implementation.
However, for Ethernet and Wi-Fi, things are more diverse.
In the nominal case (and currently in Matter), the Ethernet control plane has no management software whatsoever beyond the Linux kernel and the Wi-Fi control plane is handled by the wpa_supplicant daemon over D-Bus.
However, there are several further variants:
- Instead of wpa_supplicant, Wi-Fi may be managed by
iwd.
- Rather than being managed heterogeneously, as they are today in Matter, Ethernet, Wi-Fi, and, in some instances Cellular, may be further managed by one of:
- connman with:
- Ethernet sub-managed by connman itself.
- Wi-Fi sub-managed by either:
- iwd
- wpa_supplicant
- Cellular managed by oFono.
- NetworkManager
- Ethernet sub-managed by NetworkManager itself.
- Wi-Fi sub-managed by either:
- iwd
- wpa_supplicant
- Cellular managed by ModemManager.
- All of networking is managed by some proprietary product- or platform-specific entity for which any of the above may be a backing implementation.
- Regardless, like ConfigurationManager today, there may be a desire to default the Matter build to (1) or (2) but then set a custom ConnectivityManager at runtime with a potential
chip::DeviceLayer::SetConnectivityMgr.
There are several implementation implications of this:
- On the Linux platform, there should be a better ability to mix-and-match and/or override implementation details. For example, maintaining the default BlueZ Bluetooth implementation while substituting connman or NetworkManager for both Ethernet and Wi-Fi management or wpa_supplicant or iwd for Wi-Fi management.
- In the case of connman or NetworkManager, they own the configuration / provisioning state for the Wi-Fi network(s).
- Particularly for connman, scans do not necessarily return signal strength as RSSI / dBm. Rather, they return values on a qualitative scale from 0-100.
- Consequently, scan results should be able to indicate whether the results are quantitative, qualitative, both, or neither.
- There should likely be a
chip::DeviceLayer::SetConnectivityMgr peer to chip::DeviceLayer::SetConfigurationMgr.
Matter ConnectivityManager Linux Platform Refactoring tries to illustrate this a bit better.
/cc @holtmann, @denkenz
Matter currently supports as first-class network technologies: Bluetooth, Thread, Wi-Fi, and Ethernet with Bluetooth reserved only for commissioning, and Thread, Wi-Fi, and Ethernet as either on-network commissioning networks and/or operational networks.
On Linux, BlueZ and the
bluetoothddaemon is the de facto Bluetooth implementation.For Thread, OpenThread is the de facto Thread implementation.
However, for Ethernet and Wi-Fi, things are more diverse.
In the nominal case (and currently in Matter), the Ethernet control plane has no management software whatsoever beyond the Linux kernel and the Wi-Fi control plane is handled by the wpa_supplicant daemon over D-Bus.
However, there are several further variants:
iwd.chip::DeviceLayer::SetConnectivityMgr.There are several implementation implications of this:
chip::DeviceLayer::SetConnectivityMgrpeer tochip::DeviceLayer::SetConfigurationMgr.Matter ConnectivityManager Linux Platform Refactoring tries to illustrate this a bit better.
/cc @holtmann, @denkenz