summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSatoshi Kobayashi <satoshi-k@stratosphere.co.jp>2013-10-23 17:45:56 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2013-10-24 07:53:09 +0900
commit3b1f07680505a2403dac31e0c57b7dcc33697159 (patch)
treef21c025e72745929272af7c19b31f7347c5ea707
parent315101be5f2fdcdae781a9e3125edfd386137940 (diff)
of1.0, of1.2, of1.3: Modify the default of max_len in OFPActionOutput
The new default will send a packet to a controller. Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/ofproto/ofproto_v1_0_parser.py5
-rw-r--r--ryu/ofproto/ofproto_v1_2_parser.py3
-rw-r--r--ryu/ofproto/ofproto_v1_3_parser.py3
-rw-r--r--ryu/tests/unit/ofproto/test_parser_v10.py8
4 files changed, 12 insertions, 7 deletions
diff --git a/ryu/ofproto/ofproto_v1_0_parser.py b/ryu/ofproto/ofproto_v1_0_parser.py
index 8856fa16..e10236ef 100644
--- a/ryu/ofproto/ofproto_v1_0_parser.py
+++ b/ryu/ofproto/ofproto_v1_0_parser.py
@@ -253,7 +253,10 @@ class OFPAction(OFPActionHeader):
@OFPAction.register_action_type(ofproto_v1_0.OFPAT_OUTPUT,
ofproto_v1_0.OFP_ACTION_OUTPUT_SIZE)
class OFPActionOutput(OFPAction):
- def __init__(self, port, max_len=0):
+ # NOTE: The reason of this magic number (0xffe5)
+ # is because there is no good constant in of1.0.
+ # The same value as OFPCML_MAX of of1.2 and of1.3 is used.
+ def __init__(self, port, max_len=0xffe5):
super(OFPActionOutput, self).__init__()
self.port = port
self.max_len = max_len
diff --git a/ryu/ofproto/ofproto_v1_2_parser.py b/ryu/ofproto/ofproto_v1_2_parser.py
index 02159038..97ab485c 100644
--- a/ryu/ofproto/ofproto_v1_2_parser.py
+++ b/ryu/ofproto/ofproto_v1_2_parser.py
@@ -1112,7 +1112,8 @@ class OFPActionOutput(OFPAction):
max_len Max length to send to controller
================ ======================================================
"""
- def __init__(self, port, max_len=0, type_=None, len_=None):
+ def __init__(self, port, max_len=ofproto_v1_2.OFPCML_MAX,
+ type_=None, len_=None):
super(OFPActionOutput, self).__init__()
self.port = port
self.max_len = max_len
diff --git a/ryu/ofproto/ofproto_v1_3_parser.py b/ryu/ofproto/ofproto_v1_3_parser.py
index 8d35db2d..606ffa23 100644
--- a/ryu/ofproto/ofproto_v1_3_parser.py
+++ b/ryu/ofproto/ofproto_v1_3_parser.py
@@ -2587,7 +2587,8 @@ class OFPActionOutput(OFPAction):
max_len Max length to send to controller
================ ======================================================
"""
- def __init__(self, port, max_len=0, type_=None, len_=None):
+ def __init__(self, port, max_len=ofproto_v1_3.OFPCML_MAX,
+ type_=None, len_=None):
super(OFPActionOutput, self).__init__()
self.port = port
self.max_len = max_len
diff --git a/ryu/tests/unit/ofproto/test_parser_v10.py b/ryu/tests/unit/ofproto/test_parser_v10.py
index 81b96deb..8e593d29 100644
--- a/ryu/tests/unit/ofproto/test_parser_v10.py
+++ b/ryu/tests/unit/ofproto/test_parser_v10.py
@@ -3238,7 +3238,7 @@ class TestNXTFlowMod(unittest.TestCase):
eq_(ofproto_v1_0.OFPAT_OUTPUT, res[15])
eq_(ofproto_v1_0.OFP_ACTION_OUTPUT_SIZE, res[16])
eq_(self.port['val'], res[17])
- eq_(0, res[18])
+ eq_(0xffe5, res[18])
class TestNXTRoleRequest(unittest.TestCase):
@@ -4751,7 +4751,7 @@ class TestOFPPacketOut(unittest.TestCase):
"""
port = 0x2ae0
- actions = [OFPActionOutput(port)]
+ actions = [OFPActionOutput(port, max_len=0)]
def setUp(self):
pass
@@ -4888,7 +4888,7 @@ class TestOFPFlowMod(unittest.TestCase):
tp_dst['val'])
port = 0x2ae0
- actions = [OFPActionOutput(port)]
+ actions = [OFPActionOutput(port, max_len=1000)]
def setUp(self):
pass
@@ -4988,7 +4988,7 @@ class TestOFPFlowMod(unittest.TestCase):
eq_(ofproto_v1_0.OFPAT_OUTPUT, res[25])
eq_(ofproto_v1_0.OFP_ACTION_OUTPUT_SIZE, res[26])
eq_(self.port, res[27])
- eq_(0, res[28])
+ eq_(1000, res[28])
class TestOFPBarrierRequest(unittest.TestCase):