[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lnst-developers
Subject:    [PATCH lnst 3/8] InterfaceAPI: Adding slave IPv6 route support
From:       Elad Raz <e () eladraz ! com>
Date:       2016-08-29 8:14:39
Message-ID: 1472458484-5386-4-git-send-email-e () eladraz ! com
[Download RAW message or body]

Adding ipv6 boolean argument to decide whether a route is IPv6 route or IPv4.

Signed-off-by: Elad Raz <eladr@mellanox.com>
---
 lnst/Controller/Machine.py     | 8 ++++----
 lnst/Controller/Task.py        | 4 ++--
 lnst/Slave/InterfaceManager.py | 8 ++++----
 lnst/Slave/NetTestSlave.py     | 8 ++++----
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 3725de6..dd9d5ec 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -759,13 +759,13 @@ class Interface(object):
         self._machine._rpc_call_x(self._netns, "set_addresses",
                                   self._id, ips)
 
-    def add_route(self, dest):
+    def add_route(self, dest, ipv6 = False):
         self._machine._rpc_call_x(self._netns, "add_route",
-                                  self._id, dest)
+                                  self._id, dest, ipv6)
 
-    def del_route(self, dest):
+    def del_route(self, dest, ipv6 = False):
         self._machine._rpc_call_x(self._netns, "del_route",
-                                  self._id, dest)
+                                  self._id, dest, ipv6)
 
     def update_from_slave(self):
         if_data = self._machine._rpc_call_x(self._netns, "get_if_data",
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index 6f36e86..9be2d14 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -620,10 +620,10 @@ class InterfaceAPI(object):
         self._if.set_addresses(ips)
 
     def enable_multicast(self):
-        self._if.add_route("224.0.0.0/4")
+        self._if.add_route("224.0.0.0/4", False)
 
     def disable_multicast(self):
-        self._if.del_route("224.0.0.0/4")
+        self._if.del_route("224.0.0.0/4", False)
 
     def destroy(self):
         self._host._remove_iface(self)
diff --git a/lnst/Slave/InterfaceManager.py b/lnst/Slave/InterfaceManager.py
index dbb0771..f8da5eb 100644
--- a/lnst/Slave/InterfaceManager.py
+++ b/lnst/Slave/InterfaceManager.py
@@ -654,11 +654,11 @@ class Device(object):
         for address in ips:
             exec_cmd("ip addr add %s dev %s" % (address, self._name))
 
-    def add_route(self, dest):
-        exec_cmd("ip route add %s dev %s" % (dest, self._name))
+    def add_route(self, dest, ipv6):
+        exec_cmd("ip %s route add %s dev %s" % ("-6" if ipv6 else "", dest, self._name))
 
-    def del_route(self, dest):
-        exec_cmd("ip route del %s dev %s" % (dest, self._name))
+    def del_route(self, dest, ipv6):
+        exec_cmd("ip %s route del %s dev %s" % ("-6" if ipv6 else "", dest, self._name))
 
     def set_netns(self, netns):
         self._netns = netns
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index b18f47d..47202d3 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -208,20 +208,20 @@ class SlaveMethods:
         dev.set_addresses(ips)
         return True
 
-    def add_route(self, if_id, dest):
+    def add_route(self, if_id, dest, ipv6):
         dev = self._if_manager.get_mapped_device(if_id)
         if dev is None:
             logging.error("Device with id '%s' not found." % if_id)
             return False
-        dev.add_route(dest)
+        dev.add_route(dest, ipv6)
         return True
 
-    def del_route(self, if_id, dest):
+    def del_route(self, if_id, dest, ipv6):
         dev = self._if_manager.get_mapped_device(if_id)
         if dev is None:
             logging.error("Device with id '%s' not found." % if_id)
             return False
-        dev.del_route(dest)
+        dev.del_route(dest, ipv6)
         return True
 
     def set_device_up(self, if_id):
-- 
2.4.3
_______________________________________________
LNST-developers mailing list
lnst-developers@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/lnst-developers@lists.fedorahosted.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic