Signed-off-by: Satoshi Fujimoto <[email protected]>
---
 .../unit/services/protocols/bgp/utils/test_bgp.py  | 79 ++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py 
b/ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py
index 121239f..6933a28 100644
--- a/ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py
+++ b/ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py
@@ -24,11 +24,14 @@ from ryu.lib.packet.bgp import (
     BGPFlowSpecTrafficActionCommunity,
     BGPFlowSpecRedirectCommunity,
     BGPFlowSpecTrafficMarkingCommunity,
+    BGPFlowSpecVlanActionCommunity,
+    BGPFlowSpecTPIDActionCommunity,
 )
 
 from ryu.services.protocols.bgp.core import BgpCoreError
 from ryu.services.protocols.bgp.utils.bgp import create_v4flowspec_actions
 from ryu.services.protocols.bgp.utils.bgp import create_v6flowspec_actions
+from ryu.services.protocols.bgp.utils.bgp import create_l2vpnflowspec_actions
 
 
 LOG = logging.getLogger(__name__)
@@ -130,3 +133,79 @@ class Test_Utils_BGP(unittest.TestCase):
         }
         expected_communities = []
         self._test_create_v6flowspec_actions(actions, expected_communities)
+
+    def _test_create_l2vpnflowspec_actions(self, actions, 
expected_communities):
+        communities = create_l2vpnflowspec_actions(actions)
+        expected_communities.sort(key=lambda x: x.subtype)
+        communities.sort(key=lambda x: x.subtype)
+        eq_(str(expected_communities), str(communities))
+
+    def test_create_l2vpnflowspec_actions_all_actions(self):
+        actions = {
+            'traffic_rate': {
+                'as_number': 0,
+                'rate_info': 100.0,
+            },
+            'traffic_action': {
+                'action': 3,
+            },
+            'redirect': {
+                'as_number': 10,
+                'local_administrator': 10,
+            },
+            'traffic_marking': {
+                'dscp': 24,
+            },
+            'vlan_action': {
+                'actions_1': (BGPFlowSpecVlanActionCommunity.POP |
+                              BGPFlowSpecVlanActionCommunity.SWAP),
+                'vlan_1': 3000,
+                'cos_1': 3,
+                'actions_2': BGPFlowSpecVlanActionCommunity.PUSH,
+                'vlan_2': 4000,
+                'cos_2': 2,
+            },
+            'tpid_action': {
+                'actions': (BGPFlowSpecTPIDActionCommunity.TI |
+                            BGPFlowSpecTPIDActionCommunity.TO),
+                'tpid_1': 5,
+                'tpid_2': 6,
+            }
+        }
+        expected_communities = [
+            BGPFlowSpecTrafficRateCommunity(as_number=0, rate_info=100.0),
+            BGPFlowSpecTrafficActionCommunity(action=3),
+            BGPFlowSpecRedirectCommunity(as_number=10, local_administrator=10),
+            BGPFlowSpecTrafficMarkingCommunity(dscp=24),
+            BGPFlowSpecVlanActionCommunity(
+                actions_1=(BGPFlowSpecVlanActionCommunity.POP |
+                           BGPFlowSpecVlanActionCommunity.SWAP),
+                vlan_1=3000,
+                cos_1=3,
+                actions_2=BGPFlowSpecVlanActionCommunity.PUSH,
+                vlan_2=4000,
+                cos_2=2,
+            ),
+            BGPFlowSpecTPIDActionCommunity(
+                actions=(BGPFlowSpecTPIDActionCommunity.TI |
+                         BGPFlowSpecTPIDActionCommunity.TO),
+                tpid_1=5,
+                tpid_2=6,
+            ),
+        ]
+        self._test_create_l2vpnflowspec_actions(actions, expected_communities)
+
+    def test_create_l2vpnflowspec_actions_without_actions(self):
+        actions = None
+        expected_communities = []
+        self._test_create_l2vpnflowspec_actions(actions, expected_communities)
+
+    @raises(ValueError)
+    def test_create_l2vpnflowspec_actions_not_exist_actions(self):
+        actions = {
+            'traffic_test': {
+                'test': 10,
+            },
+        }
+        expected_communities = []
+        self._test_create_l2vpnflowspec_actions(actions, expected_communities)
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to