3135 Commits

Author SHA1 Message Date
FUJITA Tomonori
1782f54f3c Ryu 4.17
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v4.17
2017-09-04 21:52:10 +09:00
mgrex97
0c0656f95a topology/switches: Fix delete port can't immediately remove link.
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-29 22:51:15 +09:00
IWASE Yusuke
80fedbfeaf BGPSpeaker/net_ctrl: Close activity for each session
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-29 22:50:36 +09:00
Satoshi Fujimoto
98a838e487 packet/bmp: Correctly parse peer address with IPv4
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-29 22:49:53 +09:00
IWASE Yusuke
f85ae78465 rest_qos: Avoid discarding Queues info for each request
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-29 22:49:36 +09:00
Dingyuan Hu
bc7451dc7c services/ovsdb: Listen on IPv6 Address
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-29 22:49:12 +09:00
Satoshi Fujimoto
7f537c4185 packet/icmpv6: Assert length in options are valid
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-04 21:11:49 +09:00
Satoshi Fujimoto
ee9a197dd6 packet/icmpv6: Fix parsing undefined nd_option fails
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-04 21:11:09 +09:00
IWASE Yusuke
44cd14ac81 ofp_event: Timestamp when OpenFlow event was generated
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-04 21:07:28 +09:00
FUJITA Tomonori
6d950481f6 Ryu 4.16
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v4.16
2017-08-02 10:39:13 +09:00
IWASE Yusuke
800c136a9b doc: Fix unexpected indent in ryu/lib/packet/bgp.py
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-30 22:07:08 +09:00
IWASE Yusuke
cb40f779d1 doc: Deprecated option html_use_smartypants
"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-30 22:07:06 +09:00
IWAMOTO Toshihiro
ec04ff9f46 ofproto: Avoid emitting illegal instruction sets
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>
2017-07-21 21:54:25 +09:00
Travis Gockel
5e176f9e7c doc: Minor grammar changes in ryu_app_api 2017-07-21 21:47:47 +09:00
IWASE Yusuke
214cd8c305 unit/ofproto: Adopt to rename of OFPErrorExperimenterMsg
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-21 21:38:42 +09:00
IWASE Yusuke
5099034d0c ofproto: Handle OFPErrorExperimenterMsg
Currently, OFPErrorExperimenterMsg is not registered into OpenFlow
message events dict as "EventOFPErrorExperimenterMsg", and could not be
converted to events by ofp_event module.

This patch obsolete OFPErrorExperimenterMsg class and fixes to use
EventOFPErrorMsg to handle the experimenter error messages.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-21 21:38:42 +09:00
IWASE Yusuke
b964275b53 bgp_sample_conf: absolute_import to suppress warnings
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-21 21:38:42 +09:00
Satoshi Fujimoto
60651d8a1c service/ovsdb: get socket from RemoteOvsdb
This patch adds "socket" field to RemoteOvsdb
to get sockets which connects to switches.

e.g.)
    @set_ev_cls(ovsdb_event.EventNewOVSDBConnection)
    def handle_new_ovsdb_connection(self, ev):
        print(ev.client.socket.getsockname()[0])

Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-02 20:21:14 +09:00
FUJITA Tomonori
cd67c52471 Ryu 4.15
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v4.15
2017-07-02 20:08:32 +09:00
FUJITA Tomonori
a991fed7e4 Revert "tests: Separate test files from Ryu module"
This reverts commit a67ed2858417b9d795460f05126c01fb0cd344f9.

The commit breaks OpenStack neutron dynamic routing.
2017-06-30 14:23:03 +09:00
IWASE Yusuke
a67ed28584 tests: Separate test files from Ryu module
To prevent redundant files (e.g., pcap files, json files for tests,
packet data generator) to be installed, this patch separates test
directory from Ryu module.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-26 15:17:44 +09:00
Satoshi Fujimoto
d8ae9491da service/ovsdb: Use dict.items() instead of six.iteritems()
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 12:08:18 +09:00
Satoshi Fujimoto
ea23ebdadf doc/ovsdb_manager: Update Sample Code
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 12:08:18 +09:00
Satoshi Fujimoto
10b9273928 service/ovsdb: Use Python 2/3 compatible code
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 12:08:18 +09:00
Satoshi Fujimoto
27b8d44bb1 service/ovsdb: Avoid to use dict as default argument
Using mutable values as default arguments will cause unexpected behavior.

Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 12:08:18 +09:00
Satoshi Fujimoto
cf667e4097 service/ovsdb: Add properties to EventNewOVSDBConnection
Currently, EventNewOVSDBConnection only has system_id.
This patch let the class has RemoteOvsdb to get more
informations through it.

e.g.)
    @set_ev_cls(ovsdb_event.EventNewOVSDBConnection)
    def handle_new_ovsdb_connection(self, ev):
        system_id = ev.system_id
        remote_addr = ev.client.address

Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 12:08:18 +09:00
IWASE Yusuke
2edfb20884 test_vsctl: Strip unexpected double quote
This patch removes unexpected double quote around IP address in
OVSDB_SWITCH_ADDR.
e.g.)
 NG: tcp:"172.17.0.2":6640
 OK: tcp:172.17.0.2:6640

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-23 11:36:18 +09:00
IWASE Yusuke
d9d0588689 pip: OpenStack updated requirements of eventlet again
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:08:35 +09:00
IWASE Yusuke
388a97ef6d manager: Introduce user flags option
This patch introduces "--user-flags" option which enable to add user
original CLI or config file options for their own Ryu applications.

Usage Example)
  $ cat user_flags.py
  from ryu import cfg

  CONF = cfg.CONF
  CONF.register_cli_opts([
      cfg.StrOpt(
          'user-cli-opt', default=None,
          help='user original CLI option'),
  ])

  $ ryu-manager --user-flags user_flags.py user_app.py

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:08:33 +09:00
IWASE Yusuke
0f1430edfd CONTRIBUTING: Update info of Python ver/lib and links
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:07:57 +09:00
IWASE Yusuke
b4786a3fe3 CONTRIBUTING: Update procedure for running tests
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:07:54 +09:00
IWASE Yusuke
ef212fe87e CONTRIBUTING: Update procedure for submitting patches
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:07:49 +09:00
IWASE Yusuke
cec1254a35 README: Dependencies for installing optional requirements
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-22 16:07:41 +09:00
IWASE Yusuke
03c67d368d service/ovsdb: Default of controller_info in set_controller
Currently, api.set_controller in OVSDB service raises AttributeError if
controller_info is None and controller is not found in current table.

This patch sets the empty dict as the default value and fixes this
problem.

Reported-by: 胡鼎原 <hdyvip@gmail.com>
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-04 13:56:28 +09:00
FUJITA Tomonori
574e417d9d Ryu 4.14
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v4.14
2017-06-02 13:58:40 +09:00
胡鼎原
8fa14c87ec doc: fix error in ovsdb_manager.rst code
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 22:11:02 +09:00
胡鼎原
51a86c4d56 fix dhcp6.py bug using python3
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 22:10:46 +09:00
IWASE Yusuke
bfcd65744c pip: OpenStack avoids newer eventlet
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 17:00:45 +09:00
IWAMOTO Toshihiro
430bc97638 ofctl: Add some tests for ofp_instruction_from_str
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 16:13:19 +09:00
IWAMOTO Toshihiro
a52c62a120 ofctl: Add ovs-ofctl style action string parser
This commit adds a new method called ofp_instruction_from_str,
which takes an ovs-ofctl style action string and returns a list of
JSON dictionaries. Currently only a few action strings are understood.

Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 16:13:18 +09:00
IWAMOTO Toshihiro
a5dca1a1e3 nicira_ext: Define some CT constants
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-30 16:13:17 +09:00
Satoshi Fujimoto
7794ff714c BGPSpeaker/SSH: Support to show L2VPN Flow Spec routes
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:48:19 +09:00
Satoshi Fujimoto
0168c28935 BGPSpeaker: Support IPv6 Flow Spec update messages
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:48:14 +09:00
Satoshi Fujimoto
0b9bc03e6c BGPSpeaker/info_base: Add tables for L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:48:09 +09:00
Satoshi Fujimoto
12b809f5f7 utils/test_bgp: Add unit tests for L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:48:05 +09:00
Satoshi Fujimoto
e82d26b1b5 test_table_manager: Add unit tests for L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:48:01 +09:00
Satoshi Fujimoto
2bcb040dcb test_bgpspeaker: Add unit tests for L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:47:57 +09:00
Satoshi Fujimoto
d37a311829 packet/bgp: Support L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:47:52 +09:00
Satoshi Fujimoto
b327981534 packet/bgp: Properly calculate length for FlowSpec
RFC 5575 says the 'len' field in numeric or bitmask operators
represents that the length of the value field is [1 << 'len'].
But, in serializing FlowSpec messages, the packet library uses
the `len` field as the length of the value field itself.
This patch fixes it to serialize FlowSpec messages properly.

Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:47:48 +09:00
Satoshi Fujimoto
9a4e8968ed test_bgp: Add test cases for L2VPN Flow Spec
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-12 09:47:42 +09:00