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

List:       lnst-developers
Subject:    [PATCH v2 3/4] InterfaceAPI: Allow user to configure flooding on interface
From:       Ido Schimmel <idosch () mellanox ! com>
Date:       2016-01-20 16:10:37
Message-ID: 1453306238-19041-3-git-send-email-idosch () mellanox ! com
[Download RAW message or body]

When a netdev is member in a bridge it's possible for the user to
specify whether unicast packets for which there is no matching FDB entry
should be flooded through the port or not.

Add the set_br_flooding() method, which configures flooding.

Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
v1->v2:
	* No change.
---
 lnst/Controller/Machine.py | 4 ++++
 lnst/Controller/Task.py    | 3 +++
 lnst/Slave/BridgeTool.py   | 3 +++
 lnst/Slave/NetTestSlave.py | 9 +++++++++
 4 files changed, 19 insertions(+)

diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 2213f03..36f5e9b 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -796,6 +796,10 @@ class Interface(object):
         self._machine._rpc_call_x(self._netns, "set_br_learning_sync", self._id,
                                   br_learning_sync_info)
 
+    def set_br_flooding(self, br_flooding_info):
+        self._machine._rpc_call_x(self._netns, "set_br_flooding", self._id,
+                                  br_flooding_info)
+
     def set_speed(self, speed):
         self._machine._rpc_call_x(self._netns, "set_speed", self._id, speed)
 
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index 80e6e1b..9054471 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -573,6 +573,9 @@ class InterfaceAPI(object):
         _self._if.set_br_learning_sync({"on": on, "self": self,
                                         "master": master})
 
+    def set_br_flooding(_self, on=True, self=False, master=False):
+        _self._if.set_br_flooding({"on": on, "self": self, "master": master})
+
     def set_speed(self, speed):
         return self._if.set_speed(speed)
 
diff --git a/lnst/Slave/BridgeTool.py b/lnst/Slave/BridgeTool.py
index 71f80cd..fea9201 100644
--- a/lnst/Slave/BridgeTool.py
+++ b/lnst/Slave/BridgeTool.py
@@ -105,3 +105,6 @@ class BridgeTool:
 
     def set_learning_sync(self, br_learning_sync_info):
         return self._set_link("learning_sync", br_learning_sync_info)
+
+    def set_flooding(self, br_flooding_info):
+        return self._set_link("flood", br_flooding_info)
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index 830dc00..1908bfe 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -763,6 +763,15 @@ class SlaveMethods:
         brt.set_learning_sync(br_learning_sync_info)
         return True
 
+    def set_br_flooding(self, if_id, br_flooding_info):
+        dev = self._if_manager.get_mapped_device(if_id)
+        if not dev:
+            logging.error("Device with id '%s' not found." % if_id)
+            return False
+        brt = BridgeTool(dev.get_name())
+        brt.set_flooding(br_flooding_info)
+        return True
+
     def set_speed(self, if_id, speed):
         dev = self._if_manager.get_mapped_device(if_id)
         if dev is not None:
-- 
2.4.10
_______________________________________________
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