773 Commits

Author SHA1 Message Date
FUJITA Tomonori
5694ddb74f Ryu 2.1
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v2.1
2013-07-01 06:08:19 +09:00
Isaku Yamahata
b38974f363 rename ryu-client under ryu/tests
Since it is debugging tool for developer, don't install it.
and move it under ryu/rests directory.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-01 06:04:06 +09:00
FUJITA Tomonori
d7db9cff47 of1.3: fix OFPSetConfig default arguments
The equivalent fix for of1.2 is the commit 3d90147.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-29 05:21:37 +09:00
YAMAMOTO Takashi
03e469c1fc of1.2: OFPGroupFeaturesStats: tuple -> list
tuples are json-unfriendly.

(of1.3 version was completely broken until very recently
and the way i fixed it is consistent with this change.)

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-29 03:45:56 +09:00
YAMAMOTO Takashi
42a097c596 of1.3: fix OFP_GROUP_DESC_STATS_PACK_STR
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-29 03:45:26 +09:00
YAMAMOTO Takashi
c519c7d86f of1.3: fix OFPMeterStats
len -> length
as the latter seems to be expected by OFPMultipartReply.parser_stats_body.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-29 03:43:57 +09:00
Isaku Yamahata
e943f61068 topology/switches: exception during serialization
Datapath.send_packet_out() requires buffer_id, not dpid.

> Traceback (most recent call last):
>   File "/usr/lib/pymodules/python2.7/gevent/greenlet.py", line 390, in run
>     result = self._run(*self.args, **self.kwargs)
>   File "ryu/base/app_manager.py", line 126, in _event_loop
>     handler(ev)
>   File "/ryu/topology/switches.py", line 697, in packet_in_handler
>     self._drop_packet(msg)
>   File "/ryu/topology/switches.py", line 640, in _drop_packet
>     dp.send_packet_out(dp.id, msg.in_port, [])
>   File "/ryu/controller/controller.py", line 242, in send_packet_out
>     self.send_msg(packet_out)
>   File "/ryu/controller/controller.py", line 216, in send_msg
>     msg.serialize()
>   File "/ryu/ofproto/ofproto_parser.py", line 119, in serialize
>     self._serialize_body()
>   File "/ryu/ofproto/ofproto_v1_0_parser.py", line 1987, in _serialize_body
>     self.buffer_id, self.in_port, self.actions_len)
>   File "/ryu/ofproto/ofproto_parser.py", line 128, in msg_pack_into
>     buf += struct.pack(fmt, *args)
> error: 'I' format requires 0 <= number <= 4294967295
> <Greenlet at 0x229bd98: <bound method Switches._event_loop of <switches.Switches object at 0x1c8e690>>> failed with error

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28 23:13:37 +09:00
Isaku Yamahata
58e86b188c topology/switches: packet in handler
The logic of counting sent packet seems wrong.

Reported-by: Q Lady <holynn.q@gmail.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28 22:16:53 +09:00
Isaku Yamahata
23e6b8fcb8 packet lib: stop tlv parsing when finding LLDP_TLV_END
There may be padding at the end of payload.
So the assumption that there is no payload after LLDP_TLV_END
is not correct.

Reported-by: Q Lady <holynn.q@gmail.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28 22:16:41 +09:00
watanabe.fumitaka
694c8330a5 packet lib: add ICMP sub encoder/decoder class
Add ICMP sub encoder/decoder class for Destination Unreachable Message.
and, add parser to Time Exceeded Message class.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-28 22:12:42 +09:00
YAMAMOTO Takashi
de5099fc2f ofctl_v1_2.actions_to_str: ignore unknown instructions
avoid crashing when the switch happens to have flows with
non OFPInstructionActions instructions.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 07:51:02 +09:00
YAMAMOTO Takashi
2214fae178 of13: prefix private attributes of OFPMatch with _
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:44:29 +09:00
YAMAMOTO Takashi
ea7798fc69 of12: prefix private attributes of OFPMatch with _
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:44:24 +09:00
YAMAMOTO Takashi
abca83ce23 nx_match: some comments
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:42:37 +09:00
YAMAMOTO Takashi
852c2e882f datapath_connection_factory deal with None datapath.id
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:41:30 +09:00
Aeschlimann Philipp
727d7bd356 of13: Added InstructionMeter
Signed-off-by: Philipp Aeschlimann <aepp@zhaw.ch>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:36:23 +09:00
FUJITA Tomonori
df42ae87e8 packet lib: avoid exception for bogus protocol header parsing
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:21:49 +09:00
Isaku Yamahata
6080f2c008 quantum_adapter: check if quantum_controller_addr is valid
With this, more understandable error will be produced.
Otherwise it results in mysterious error like

transaction error: {"details":"Table Bridge column controller row 69da7121-51fa-4d6e-ad24-18ff9c857b87 references nonexistent row 17c4aa64-ed91-4d8a-a905-a137e6969ad9 in table Controller.","error":"referential integrity violation"}
hub: uncaught exception: Traceback (most recent call last):
  File "/ryu/ryu/lib/hub.py", line 50, in _launch
    func(*args, **kwargs)
  File "/ryu/ryu/base/app_manager.py", line 104, in _event_loop
    handler(ev)
  File "/ryu/ryu/app/quantum_adapter.py", line 383, in conf_switch_set_handler
    self._conf_switch_set_ovsdb_addr(ev.dpid, ev.value)
  File "/ryu/ryu/app/quantum_adapter.py", line 372, in _conf_switch_set_ovsdb_addr
    ovs_switch.set_ovsdb_addr(dpid, value)
  File "/ryu/ryu/app/quantum_adapter.py", line 169, in set_ovsdb_addr
    ovs_bridge.set_controller([self.ctrl_addr])
  File "/ryu/ryu/lib/ovs/bridge.py", line 128, in set_controller
    self.run_command([command])
  File "/ryu/ryu/lib/ovs/bridge.py", line 101, in run_command
    self.vsctl.run_command(commands, self.timeout, self.exception)
  File "/ryu/ryu/lib/ovs/vsctl.py", line 1006, in run_command
    self._run_command(commands)
  File "/ryu/ryu/lib/ovs/vsctl.py", line 999, in _run_command
    self._do_main(commands)
  File "/ryu/ryu/lib/ovs/vsctl.py", line 927, in _do_main
    if self._do_vsctl(idl_, commands):
  File "/ryu/ryu/lib/ovs/vsctl.py", line 898, in _do_vsctl
    vsctl_fatal('transaction error: %s' % txn_.get_error())
  File "/ryu/ryu/lib/ovs/vsctl.py", line 132, in vsctl_fatal
    raise Exception(msg)        # not call ovs.utils.ovs_fatal for reusability
Exception: transaction error: {"details":"Table Bridge column controller row 69da7121-51fa-4d6e-ad24-18ff9c857b87 references nonexistent row 17c4aa64-ed91-4d8a-a905-a137e6969ad9 in table Controller.","error":"referential integrity violation"}

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:20:59 +09:00
YAMAMOTO Takashi
7b72677e42 of13 OFPBucket: fix a fatal typo
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:19:21 +09:00
YAMAMOTO Takashi
a3c06c6f22 of13 OFPGroupDescStats: fix super call
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:17:04 +09:00
YAMAMOTO Takashi
3ed1e3fa6b of13 OFPExperimenter: fix parser and remove completely broken serializer
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:16:24 +09:00
YAMAMOTO Takashi
3408c76f9a of13 fix OFPQueueProp parsing
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:16:05 +09:00
YAMAMOTO Takashi
c75be1d5f0 of13 fix multipart reply parsing
make the parser return specific classes like OFPGroupFeaturesStatsReply
instead of always returning OFPMultipartReply.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:15:48 +09:00
YAMAMOTO Takashi
6796ffc9fa of13 fix OFPGroupFeaturesStats parser
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:14:39 +09:00
YAMAMOTO Takashi
633cb455f1 of13: add missing itertools import
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:09:40 +09:00
YAMAMOTO Takashi
196b15d084 of12 OFPGroupFeaturesStats: add missing self.length
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:09:17 +09:00
YAMAMOTO Takashi
cb3823a152 of12: fix OFPExperimenter parser
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-20 06:07:43 +09:00
Oren Spector
6b2b043c4e of1.3: Fix parsing of OFP_QUEUE_GET_CONFIG_REPLY
Make parsing similar to that of OpenFlow 1.2 (message has the same format as in 1.3)

Signed-off-by: Oren Spector <oren@oliver-solutions.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-11 00:01:47 +09:00
Isaku Yamahata
6d414d0cdd packet lib: packet class supports get_protocol method
returns a list of protocols that matches to the specified protocol.

Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
Isaku Yamahata
178b1dd2bc packet lib: add Packet.__contains__
you can do something like:
  if arp.arp in Packet(msg.data):

  a = arp.arp(...)
  if a in Packet(msg.data):

  >>> from ryu.lib.packet import packet
  >>> from ryu.lib.packet import arp
  >>> a = arp.arp_ip(1, 0, 0, 0, 0)
  >>> p = packet.Packet()
  >>> p.protocols = [a]
  >>> arp.arp in p
  True
  >>> a in p
  True

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
a504815b55 packet lib: packet class accepts protocols list argument
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
c91960e1e0 packet lib: arp default args
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
6960bce56a packet lib: vlan default args
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
f79bcbc3f7 packet lib: mpls default args
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
bd8d3a2fa0 packet lib: ipv4 default args
Make ipv4 more handy by not asking for every args. I prefer to use
more human-readble representation for src and dst but it leads to the
API change so let's do it later with another patch.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:58:01 -07:00
FUJITA Tomonori
d63d4b1062 packet lib: icmp support time exceeded type
Used mainly for traceroute.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 23:38:07 +09:00
FUJITA Tomonori
3d9014733c of1.2: fix OFPSetConfig default arguments
If you use initialize like the following way:

OFPSetConfig(dp, miss_send_len=1600)

You get the following assertion when it's serialized:

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_2_parser.py", line 244, in _serialize_body
  assert self.flags is not None

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 23:37:35 +09:00
FUJITA Tomonori
8ab425f4ae fix travis config file
force to use virtual env.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-09 23:07:21 -07:00
FUJITA Tomonori
c06ad6e082 Add config file for Travis
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 14:21:38 +09:00
Shaun Crampton
f0dbb92011 packet lib: allow packet type to be specified when parsing packet
Signed-off-by: Shaun Crampton <Shaun.Crampton@metaswitch.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-10 07:32:57 +09:00
Shaun Crampton
95f79d6a51 packet lib: For convenience, make packet into a sequence type
Protocols can mow be accesed as packet[n].

Signed-off-by: Shaun Crampton <Shaun.Crampton@metaswitch.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-08 18:44:07 -07:00
FUJITA Tomonori
43b439770b Ryu 2.0
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v2.0
2013-06-02 20:28:44 +09:00
Shaun Crampton
144eca05b0 of1.3: various fixes
- OFPActionSetField
- OFPBucket parser
- OFPMeterBandStats

Signed-off-by: Shaun Crampton <Shaun.Crampton@metaswitch.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-02 20:12:49 +09:00
FUJITA Tomonori
d7d4d8c1b5 fix 77effb29 regression
The following commit broke ofp_attrs():

commit 77effb29a69eeb6d320dd9a7554924b2578c3c95
Author: Isaku Yamahata <yamahata@valinux.co.jp>
Date:   Mon May 27 18:15:27 2013 +0900

    ofproto/ofproto_parser: pylint

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-02 20:12:49 +09:00
Shaun Crampton
93b457bf63 packet lib: make test_packet work stand-alone
Prevent missing imports when running
  ./run_tests.sh ryu.tests.unit.packet

Signed-off-by: Shaun Crampton <Shaun.Crampton@metaswitch.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-06-01 21:11:51 +09:00
竹下昇
f9b24a1720 Add Packet library API Reference
Add DHCP encoder/decoder class.

Signed-off-by: TAKESHITA Noboru <takeshita.noboru@yes.nttcom.ne.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-05-31 17:54:01 +09:00
竹下昇
6f2716b7ff lib/packet: DHCP packet parser/serializer
Add DHCP encoder/decoder class.

Signed-off-by: TAKESHITA Noboru <takeshita.noboru@yes.nttcom.ne.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-05-31 17:53:56 +09:00
Isaku Yamahata
77effb29a6 ofproto/ofproto_parser: pylint
************* Module ryu.ofproto.ofproto_parser
W:155,4:MsgBase.__init__: __init__ method from base class 'StringifyMixin' is not called
W:186,8:MsgBase.parser: Redefining name 'msg' from outer scope (line 48)
W:240,14:ofp_attrs: Redefining name 'msg' from outer scope (line 48)
W:268,17:msg_str_attr: Redefining name 'msg' from outer scope (line 48)
E:270,20:msg_str_attr: Undefined variable 'ofp_attr'

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-05-31 17:41:14 +09:00
Isaku Yamahata
d86f04015a of1.0: use tun_id instead of tun_id_
Since there is no name conflict with tun_id, no reason to use tun_id_
instead of tun_id.
This is needed for OF message conversion from/to json later.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-05-31 17:41:00 +09:00
FUJITA Tomonori
f09407e4d6 docs: fix ryu module import
readthedocs.org complains about the failure about ryu module import.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-05-23 07:46:59 +09:00