Signed-off-by: WATANABE Fumitaka <[email protected]>
Signed-off-by: Yuichi Ito <[email protected]>
---
 ryu/tests/switch/tester.py |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/ryu/tests/switch/tester.py b/ryu/tests/switch/tester.py
index 1a119e0..984b0b4 100644
--- a/ryu/tests/switch/tester.py
+++ b/ryu/tests/switch/tester.py
@@ -103,6 +103,7 @@ STATE_NO_PKTIN_REASON = 6
 STATE_GET_MATCH_COUNT = 7
 STATE_UNMATCH_PKT_SEND = 8
 STATE_FLOW_UNMATCH_CHK = 9
+STATE_INIT_METER = 10

 STATE_DISCONNECTED = 99

@@ -321,6 +322,7 @@ class OfTester(app_manager.RyuApp):
         # Test execute.
         try:
             # 0. Initialize.
+            self._test(STATE_INIT_METER)
             self._test(STATE_INIT_FLOW)
             # 1. Install flows.
             for flow in test.prerequisite:
@@ -395,6 +397,7 @@ class OfTester(app_manager.RyuApp):

     def _test(self, state, *args):
         test = {STATE_INIT_FLOW: self._test_initialize_flow,
+                STATE_INIT_METER: self._test_initialize_meter,
                 STATE_FLOW_INSTALL: self._test_flow_install,
                 STATE_FLOW_EXIST_CHK: self._test_flow_exist_check,
                 STATE_TARGET_PKT_COUNT: self._test_get_packet_count,
@@ -423,6 +426,9 @@ class OfTester(app_manager.RyuApp):
         msg = self.rcv_msgs[0]
         assert isinstance(msg, ofproto_v1_3_parser.OFPBarrierReply)

+    def _test_initialize_meter(self):
+        self.target_sw.del_test_meter()
+
     def _test_flow_install(self, flow):
         xid = self.target_sw.add_flow(flow_mod=flow)
         self.send_msg_xids.append(xid)
@@ -695,6 +701,7 @@ class OfTester(app_manager.RyuApp):
     @set_ev_cls(ofp_event.EventOFPBarrierReply, handler.MAIN_DISPATCHER)
     def barrier_reply_handler(self, ev):
         state_list = [STATE_INIT_FLOW,
+                      STATE_INIT_METER,
                       STATE_FLOW_INSTALL,
                       STATE_UNMATCH_PKT_SEND]
         if self.state in state_list:
@@ -786,6 +793,16 @@ class TargetSw(OpenFlowSw):
                                 out_group=ofp.OFPG_ANY)
         return self._send_msg(mod)

+    def del_test_meter(self):
+        """ Delete all meter entries. """
+        ofp = self.dp.ofproto
+        parser = self.dp.ofproto_parser
+        mod = parser.OFPMeterMod(self.dp,
+                                 command=ofp.OFPMC_DELETE,
+                                 flags=0,
+                                 meter_id=ofp.OFPM_ALL)
+        return self._send_msg(mod)
+
     def send_flow_stats(self):
         """ Get all flow. """
         ofp = self.dp.ofproto
--
1.7.10.4


------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to