- we don't need register_cls() any more.
- register_instance() isn't called with dispatchers argument.
- set_ev_cls is always called with dispatchers argument.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
No reason that we use register_cls() for ofp handlers. We can do with
register_instance() with the others do.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
I don't see any reason why we need to handle those two OFP messages as
differently as the rest.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
We don't send OFPC_DELETE OFPFlowMod or OFPBarrier during
CONFIG_DISPATCHER so we don't need OFPFlowRemoved and OFPBarrierReply.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
We don't send OFPEchoRequest so there is no point to have OFPEchoReply
handler.
I think that sending OFPEchoRequest is useful for some cases
(e.g. finding problems on the switch quickly). But that should be
another helper dispatcher since not all applications need such.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
All protocols need to check if the data length is long enough so let's
set the minimum length in the same way.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
- we need to serialize in reverse order since some need to know
payload.
- TCP and UDP need the previous protocol info (IP) to calculate the
checksum.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fix the following:
ryu/ofproto/ofproto_v1_2_parser.py", line 1701, in parser
type_, length = struct.unpack_from('!HH', buf, offset)
TypeError: unpack_from() argument 1 must be string or read-only buffer, not bytearray
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
As discussed on the mailing list, there is no good packet library
(parses and builds various protocol packets). dpkt isn't flexible
enough (can't nicely handle stacked protocols such as vlan, mpls,
gre). NOX's one is nice but released under GPL3.
So we need our own packet library.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This is useful when debugging. it's difficult to debug without
backtrace.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Run this in the following way:
$ ryu-manager ryu/ryu/tests/integrated/test_request_reply_v12.py
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Ryu crashes when it finds an unknown match field in OFPMatch. Instead,
Ryu should just ignore it and continue to parse.
With this patch, Ryu uses OFPmatchField class for an unknown match
field and continue to parse.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tested-by: Simon Horman <horms@verge.net.au>
This patch simplifies integrated OVS test suite. Currently, we wait
for a barrier response before moving to the next test. However, we
don't need. The logic works like the following:
sending a flow mod (deleting all the flows)
sending a barrier
sending a flow mod (set up a flow to test)
sending a barrier
sending a flow stats
Then the reply handler for flow stats verifies the result and move to
the next.
You can run a test suite like:
$ ryu-manager ~/git/ryu/ryu/tests/integrated/test_add_flow_v12_actions.py
We can try two more suites:
ryu/tests/integrated/test_add_flow_v10.py
ryu/tests/integrated/test_add_flow_v12_matches.py
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fix the folloing problem in MTIPv6Src, MTIPv6Src, MTIPv6Dst, and
MTIPv6NdTarget's parsers:
File "/home/openflow/ryu/ryu/ofproto/ofproto_v1_2_parser.py", line 1705, in parser
field = OFPMatchField.parser(buf, offset)
File "/home/openflow/ryu/ryu/ofproto/ofproto_v1_2_parser.py", line 1934, in parser
field = cls_.field_parser(header, buf, offset)
File "/home/openflow/ryu/ryu/ofproto/ofproto_v1_2_parser.py", line 1949, in field_parser
(value,) = struct.unpack_from(cls.pack_str, buf, offset + 4)
ValueError: too many values to unpack
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>