Вероятнее всего, python используя какой-нибудь его биндинг для network-manager.
Но ничто не мешает вам, и на C++ писать, например, и общаться с network-manager через d-bus.
Или вообще запускать nmcli как внешний процесс с нужными параметрами.
Если, при этом, не нужно менять конфигурацию соединения, и нет сложного расписания, то вообще можно обойтись парой скриптов на bash и кроном.