1530 Commits

Author SHA1 Message Date
YAMAMOTO Takashi
e3d08bd587 run_tests.sh: add of-config-cli to PYLINT_INCLUDE
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:53:32 +09:00
Wei-Li Tang
3423b2a20d ofctl_v1_3: let action group can be converted to string
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Reviewed-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:53:26 +09:00
Yuichi Ito
4030ec74b2 sw test tool: FIX: return the transaction id when flow entries were deleted
OfTester._test_initialize() expects the transaction id as a return
value of TargetSw.del_test_flow() for checking the error.  but this
method at current version does not return the transaction id.

this patch gets del_test_flow() to return the transaction id.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:53:19 +09:00
Yuichi Ito
29027c2db4 sw test tool: correct the comparison method to treat instructions as the set
according to OF spec, the instruction is treated as the set.  this
means that the order of instructions which flow_stat message returns
is inconstant.  this patch corrects the comparison method of
instructions by sorting in a particular order before comparison.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:53:12 +09:00
WATANABE Fumitaka
0a2a4b4008 sw test tool: correct error message
When test tool receives a malformed packet(length value is unusual,
 for example), detecting differences between expected and received is
 a failure.  In this case, 'Internal error.' is not suitable as a log
 message and should notify tool receives a malformed packet.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:52:35 +09:00
watanabe.fumitaka
66f825ac47 sw test tool: remove unnecessary debug code
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 19:49:40 +09:00
FUJITA Tomonori
c6343de851 of12: fix InstructionWriteMetadata json decoder
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-07 08:59:38 +09:00
watanabe.fumitaka
44e9a47fce sw test tool: fix wrong match(ipv6_exthdr) value of test file
The value of match(ipv6_exthdr) of the
 of13/match/39_IPV6_EXTHDR.json test file is wrong.
The correct value matching to a ipv6(ext_hdrs=[hop_opts,auth])
 is ipv6_exthdr=001000100=68.
This patch corrects it.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 17:16:49 +09:00
watanabe.fumitaka
8244d4f24b sw test tool: fix wrong instruction(write metadata) value of test files
The value of instruction(write metadata) of the test file is wrong.
In the table-miss test of of13/match/02_METADATA* test files,
 metadata=255 or 240(mask=0xf0) is specified as match.
In order to make it table-miss, it needed to write metadata except 255.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 17:16:48 +09:00
YAMAMOTO Takashi
8801af2974 test_ofctl_v1_3: replace a hack with ProtocolDesc
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:52 +09:00
YAMAMOTO Takashi
c01d5d45a8 test_parser_v12: replace a hack with ProtocolDesc
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:52 +09:00
YAMAMOTO Takashi
190abc8117 test_ofp_pktinfilter: replace a hack with ProtocolDesc
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:52 +09:00
YAMAMOTO Takashi
843e89e7dd ProtocolDesc: provide supported_ofp_version for ofp_handler
Reported-by: watanabe.fumitaka
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:52 +09:00
YAMAMOTO Takashi
bda747804b ofproto_protocol: fix UnboundLocalError
fix the following crash.
from Yuichi Ito.  minor editorialization by me.

> Traceback (most recent call last):
>   File "/usr/local/bin/ryu-manager", line 9, in <module>
>     load_entry_point('ryu==3.6', 'console_scripts', 'ryu-manager')()
>   File "/usr/local/lib/python2.7/dist-packages/ryu/cmd/manager.py", line 73, in main
>     services.extend(app_mgr.instantiate_apps(**contexts))
>   File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 368, in instantiate_apps
>     self._instantiate(app_name, cls, *args, **kwargs)                         >   File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 350, in _instantiate
>     ofproto_protocol.set_app_supported_versions(cls.OFP_VERSIONS)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_protocol.py", line 40, in set_app_supported_versions
>     _versions &= set(vers)
> UnboundLocalError: local variable '_versions' referenced before assignment

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:46 +09:00
YAMAMOTO Takashi
6973e84867 tests: add a test case for ofproto_protocol
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:46 +09:00
YAMAMOTO Takashi
b48772504f test_ofp_pktinfilter: simplify
stop inheriting RyuApp class to make the implementation of
other tests (tests.cmd.test_manager) easiler.
this module is for packet_in_filter decorator and does not
start ryu app anyway.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 15:57:46 +09:00
Wei-Li Tang
474538af5b OFPGroupMod: Fix OFPGC_* typo in examples
OFPFC_* enumerations are declared for flow mod commands, not for groups.

Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-06 06:25:25 +09:00
YAMAMOTO Takashi
bcce5c4e76 test_parser: replace a hack with ProtocolDesc
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 21:01:17 +09:00
YAMAMOTO Takashi
c0fd8a0a95 controller: use ProtocolDesc
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 20:59:07 +09:00
YAMAMOTO Takashi
5467e8b4a2 ofproto_protocol: provide a class to describe an openflow version
currently OFP classes takes the Datapath object, which is too complex
for this purpose.  this class, ProtocolDesc, is intended to be
a simpler replacement for that.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Reviewed-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 20:58:49 +09:00
YAMAMOTO Takashi
b857e803ca ofproto_v1_3_parser: import ofproto_v1_3 as 'ofproto'
as proposed while ago, import ofproto_v1_3 with a version agnostic name
to reduce differences between parser modules.

the name 'ofproto' was chosen to match with ofproto_v1_4_parser.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 13:22:59 +09:00
YAMAMOTO Takashi
5dcb10d7c3 ofproto_v1_2_parser: import ofproto_v1_2 as 'ofproto'
as proposed while ago, import ofproto_v1_2 with a version agnostic name
to reduce differences between parser modules.

the name 'ofproto' was chosen to match with ofproto_v1_4_parser.

update tests accordingly.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 13:22:58 +09:00
YAMAMOTO Takashi
b42dd0d7f3 ofproto_v1_0_parser: import ofproto_v1_0 as 'ofproto'
as proposed while ago, import ofproto_v1_0 with a version agnostic name
to reduce differences between parser modules.

the name 'ofproto' was chosen to match with ofproto_v1_4_parser.

update tests accordingly.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-05 13:22:57 +09:00
Simon Horman
455249b1c1 of14: Add to ofproto unit tests
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 20:54:35 +09:00
Simon Horman
9e999fad23 of14: Add port mod message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
cfc6c34e97 of14: Add queue stats request and reply message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
1309feca8e of14: Add port stats request and reply message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
d86df914c3 of14: Add generic OFPropBase class
Add generic OFPropBase class and make OFPPortProp a subclass of it.
This is to allow other properties classes to be implemented as subclasses
of OFPPropBase, simplifying their implementation.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
29f7f1fa28 of14: Rename OFPPortDescPropUnknown as OFPPortPropUnknown
This corrects what appears to be a typo as
OFPPortDescPropUnknown is never called but
OFPPortPropUnknown, which does not exist, is called.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
0742b5b19f of14: Add port status message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:50 +09:00
Simon Horman
4c119f9abe of14: Add meter mod message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
0f9bdca0fa of14: Add OFPMeterBandDscpRemark and OFPMeterBandExperimenter
These will be used my meter mod message support which
is added by a subsequent patch.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
b4895e1217 of14: Move OFPMeterBand* to above OFPMeterConfigStats
This is a purely cosmetic change to move some code to
the same location it is found in the of1.3 implementation,
aiding comparison between the two codebases. It also
move the code closer to where it is used.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
5bfc8255ba of14: Add table features stats request and reply message support
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
03a9196e43 of14: Add _ordered_fields to .4 OFPMatch
This appears to be necessary for wire tests
to pass if matches are in an order different
from that defined by Ryu.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
c8d6444e0c of14: Fix OFPInstructionWriteMetadata JSON decode
This is in line with 4a394aae2f1a3b82
("Fix OFPInstructionWriteMetadata JSON decode") which fixes
the following for OF1.3:

CLS <class 'ryu.ofproto.ofproto_v1_3_parser.OFPInstructionWriteMetadata'>
ARG {u'metadata_mask': 18446744073709551615L, u'type': 2, u'len': 24, u'metadata': 18446744069414584320L}
KWARG {u'type_': 2, u'metadata_mask': 18446744073709551615L, u'len_': 24, u'metadata': 18446744069414584320L}
Traceback (most recent call last):
  File "a.py", line 19, in <module>
    msg = ofproto_parser.ofp_msg_from_jsondict(dp, m)
  File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_parser.py", line 100, in ofp_msg_from_jsondict
    return cls.from_jsondict(v, datapath=dp)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 291, in from_jsondict
    kwargs = cls._restore_args(_mapdict_kv(decode, dict_))
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 46, in <lambda>
    _mapdict_kv = lambda f, d: dict([(k, f(k, v)) for k, v in d.items()])
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 290, in <lambda>
    decode = lambda k, x: cls._decode_value(k, x, decode_string)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 234, in _decode_value
    return cls._get_decoder(k, decode_string)(json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 242, in _decode
    v = map(_decode, json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 245, in _decode
    v = cls.obj_from_jsondict(json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 223, in obj_from_jsondict
    return obj_cls.from_jsondict(v)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 293, in from_jsondict
    return cls(**dict(kwargs, **additional_args))
TypeError: __init__() got an unexpected keyword argument 'type_'

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
1350b96078 of14: set default attributes for OFPMultipartRequest subclasses
This is in keeping with 1368fd6899722a9c ("of13: set default attributes for
OFPMultipartRequest subclasses").

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
Simon Horman
5c1ef5f239 of14: add some assertions
This is in keeping with
e08ac471d44db846 ("ofproto_v1_3_parser: put some assertions").

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-04 18:41:32 +09:00
FUJITA Tomonori
5ab61a2945 Ryu 3.6
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v3.6
2014-02-03 15:15:33 +09:00
FUJITA Tomonori
1368fd6899 of13: set default attributes for OFPMultipartRequest subclasses
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-02 00:50:13 +09:00
FUJITA Tomonori
0b8e9885aa of12: set default attributes for OFPStatsRequest subclasses
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-02 00:49:43 +09:00
FUJITA Tomonori
9f30e7d23a allow application to specify its logger name
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-01 23:57:13 +09:00
FUJITA Tomonori
bd074ef2b3 fix syslogd usage on OSX
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-02-01 23:57:13 +09:00
Satoshi Kobayashi
1b62801f49 vrrp: fix busy timer by the default parameter
Currently, default 'vrrp_statistics' is zero. Thereby
TimerEventSender() kicks VRRPRouter._EventStatisticsOut() without
waiting. Since CPU usage will be 100%, this is an unsuitable default
value.

Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-01-31 11:25:46 +09:00
FUJITA Tomonori
29716083b9 of14: fix OFPMatch from_jsondict method
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2014-01-29 16:31:21 +09:00
FUJITA Tomonori
49b84f4d2c of14: Fix OFPInstructionMeter json format
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2014-01-29 14:52:25 +09:00
FUJITA Tomonori
7ac5282974 of14: default ethernet type for PUSH_VLAN action
0x8100 in most cases.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2014-01-29 14:51:56 +09:00
FUJITA Tomonori
1f590c0411 of14: set default ethernet types for MPLS actions
0x8847 (MPLS) for PUSH_MPLS
0x0800 (IP) for POP_MPLS

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2014-01-29 14:51:33 +09:00
FUJITA Tomonori
84202a8561 of14: remove of1.2/1.3 old SetField aciton API
No reason to support the old awkward API for shiny OF1.4.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2014-01-29 14:51:10 +09:00
FUJITA Tomonori
1356d2c7c0 doc: announce OF1.4 support in README
We support good a good portion of OF1.4.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-01-29 14:50:40 +09:00