summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2015-10-11ofproto_v1_0_parser: Add comments for OF1.0 protocolYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-11doc: Handle ERROR of unexpected indentationYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-11test_ip: Add tests for IPv4-int conversionYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-11of10: Add __contains__ method into OFPMatchYusuke Iwase
To support query whether a match instance contains a specific field, This patch adds __contains__ method into OFPMatch. Example: >>> if 'nw_src' in match: ... print match['nw_src'] ... '192.168.0.1' Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-11test_parser_v10: Fix wildcards param for unit testYusuke Iwase
If all field is specified, wildcards field should be lower than (NW_DST_WILDCARD << 14 | NW_SRC_WILDCARD << 8), but the given value of this test case is larger than this value. So some test cases which check the wildcards field raise errors. This patch fixes the wildcards parameter to the possible value. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-11of10: Support human readable MAC/IPv4 address in OFPMatchYusuke Iwase
In OF1.0, OFPMatch is required to specify MAC address as a binary type value and to specify IPv4 Address as an int type value. This behavior is differ from that in OF1.2+. This patch makes OFPMatch in OF1.0 enable to support human readable representation of MAC/IPv4 address like OF1.2+ API. The current API in OF1.0: >>> match = parser.OFPMatch(dl_src=b'\x01\x02\x03\x04\x05\x06', ... nw_src=167772163) >>> match.dl_src '\x01\x02\x03\x04\x05\x06' >>> match.nw_src 167772163 The introduced API (the same as OF1.2+ API): >>> match = parser.OFPMatch(dl_dst='aa:bb:cc:dd:ee:ff', ... nw_dst='192.168.0.1') >>> match['dl_dst'] 'aa:bb:cc:dd:ee:ff' >>> match['nw_dst'] '192.168.0.1' Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-02Ryu 3.26FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-01switch/tester: Add sleep interval for each test caseYusuke Iwase
Open vSwitch, which installed with the kernel module, has a cache in the kernel for the flow table and the cached flow entries have a hard timeout of 5 seconds. tester.py attempts to confirm its flow modifications with a barrier request, but Open vSwitch sends a barrier reply back regardless of the the state of the cached entries in the kernel module. So in some cases, Open vSwtich needs the interval between each test case. This patch adds an option for setting interval for the workaround. Note: With a zero seconds interval, the whole test suite runs in 20-30 minutes, but with a 10 seconds interval between each test, the entire suite takes 3-4 hours. Reported-by: Alan Deikman <alan.deikman@znyx.com> Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-30ofproto_v1_[45]_parser: Add parser() for OFPRequestForwardYusuke Iwase
OFPT_REQUESTFORWARD is defined as Asynchronous Message which sent from OF-Switch to Controller, but currently, OFPRequestForward class does not have parser() method. This patch adds parser() method into OFPRequestForward class and OFPGroupMod/OFPMeterMod classes which forwarded by OFPRequestForward message. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-28remove old Ryu OpenStack plugin stuffFUJITA Tomonori
The plugin that uses these was removed from OpenStack long ago. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-28packet: lldp: python3 fixFUJITA Tomonori
iterator doesn't has next method. Reported-by: Takeshi <a86487817@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Tested-by: Takeshi <a86487817@gmail.com>
2015-09-23bgp: support disabling listening socketFUJITA Tomonori
Setting bgp_server_port to 0 disables listening socket Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-21bgp: python3 fixesFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18test_parser_ofpmatch: Add tests for Experimenter OXMsYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18OXM/OXS: Enable to sort Experimenter oxm_type/oxs_type in Python3Yusuke Iwase
The representation of oxm_type/oxs_type is an int type value if OXM/OXS in OpenFlowBasic class, but a tuple type value if in Experimenter class. So, Python3 may fail to sort a list of OXM/OXS fields by using oxm_type/oxs_type. This patch adds 'key' parameter into sort() method and enables to sort a list which contains both OpenFlowBasic and Experimenter. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18test_parser_ofpmatch: Add test cases for OF1.4 and OF1.5Yusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18.travis.yml: Suppress the output of unit testsYusuke Iwase
Because Travis-CI has a limit of the log file to 4MB, this patch suppress the output of unit tests by setting NOSE_VERBOSE in tox.ini. tox.ini does not effect when running run_tests.sh locally, so please run run_tests.sh, if the full log messages are needed. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18ofproto: Sort out the NX OXMs definitionYusuke Iwase
Because the Nicira Experimenter OXMs are independent of the OpenFlow version, this patch separates the NX OXMs definitions into nx_match.py and enable to use the NX OXM in all OpenFlow 1.2+. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18ofproto: Refine module importYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18ofproto_v1_[45]_parser: Remove unused OFPMatchFieldYusuke Iwase
OFPMatchField and its subclasses are parser classes for old API of OFPMatch, but in OF1.4+, OFPMatch drops old API supports. This patch removes these unused classes from ofproto_v1_[45]_parser.py Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18doc/ofproto_v1_2_ref: Add description for Port StructuresMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18doc/ofproto_v1_3_ref: Add description for Port StructuresMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18doc/ofproto_v1_4_ref: Add description for Port StructuresMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-18doc/ofproto_v1_5_ref: Add description for Port Structures and Controller ↵Minoru TAKAHASHI
Status Structure Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-17Examples contain invalid MAC addressesSteffen Gebert
The documentation for `OFPActionSetField()` contains the following example: set_field = OFPActionSetField(eth_src="00:00:00:00:00") However, this MAC address lacks one byte. Thus add it.
2015-09-15ofproto_v1_0_parser: Add __getitem__ method into OFPMatchYusuke Iwase
Currently, ofproto_v1_0_parser does not support query with a match field name like ofproto_v1_[2345]_parser support. This patch adds __getitem__ method in order to get the match value witch a match field name. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-15test_parser_v10: Add test case for __getitem__ of OFPMatchYusuke Iwase
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-15doc/app/ofctl_rest: Add command examples for WRITE/CLEAR_ACTIONSMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-15Uncap pbr versionIWAMOTO Toshihiro
This reverts commit 9414322f307fe607f7fefb8611871bbf810b5ee4, as the workaround for readthedocs seems to be no longer necessary. Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-15topology: Fixed conditional statementChia-Lin Cho
_is_edge_port(port) in switches.py will return `False` if the port belongs to link. Signed-off-by: Chia-Lin Cho <fox91119@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-15ofproto_v1_5: Add OFPBAC_BAD_METERYusuke Iwase
OpenFlow 1.5.1 adds new error OFPBAC_BAD_METER for bad meter in flow-mod (EXT-530). Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10bgp: enable nexthop_self for locally generated routesISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10test_ofctl: improving readabilityMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10test_ofctl: Add unit test for OFPIT_[WRITE/CLEAR]_ACTIONSMinoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10ofctl_v1_[23]: Add support for OFPIT_[WRITE/CLEAR]_ACTIONSMinoru TAKAHASHI
This patch makes ofctl_rest enable setting instruction type of OFPIT_WRITE/CLEAR_ACTIONS. e.g.) $ curl -X POST -d '{ "dpid": 1, "cookie": 1, "cookie_mask": 1, "table_id": 0, "idle_timeout": 30, "hard_timeout": 30, "priority": 11111, "flags": 1, "match":{ "in_port":1 }, "actions":[ { "type":"WRITE_ACTIONS", "actions":[ { "type":"POP_VLAN", }, { "type":"OUTPUT", "port": 2 } ] } ] }' http://localhost:8080/stats/flowentry/add $ curl -X POST -d '{ "dpid": 1, "cookie": 1, "cookie_mask": 1, "table_id": 0, "idle_timeout": 30, "hard_timeout": 30, "priority": 11111, "flags": 1, "match":{ "in_port":1 }, "actions":[ { "type":"CLEAR_ACTIONS" } ] }' http://localhost:8080/stats/flowentry/add Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10ofp_handler: Output human readable error msg ev logYusuke Iwase
Currently, the error message event log which is output by ofp_handler.py is difficult to understand what is wrong in the previous OpenFlow request message. This patch improves the readability of this output to find out errors. *** Output Example *** EventOFPErrorMsg received. version=0x4, msg_type=0x1, msg_len=0x4c, xid=0xecc7f07b `-- msg_type: OFPT_ERROR(1) OFPErrorMsg(type=0x4, code=0x9, data=b'\x04\x0e\x00\x58\xec\xc7\xf0\x7b\x00\x0 0\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x2b\x67\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x0 0\x01\x00\x0c\x80\x00\x18\x04\xc0\xa8\x00\x01\x00\x00\x00\x00') |-- type: OFPET_BAD_MATCH(4) |-- code: OFPBMC_BAD_PREREQ(9) `-- data: version=0x4, msg_type=0xe, msg_len=0x58, xid=0xecc7f07b `-- msg_type: OFPT_FLOW_MOD(14) Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10ofproto_parser: Unify str representation of MsgBaseYusuke Iwase
This patch unifies str representation of MsgBase into comma-separated array of 'key=value' style. before: version: 0x1 msg_type 0x0 xid 0x660a4ade OFPHello() after: version=0x1,msg_type=0x0,msg_len=0x8,xid=0x660a4ade,OFPHello() Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10utils: Add binary_str() method to print binary dataYusuke Iwase
Because repr() is not enough to escape ascii code or control code, MsgBase.__str__() may collapse representation with binary data. This patch add binary_str() in order to convert binary data into a sequence of '\x00' style string. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10utils: Unify output str format of hex_array()Yusuke Iwase
This patch simplifies hex_array() and unifies its output into '0x%02x' format. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10doc: Add some JSON examples to openflow api reference for of1.5Minoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10test_parser: Add expected json outputs for OF1.5Minoru TAKAHASHI
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10doc: Add openflow api reference for of1.5Minoru TAKAHASHI
Update OpenFlow API document. - add OpenFlow 1.5 API Reference - update OpenFlow API Reference index for OF1.5 Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-10test_parser: Add test case for OFP15 table_features_replyMinoru TAKAHASHI
TODO: Because Open vSwitch (lib/ofp-util) does not support Egress Tables [EXT-306] yet, re-generate the packet data by using packet_data_generator2 when Open vSwitch supports it. Reference: OpenFlow 1.1+ support status of Open vSwitch https://github.com/openvswitch/ovs/blob/master/OPENFLOW-1.1%2B.md Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-04Ryu 3.25FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-03packet: dhcp should set _MIN_LENFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-03packet: udp should detect dhcpFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-03ofctl_v1_[23]: Fix the output result of get_flow_stats()Minoru TAKAHASHI
Add flows OFPIT_APPLY_ACTIONS and OFPIT_WRITE_ACTIONS and OFPIT_CLEAR_ACTIONS as the type of instructions, respectively. Then, the output results of get_flow_stats() are the same. This patch fix this problem. before applying this patch: * case OFPIT_APPLY_ACTIONS and OFPIT_WRITE_ACTIONS { "1": [ { "actions": [ "OUTPUT:2", "OUTPUT:3" ], ... } ] } * case OFPIT_CLEAR_ACTIONS { "1": [ { "actions": [], ... } ] } after apply this patch: * case OFPIT_APPLY_ACTIONS { "1": [ { "actions": [ "OUTPUT:2", "OUTPUT:3" ], ... } ] } * case OFPIT_WRITE_ACTIONS { "1": [ { "actions": [ { "WRITE_ACTIONS": [ "OUTPUT:4", "OUTPUT:5" ] } ], ... } ] } * case OFPIT_CLEAR_ACTIONS { "1": [ { "actions": [ "CLEAR_ACTIONS" ], ... } ] } Reported-by: Liu, Weijie <wliu43@illinois.edu> Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-30ofctl_v1_[23]: Convert masked match value into strYusuke Iwase
Currently, ofctl_v1_[23].py always converts metadata field into str type for display, but does not convert pbb_isid and tunnel_id fields even if these fields are masked. So ofctl_v1_3.py fails to convert masked pbb_isid and tunnel_id fields. This patch fixes to convert masked match field into str type and not to convert non-masked field. These changes will improve maintainability when ofctl_v1_*.py will support new match fields. Reported-by: Weijie Liu <wliu43@illinois.edu> Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-30packet/igmp: Python 3: truncate IGMP timer fields to integers before packingFadi Moukayed
This patch adds explicit integer conversions to the IGMP timer fields. This is necessary because Python 3's pack(...) does not automatically coerce floating-point values to integers (Python 3 actually throws a struct.error on struct.pack('B', 1.0)). This fixes IgmpQuerier._send_query and IgmpSnooper._do_query under Python 3, and possibly other functions that pass/assign floats to the `maxresp' attribute. Signed-off-by: Fadi Moukayed <smfadi@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-30doc: ofctl_rest: Add table of contentsYusuke Iwase
This patch adds a table of contents into the ofctl_rest API reference in order to improve its readability. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>