From: Jiri Pirko <jiri(a)mellanox.com>
Allow tasks to get devlink and devlink port name.
Signed-off-by: Jiri Pirko <jiri(a)mellanox.com>
---
lnst/Controller/Machine.py | 30 ++++++++++++++++++++++++++++++
lnst/Controller/Task.py | 12 ++++++++++++
2 files changed, 42 insertions(+)
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 3e730bd..3725de6 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -606,6 +606,7 @@ class Interface(object):
self._peer = None
self._mtu = None
self._driver = None
+ self._devlink = None
def get_id(self):
return self._id
@@ -779,6 +780,7 @@ class Interface(object):
self.set_devname(if_data["name"])
self._mtu = if_data["mtu"]
self._driver = if_data["driver"]
+ self._devlink = if_data["devlink"]
def get_config(self):
config = {"id": self._id,
@@ -921,6 +923,18 @@ class Interface(object):
self.del_slave(self._machine.get_interface(if_id))
self._machine._rpc_call_x(self._netns, "slave_del", self._id, if_id)
+ def get_devlink_name(self):
+ if self._devlink:
+ return "%s/%s" % (self._devlink["bus_name"],
+ self._devlink["dev_name"])
+ return None
+
+ def get_devlink_port_name(self):
+ if self._devlink:
+ return "%s/%u" % (self.get_devlink_name(),
+ self._devlink["port_index"])
+ return None
+
class StaticInterface(Interface):
""" Static interface
@@ -1200,6 +1214,7 @@ class Device(object):
self._peer = None
self._mtu = None
self._driver = None
+ self._devlink = None
self._machine = machine
@@ -1220,6 +1235,7 @@ class Device(object):
self._peer = data["peer"]
self._mtu = data["mtu"]
self._driver = data["driver"]
+ self._devlink = data["driver"]
return True
def slave_update(self):
@@ -1298,3 +1314,17 @@ class Device(object):
@pre_call_decorate
def get_driver(self):
return self._driver
+
+ @pre_call_decorate
+ def get_devlink_name(self):
+ if self._devlink:
+ return "%s/%s" % (self._devlink["bus_name"],
+ self._devlink["dev_name"])
+ return None
+
+ @pre_call_decorate
+ def get_devlink_port_name(self):
+ if self._devlink:
+ return "%s/%u" % (self.get_devlink_name(),
+ self._devlink["port_index"])
+ return None
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index 178d774..6f36e86 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -532,6 +532,12 @@ class DeviceAPI(object):
def get_driver(self):
return self._dev.get_driver()
+ def get_devlink_name(self):
+ return self._dev.get_devlink_name()
+
+ def get_devlink_port_name(self):
+ return self._dev.get_devlink_port_name()
+
class InterfaceAPI(object):
def __init__(self, interface, host):
self._if = interface
@@ -673,6 +679,12 @@ class InterfaceAPI(object):
def slave_del(self, slave_id):
return self._if.slave_del(slave_id)
+ def get_devlink_name(self):
+ return self._if.get_devlink_name()
+
+ def get_devlink_port_name(self):
+ return self._if.get_devlink_port_name()
+
class ModuleAPI(object):
""" An API class representing a module. """
--
2.5.5