Add function to set MAC address
Add function SetHwAddress to set the MAC address via the fw_setenv command
diff --git a/netman.py b/netman.py
index 8f0fb80..3978cef 100755
--- a/netman.py
+++ b/netman.py
@@ -16,25 +16,25 @@
OBJ_NAME = '/org/openbmc/NetworkManager/Interface'
network_providers = {
- 'networkd' : {
- 'bus_name' : 'org.freedesktop.network1',
- 'ip_object_name' : '/org/freedesktop/network1/network/default',
- 'hw_object_name' : '/org/freedesktop/network1/link/_31',
- 'interface_name' : 'org.freedesktop.network1.Network',
- 'method' : 'org.freedesktop.network1.Network.SetAddr'
- },
- 'NetworkManager' : {
- 'bus_name' : 'org.freedesktop.NetworkManager',
- 'ip_object_name' : '/org/freedesktop/NetworkManager',
- 'hw_object_name' : '/org/freedesktop/NetworkManager',
- 'interface_name' : 'org.freedesktop.NetworkManager',
- 'method' : 'org.freedesktop.NetworkManager' # FIXME:
- },
+ 'networkd' : {
+ 'bus_name' : 'org.freedesktop.network1',
+ 'ip_object_name' : '/org/freedesktop/network1/network/default',
+ 'hw_object_name' : '/org/freedesktop/network1/link/_31',
+ 'interface_name' : 'org.freedesktop.network1.Network',
+ 'method' : 'org.freedesktop.network1.Network.SetAddr'
+ },
+ 'NetworkManager' : {
+ 'bus_name' : 'org.freedesktop.NetworkManager',
+ 'ip_object_name' : '/org/freedesktop/NetworkManager',
+ 'hw_object_name' : '/org/freedesktop/NetworkManager',
+ 'interface_name' : 'org.freedesktop.NetworkManager',
+ 'method' : 'org.freedesktop.NetworkManager' # FIXME:
+ },
}
def getPrefixLen(mask):
- prefixLen = sum([bin(int(x)).count('1') for x in mask.split('.')])
- return prefixLen
+ prefixLen = sum([bin(int(x)).count('1') for x in mask.split('.')])
+ return prefixLen
class IfAddr ():
def __init__ (self, family, scope, flags, prefixlen, addr, gw):
@@ -132,6 +132,11 @@
def GetHwAddress (self, device):
return self._getAddr ("mac", device)
+ @dbus.service.method(DBUS_NAME, "s", "i")
+ def SetHwAddress (self, mac):
+ rc = subprocess.call(["fw_setenv", "ethaddr", mac])
+ return rc
+
def main():
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
@@ -144,3 +149,4 @@
if __name__ == '__main__':
sys.exit(main())
+