#!/usr/bin/env python3
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from __future__ import print_function

import sys

import dbus
import flimflam

if len(sys.argv) < 2:
    print('Usage: %s <mtu>' % (sys.argv[0]))
    sys.exit(1)

(_, mtu) = sys.argv

flim = flimflam.FlimFlam(dbus.SystemBus())

for device in flim.GetObjectList('Device'):
    device_properties = device.GetProperties()

    for path in device_properties['IPConfigs']:
        ipconfig = flim.GetObjectInterface('IPConfig', path)
        ipconfig.SetProperty('Mtu', int(mtu))
