summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2017-11-18doc: fix typoCharlie Lewis
2017-11-16test_icmpv6: Catch proper ExceptionIWASE Yusuke
In some test cases in test_icmpv6.py, @raises() decorator does not catch the correct Exception, because "pack" function cannot be resolved and it need to be specified as "struct.pack". This patch fixes to this unresolved references and make it more strictly matching of Exception class (e.g., AssertionError). Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-16packet/icmp: Avoid TypeError when calculating lengthIWASE Yusuke
Currently, ICMPv4 packet instance without its payload, it will raise TypeError when calculating packet length, because the default value of "data" field (payload data) is None and len() can not be applied against None type object. This patch changes the default value of "data" to the empty binary value and confirms the value type of "data" field before serialization. Also, this patch applies the same improvements to ICMPv6 packet library. Reported-by: William Fisher <william.w.fisher@gmail.com> Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-16*: Reject Binary Represented IP AddressesSatoshi Fujimoto
As a default, netaddr.valid_ipv4() uses the "aton" rule for its validation, so valid_ipv4('2') and valid_ipv4('1.2.3') returns True. It may cause unexpected behaviors. This commit replaces netaddr.valid_ipv4() to ryu.lib.ip.valid_ipv4(), which is wrapper of netaddr.valid_ipv4(), and use "pton" rule in the method. So, address representation like '2' or '1.2.3' will be rejected. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-05serivice/bgp: Fix ssh connection problem in Python 2.7Satoshi Fujimoto
Currently, 'is_connected' attribute in SshServer is refered before it is created, in Python 2.7. This raises an Exception and the SSH operation won't work anymore after this happens. This commit ensures that 'is_connected' is created before it is refered. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-02flags: Inject __class__ attribute to LooseVersionIWASE Yusuke
Currently, ryu-manager uses distutils.version.LooseVersion for "--zapi-frr-version" to parse the given version sting. With custom type class for oslo_config.cfg.Opt, oslo_config might access __class__ attribute for equal comparison. But in case on Python 2, LooseVersion does not have __class__ attribute and it causes AttributeError. (This error is not always reproduced) This patch injects required attribute into LooseVersion and avoids this problem. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-02library_ovsdb_manager: Descriptions for OVS configsIWASE Yusuke
To connect OVSDB Manager library to OVS, some additional configurations on OVS is required, but currently no description about these configurations. This patch adds descriptions for OVS configurations and includes some improvements of sample application. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01app/ofctl: Enable to send single BarrierRequestSatoshi Fujimoto
Currently, with ryu.app.ofctl.api.send_msg(), a BarrierRequest will send with every messages. So, using send_msg() with a BarrierRequest will cause duplex transmission of BarrierRequests. This commit enables to send a single BarrierRequest if send_msg() is used with a BarrierRequest by avoiding sending an additional BarrierRequest. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01packet/zebra: Support FRRouting version 3.0IWASE Yusuke
This patch enables to support Zebra messages of FRRouting version 3.0 and introduces a flag to switch FRRouting version. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01of14: Implement OFPBundleCtrlMsg parserIWAMOTO Toshihiro
Copied from of15 implementation. Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01rest_qos: Avoid None when deleting OVSDB addrIWASE Yusuke
Currently, rest_qos.py will raise AttributeError when deleting OVSDB server address because rest_qos.py will try to split the given address string but the address is None when deleting. This patch checks if the given address is None or not before the string manipulation and fixes this problem. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01lib/ovs/vsctl: Function for validate OVSDB addressIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01Ryu 4.19FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-15BGPSpeaker: Enable to specify local listen addressesIWASE Yusuke
Currently, BGPSpeaker will listen the incoming connection with the unspecified IP addresses ('0.0.0.0' and '::'). This patch enables to specify the local listen address list for starting BGPSpeaker instance. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-15bgp/application: Enhance arguments handling for BGPSpeakerIWASE Yusuke
Currently, when new arguments are introduced into BGPSpeaker, ryu.application.RyuBGPSpeaker need modifications to support the introduced arguments. This patch enables to pass arguments to BGPSpeaker without some modifications on RyuBGPSpeaker. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-15test_controller: Test cases for _split_addr()IWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-15controller: APIs to register switch address dynamicallyIWASE Yusuke
This patch introduces APIs to register/unregister switch address after Ryu (ofp_handler) starting. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-15controller: Support proactive connectionIWASE Yusuke
This patch enables to initiate OpenFlow connection from controller side by using "--ofp-switch-address-list" and "--ofp-switch-connect-interval" options. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-03Ryu 4.18FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17zclient/zserver: Support FRRouting messages formatIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17test_zebra: Enhance test casesIWASE Yusuke
Note: The binary representation is not extracted from the real packets and based on the implemetation, so might be required to be fixup with the real packets. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support MPLS Labels messagesIWASE Yusuke
This patch implements the following messages on FRRouting: - FRR_ZEBRA_MPLS_LABELS_ADD - FRR_ZEBRA_MPLS_LABELS_DELETE Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support Interface Router Advertisement messagesIWASE Yusuke
This patch implements the following messages on FRRouting: - FRR_ZEBRA_INTERFACE_ENABLE_RADV - FRR_ZEBRA_INTERFACE_DISABLE_RADV Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support VRF related messagesIWASE Yusuke
This patch implements the following messages on FRRouting: - FRR_ZEBRA_VRF_ADD - FRR_ZEBRA_VRF_DELETE - FRR_ZEBRA_INTERFACE_VRF_UPDATE Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support BFD Destination messagesIWASE Yusuke
This patch implements the following messages on FRRouting: - ZEBRA_INTERFACE_BFD_DEST_UPDATE - ZEBRA_BFD_DEST_REGISTER - ZEBRA_BFD_DEST_DEREGISTER - ZEBRA_BFD_DEST_UPDATE - ZEBRA_BFD_DEST_REPLAY Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support Neighbor Connected Address messagesIWASE Yusuke
This patch implements the following messages on FRRouting: - ZEBRA_INTERFACE_NBR_ADDRESS_ADD - ZEBRA_INTERFACE_NBR_ADDRESS_DELETE Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17test_zebra: Add pcap for API version 4 on FRR v2.0IWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support some FRRouting messages formatIWASE Yusuke
Note: This patch does not support all messages defined in FRRouting, and some of message are left on TODO. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Constants for supporting FRRouting formatIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Support asymmetric structure of ZEBRA_*_IMPORT_LOOKUPIWASE Yusuke
The ZEBRA_IPV4_IMPORT_LOOKUP/ZEBRA_IPV6_IMPORT_LOOKUP has asymmetric structures at when sent to Zebra daemon and when sent from Zebra daemon. Especially, "prefix_len" field is inserted before "prefix" filed when sent to Zebra daemon. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Parse messages based on Zebra API versionIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Missing bw_cls_num in InterfaceLinkParamsIWASE Yusuke
This patch fixes to parse the missing field of the number of unreserved bandwidth classes in Interface Link Parameters structure. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Constants for Link Parameters StatusIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Constants for Interface Address FlagsIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Return "ZebraMessage" for message from ZebraIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-17packet/zebra: Fix unresolved reference for _serialize_nexthopsIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-05Only import pip if neededThomas Bechtold
In some systems pip is not installed and the parse_requirements() function is not needed. So only import pip if needed. Otherwise this fails with: from ryu.base import app_manager File "/usr/lib/python2.7/site-packages/ryu/base/app_manager.py", line 34, in <module> from ryu import utils File "/usr/lib/python2.7/site-packages/ryu/utils.py", line 23, in <module> from pip import req as pip_req ImportError: No module named pip Signed-off-by: Thomas Bechtold <tbechtold@suse.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-09-04Ryu 4.17FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-29topology/switches: Fix delete port can't immediately remove link.mgrex97
If remove port data from self.port_state first, self.get_port method can't get the port data, this problem will cause link can't immediately be removed. This patch remove port data after get_port and link delete. Signed-off-by: Yu Ren <j6y4u4xup6@gmail.com> Signed-off-by: mgrex97 <j6y4u4xup6@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-29BGPSpeaker/net_ctrl: Close activity for each sessionIWASE Yusuke
Currently, a thread for processing outgoing message will be remained in "RpcSession" activity even if RPC session is closed by the remote peer, and garbages on memory will grow. This patch fixes to close "RpcSession" activity when RPC session closing. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-29packet/bmp: Correctly parse peer address with IPv4Satoshi Fujimoto
Currently, Ryu expects that the IPv4 peer address format is "4 bytes with IPv4 address, followed by 12 bytes padding". However RFC 7854 says the format is "12 bytes padding, followed by 4 bytes with IPv4 address". This patch fixes it to correctly parse/serialize peer address. Reported-by: Henk Smit <hhwsmit@xs4all.nl> Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-29rest_qos: Avoid discarding Queues info for each requestIWASE Yusuke
Currently, rest_qos discards the Queues info stored on its dictionary for each "Set queue" request. So rest_qos always reply only last Queue setting. This patch fixes to avoid discarding the Queues info and enable to reply all configured Queues settings. Note: In order to store all Queues settings, "port name" field for each Queue will be inserted on the reply of "Get queue configuration" API. - Before: [ { "command_result": { "result": "success", "details": { "0": { "config": { "max-rate": "500000" } }, "1": { "config": { "min-rate": "800000" } } } }, "switch_id": "0000000000000001" } ] - After: [ { "command_result": { "result": "success", "details": { "s1-eth1": { # <-- Inserted "0": { "config": { "max-rate": "500000" } }, "1": { "config": { "min-rate": "800000" } } } } }, "switch_id": "0000000000000001" } ] Reported-by: Fahmy Sherif Alaa Salaheldin <sherif.fahmy@epfl.ch> Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-29services/ovsdb: Listen on IPv6 AddressDingyuan Hu
This patch enables Ryu to listen ovsdb connections on IPv6 Address. Note that you need to make a config file like belows: [ovsdb] address=:: Signed-off-by: Dingyuan Hu <hdyvip@gmail.com> Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-04packet/icmpv6: Assert length in options are validSatoshi Fujimoto
About the 'length' field in ICMPv6 options, RFC4861 says that "The value 0 is invalid". This patch adds assertions to raise a exception for such invalid ICMPv6 packets. Reported-by: William Fisher <william.w.fisher@gmail.com> Reported-by: Shivaram Mysore <shivaram.mysore@gmail.com> Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-04packet/icmpv6: Fix parsing undefined nd_option failsSatoshi Fujimoto
The length of nd_option is units of 8 octets. Currently, for nd_options which is undefined in the ICMPv6 packet library, the parser assumes that the length is [8 * length - 2]. It causes fails while parsing these options. This patch fixes it to parse such options correctly. Reported-by: William Fisher <william.w.fisher@gmail.com> Reported-by: Shivaram Mysore <shivaram.mysore@gmail.com> Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-04ofp_event: Timestamp when OpenFlow event was generatedIWASE Yusuke
This patch introduces "timestamp" attribute for OpenFlow event classes which shows when that event was generated by Datapath instance and nearly equivalent to when Ryu finished receiving the message contained in that event instance. Suggested-by: Matthew Hayes <matthew_john_hayes@hotmail.com> Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-08-02Ryu 4.16FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-30doc: Fix unexpected indent in ryu/lib/packet/bgp.pyIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-30doc: Deprecated option html_use_smartypantsIWASE Yusuke
"html_use_smartypants" in conf.py is deprecated in Sphinx 1.6. This patch fixes to use "smart_quotes" in docutils.conf instead. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-21ofproto: Avoid emitting illegal instruction setsIWAMOTO Toshihiro
The OpenFlow spec forbids multiple occurences of a same instruction type within a mod_flow message, so make sure ofp_instruction_from_jsondict doesn't emit such an instruction set. Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>