Signed-off-by: Petr Machata <petrm(a)mellanox.com>
Reviewed-by: Yotam Gigi <yotamg(a)mellanox.com>
---
lnst/Controller/Task.py | 3 +++
lnst/Slave/NetConfigDevice.py | 14 +++++++++++++-
schema-recipe.rng | 8 ++++++++
3 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index a5fb0d3..1b18779 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -495,6 +495,9 @@ class HostAPI(object):
return self._add_iface("vxlan", if_id, netns, ip, options, slaves)
+ def create_dummy(self, if_id=None, netns=None, ip=None):
+ return self._add_iface("dummy", if_id, netns, ip, {}, [])
+
def enable_service(self, service):
return self._m.enable_service(service)
diff --git a/lnst/Slave/NetConfigDevice.py b/lnst/Slave/NetConfigDevice.py
index cadce06..e47d80a 100644
--- a/lnst/Slave/NetConfigDevice.py
+++ b/lnst/Slave/NetConfigDevice.py
@@ -249,6 +249,17 @@ class NetConfigDeviceBridge(NetConfigDeviceGeneric):
self._dev_config["slaves"].remove(slave_id)
self._add_rm_port("del", slave_id)
+class NetConfigDeviceDummy(NetConfigDeviceGeneric):
+ _modulename = ""
+
+ def create(self):
+ dev_name = self._dev_config["name"]
+ exec_cmd("ip link add %s type dummy" % dev_name)
+
+ def destroy(self):
+ dev_name = self._dev_config["name"]
+ exec_cmd("ip link del %s" % dev_name)
+
class NetConfigDeviceMacvlan(NetConfigDeviceGeneric):
_modulename = "macvlan"
@@ -774,7 +785,8 @@ type_class_mapping = {
"vti": NetConfigDeviceVti,
"vti6": NetConfigDeviceVti6,
"lo": NetConfigDeviceLoopback,
- "vxlan": NetConfigDeviceVxlan
+ "vxlan": NetConfigDeviceVxlan,
+ "dummy": NetConfigDeviceDummy,
}
def NetConfigDevice(dev_config, if_manager):
diff --git a/schema-recipe.rng b/schema-recipe.rng
index 1a40a02..1e845bf 100644
--- a/schema-recipe.rng
+++ b/schema-recipe.rng
@@ -140,6 +140,7 @@
<ref name="vti6"/>
<ref name="lo"/>
<ref name="vxlan"/>
+ <ref name="dummy"/>
</choice>
</zeroOrMore>
</element>
@@ -353,6 +354,13 @@
</element>
</define>
+ <define name="dummy">
+ <element name="dummy">
+ <attribute name="id"/>
+ <ref name="softdevice"/>
+ </element>
+ </define>
+
<define name="softdevice">
<optional>
<attribute name="netns"/>
--
2.4.11