Network Management


we have a custom hardware which has 3 possible network connections:

  • cable (ethernet)
  • WiFi
  • GSM/Cellular

Currently I am investigating how to manage and configure this connections

We want to:

  • be able to configure cable and WiFi at runtime through web based configuration page
  • static gsm/cellular config
  • priority of connections: cable > WiFi > GSM/Cellular

Currently only cable network is working and we are using networkd for configuration. But I guess we need someting like NetworkManager or ConnMan in future.

Did anybody anything similar up to and has some advise?

Thanks and best regards

Like you, for my companies products, we created our own network manager script that drove our multiple network connections via networkd, wpa_supplicant, hostapd etc as we had highly specialised requirements.

To be honest, this is not really what I want to hear :slight_smile: Why did you choose a custom solution instead of using networkmanager? Is your management solution open source?


from what i recall networkmanager brought in a hell of a lot of dependencies that unnecessarily ballooned our image size with a lot of unrequired features which had cost implications, and still didn’t have all the requirements we needed as we have custom circuitry. Not to mention the odd quirk with propitiatory vendor blobs that sometimes need a hard reset via gpios. As we had to write a front end script anyway, it wasn’t much of a stretch to just have only the features we required in our own network-manager and guarantee it worked every-time consistently. Its just an executable bash script with cli interface, so i would be over-glamorising it by calling it a management solution :wink:

Its not open source no, as its only specific to our hardware. :slight_smile:

But obviously none of this may apply to your setup, and one of the existing networkmanagers may be enough for you.

thanks @dellgreen for sharing your experience.

We will start with networkmanager for now as it seems to cover all requirements.