2079 Commits

Author SHA1 Message Date
Takeshi
16ea9e4701 rest_router: fix security problem
Signed-off-by: Takeshi <a86487817@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-27 19:48:46 +09:00
FUJITA Tomonori
df2cf837ab packet lib: don't crash with truncated dhcp packet
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-26 20:29:52 +09:00
FUJITA Tomonori
1f2b24e834 packet lib: don't crash with corrupted lldp packet
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tested-by: Benjamin Eggerstedt <benjamin.eggerstedt@gmail.com>
2014-10-26 16:47:32 +09:00
Charles M.C. Chan
f0ab847f64 ofctl_v1_0: match_to_str() does not convert nw_tos correctly
The match_to_str() function in ryu/lib/ofctl_v1_0.py does not convert
nw_tos correctly.  As a result, we cannot obtain nw_tos value of any
flow entry by invoking get_flow_stats()

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-26 16:21:23 +09:00
Toshiki Tsuboi
bac1f3038d bgp: fix bug of ASPathFilter in case of iBGP peering
In normally, when RyuBGPSpeaker originates some prefixes, it sends BGP Update messages as [ASpath: None] to peering iBGP router.
But, In use of ASPathFilter 'policy=TOP', RyuBGPSpeaker has failed to send Update messages as bellow.

$ sudo python sampleBGP_for_InterAS-MPLS-VPN-in-RyuBGP1.py
INFO:bgpspeaker.api.base:API method core.start called with args: {'router_id': '10.0.1.1', 'label_range': (1000, 1999), 'waiter': <ryu.lib.hub.Event object at 0x7f6ba91de890>, 'local_as': 65011, 'bgp_server_port': 179, 'refresh_max_eor_time': 0, 'refresh_stalepath_time': 0}
INFO:bgpspeaker.api.base:API method neighbor.create called with args: {'remote_as': 65010, 'cap_mbgp_vpnv6': False, 'cap_mbgp_vpnv4': True, 'cap_mbgp_ipv6': False, 'is_next_hop_self': False, 'cap_mbgp_ipv4': True, 'multi_exit_disc': 100, 'is_route_server_client': False, 'peer_next_hop': None, 'password': None, 'ip_address': '192.168.101.101'}
INFO:bgpspeaker.api.base:API method neighbor.create called with args: {'remote_as': 65011, 'local_port': 50001, 'cap_mbgp_vpnv6': False, 'cap_mbgp_vpnv4': True, 'cap_mbgp_ipv6': False, 'is_next_hop_self': True, 'cap_mbgp_ipv4': True, 'is_route_server_client': False, 'peer_next_hop': None, 'local_address': '10.0.1.1', 'password': None, 'ip_address': '10.0.1.2'}
INFO:bgpspeaker.api.base:API method neighbor.create called with args: {'remote_as': 65011, 'local_port': 50002, 'cap_mbgp_vpnv6': False, 'cap_mbgp_vpnv4': True, 'cap_mbgp_ipv6': False, 'is_next_hop_self': True, 'cap_mbgp_ipv4': True, 'is_route_server_client': False, 'peer_next_hop': None, 'local_address': '10.0.1.1', 'password': None, 'ip_address': '10.0.1.3'}
INFO:bgpspeaker.api.base:API method vrf.create called with args: {'import_rts': ['65010:101'], 'route_family': 'ipv4', 'site_of_origins': None, 'route_dist': '65010:101', 'export_rts': ['65010:101']}
INFO:bgpspeaker.api.base:API method prefix.add_local called with args: {'prefix': '192.168.4.0/30', 'next_hop': '0.0.0.0', 'route_dist': '65010:101', 'route_family': 'ipv4'}
INFO:bgpspeaker.api.base:API method prefix.add_local called with args: {'prefix': '10.10.10.4/32', 'next_hop': '192.168.4.2', 'route_dist': '65010:101', 'route_family': 'ipv4'}
INFO:bgpspeaker.api.base:API method prefix.add_local called with args: {'prefix': '192.168.204.0/30', 'next_hop': '192.168.4.2', 'route_dist': '65010:101', 'route_family': 'ipv4'}
INFO:bgpspeaker.api.base:API method neighbor.attribute_map.set called with args: {'ip_address': '10.0.1.3', 'route_family': 'ipv4', 'route_dist': '65010:101', 'attribute_map': [AttributeMap(filters=[ASPathFilter(as_number=65010,policy=TOP)],attribute_type=LOCAL_PREF,attribute_value=200)]}
INFO:bgpspeaker.cli:starting ssh server at localhost:4990
INFO:bgpspeaker.peer:Connection to peer: 192.168.101.101 established
INFO:bgpspeaker.peer:Connection to peer: 10.0.1.2 established
INFO:bgpspeaker.peer:Connection to peer: 10.0.1.3 established
ERROR:ryu.lib.hub:hub: uncaught exception: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 52, in _launch
    func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 708, in _process_outgoing_msg_list
    self._send_outgoing_route(outgoing_msg)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 667, in _send_outgoing_route
    update_msg = self._construct_update(outgoing_route)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 938, in _construct_update
    result = self._lookup_attribute_map(at_maps, attr_type, path)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 2004, in _lookup_attribute_map
    cause, result = m.evaluate(path)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/info_base/base.py", line 1171, in evaluate
    cause, result = f.evaluate(path)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/info_base/base.py", line 1074, in evaluate
    path_seg = path_seg_list[0]
IndexError: list index out of range

Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-20 10:22:36 +09:00
fortitude.zhang
ac4c9cc9d8 stplib.py: Should wildcard non-relevant bits in the mask field of port mod message for OpenFlow 1.2+.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-20 10:21:34 +09:00
YAMAMOTO Takashi
9ea360f89f simple_switch_14: Update a comment about OVS bug
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 11:49:20 +09:00
YAMAMOTO Takashi
a6098fdfd6 simple_switch_13: Update a comment about OVS bug
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 11:49:18 +09:00
Shu Shen
ad13db892d Add a simple switch for Openflow 1.4, an easy adaption of SimpleSwitch13
Signed-off-by: Shu Shen <shu.shen@radisys.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 11:20:56 +09:00
Yusuke Iwase
ab9f00c1b0 sw test tool: Fix typos
Reported by Ian Y. Choi on ryu-devel.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 10:59:30 +09:00
YAMAMOTO Takashi
b94c288083 ofproto_v1_4: Add tun_ipv4_src and tun_ipv4_dst NXMs
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 10:59:26 +09:00
YAMAMOTO Takashi
f473308b37 test_parser: Update expected json representations
Update after tun_ipv4_src/tun_ipv4_dst changes.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:26 +09:00
YAMAMOTO Takashi
c93cafbd2c packet_data: Regen
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
0e2e378359 packet_data_generator: Add tun_ipv4_src and tun_ipv4_dst for OF1.3
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
70c0e58492 ofproto_v1_3: Add tun_ipv4_src and tun_ipv4_dst NXMs
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
be892f863b oxm_fields: Add Nicira Extended Match (NXM) support
Note: It wasn't clear to me which NXM stands for "Extensible" or
"Extended".  I chose the latter because it's in the primary
specification.  (nicira-ext.h)

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
73e336e74e oxm_fields: Add comments
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
dcf6ddd828 oxm_fields: Avoid shadowing python builtin
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
6fb4550337 travis: Run tests via tox
Also, run pep8 in a separate environment.

The way to specify python versions might seem awkward.
(Well, it seems so to me.)
But it follows one of examples referenced in the official
documentation:
    http://docs.travis-ci.com/user/languages/python/
    https://github.com/twisted/klein/blob/master/.travis.yml

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
YAMAMOTO Takashi
00d736a8c3 test_addrconv: Fix a way to import the tested module
I'm not quite sure how it happens to work with the current
test environment.  But the current coding doesn't work when
running via testr probably due to different PYTHONPATH.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
YAMAMOTO Takashi
2d52d1922b test_parser: Make this independent from test environment path
To make this able to run via testr.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
YAMAMOTO Takashi
aae00a8ba5 tox.ini: Add pep8 environment
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
YAMAMOTO Takashi
459baf87d3 pyang_plugins: pep8 style fix
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
FUJITA Tomonori
9bfba7fd54 bgp: fix pep8 warnings
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-11 17:00:44 +09:00
Toshiki Tsuboi
5fc3113d73 bgp: supporting loopback interface as neighbour_source_address for iBGP
In generally, iBGP session is established between loopback interfaces.
Therefore, we need to specify loopback interface as neighbour_source_address.
This parameter is just like update-source command in cisco router.

Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-11 10:30:31 +09:00
Wei-Li Tang
5aa14c61a1 bfdlib: follow TTL/hop limit in RFC5881 explicitly.
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 18:10:47 +09:00
Wei-Li Tang
49aa2ff9ae doc: add lib.packet.bfd classes to library_packet_ref.
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 10:25:43 +09:00
Wei-Li Tang
0b42159893 lib: add IPv4 single hop BFD (RFC5881) support.
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 10:25:43 +09:00
Wei-Li Tang
44437ea06d unit test for lib.packet.bfd
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 10:25:43 +09:00
Wei-Li Tang
d1f9408314 packet lib: add BFD support.
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 10:25:43 +09:00
Wei-Li Tang
bcc2c13484 ofctl_v1_0/2/3: check lock timeout by lock.is_set().
send_stats_request never catches hub.Timeout exception because it
has been caught by the event wait function itself.

Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 09:38:50 +09:00
Minoru TAKAHASHI
39f06bff87 test: add unittests for of1.3 parser
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:51:56 +09:00
Minoru TAKAHASHI
1e72c73685 of12/3: support setting the oxm_value to OFPVID_NONE
In openflow spec 1.2 and 1.3.4, in order to match only packets without a VLAN tag,
the value of OFPXMT_OFB_VLAN_VID must be set to OFPVID_NONE (0x0000).
Old API of ofproto_v1_2/3_parser is now enabled to setting the oxm_value to OFPVID_NONE(0x0000) as follows:

e.g.)
    match = ofproto_v1_2_parser.OFPMatch()
    match.set_vlan_vid_none()

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:51:55 +09:00
YAMAMOTO Takashi
baf4b7a01a ofproto_v1_4_parser: Handle experimenter OXMs in TableFeatures
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:44:20 +09:00
YAMAMOTO Takashi
8e16d24bd1 ofproto_v1_3_parser: Handle experimenter OXMs in TableFeatures
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:44:20 +09:00
YAMAMOTO Takashi
9c83c8dba9 oxm_fields: Add a comment
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:44:20 +09:00
Hiroshi Yokoi
75753841aa bgp: support next_hop_self
Support next_hop_self.
BGPSpeaker can replace a path's next_hop address with its own address
when it sends the path to iBGP peer.

Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:44:20 +09:00
FUJITA Tomonori
dca514f198 Ryu 3.14
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v3.14
2014-10-02 12:31:15 +09:00
Yusuke Iwase
2a4ba63d55 doc: Add ryu.app.ofctl_rest document
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-30 11:33:28 +09:00
IWASE Yusuke
223dab9afe of: Fix name of class member variables
Fix name of class member variables in OFPMeterFeaturesStats
to reflect OpenFlow Specification.

Accordingly, fix json pattern files for unit tests.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-30 10:53:45 +09:00
Yoshiharu Yamashita
8f07bb29a9 gui_topology: fix to work using WebSocket
I midified ryu.topology.js to dinamicaly add or remove switch
using WebSocket on Ryu Topology Viewer.

Signed-off-by: Yoshiharu Yamashita <dyson.yamashita@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:44:25 +09:00
Hiroshi Yokoi
ff064e662a bgp: ignore link-local address
According to RFC 2545, both a global address and a link-local address
can be sent as a next_hop address in BGPUpdate message.
Since the link-local address is not needed in Ryu BGP,
Ryu BGP ignore it if the address family is IPv6 unicast.

Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:20 +09:00
Hiroshi Yokoi
594fb6a191 bgp: local preference support IPv6, VPNv4/v6 route family
local preference supports IPv6 and VPNv4/v6 route family.
sorry, previous patch contains pep8 warnings, so I cleaned them.
Please discard previous one.

Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:20 +09:00
Sriram Natarajan
0fff3fa73c Improve debug messages for unsupported request Log correct debug message
Signed-off-by: Sriram Natarajan <natarajan.sriram@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:20 +09:00
Sriram Natarajan
97c9e79743 Fix spell check in group feature message Maintain name consistency in meter type in Meter Features message in OF 1.3 Add length field in group statistics reply in OF 1.2
Signed-off-by: Sriram Natarajan <natarajan.sriram@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:20 +09:00
Minoru TAKAHASHI
2674a272f2 sw test tool: fix an error caused by changing enum name in of1.4
In of1.4 spec, enum name has been changed as follows:

of1.3.4 spec:
     OFPR_NO_MATCH = 0, / * No matching flow (table-miss flow entry). * /

of1.4 spec:
     OFPR_TABLE_MISS = 0, / * No matching flow (table-miss flow entry). * /

Along with this change, AttributeError has occurred in the process of comparison of the received message.
This patch fixes this problem.

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:20 +09:00
Yusuke Iwase
5239336206 ofctl: Add default value to type field of OFPGroupMod
In OF1.2 and OF1.3 Spec, the group type need not be specified
for the group delete request.
However, an error occurs at mod_group_entry in ofctl_v1_[23].py
without specifying group type to delete a group entry.

This patch adds default value to type field of OFPGroupMod
at mod_group_entry in order to reflect OpenFlow Specification.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-27 18:28:19 +09:00
Sriram Natarajan
9bcce6010f of: Add missing fields in OpenFlow statistics messages
update statistics structure to reflect OpenFlow specification.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-18 14:45:18 +09:00
Sriram Natarajan
72556a68b4 of: Fix Enum Names and Values
Fix Enum Names and Values in OpenFlow Header files Update no matching
name in packet-in reason as specified in OpenFlow 1.4 Update queeu
stats name in in multipart type as specified in OpenFlow 1.4 Add
additional constants as defined in OpenFlow 1.4

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-18 14:39:54 +09:00
Sriram Natarajan
33ecedd81e of: Fix Enum Name for Bad Instruction Code Corrected Reset Count enum name
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-09-18 14:38:25 +09:00