629 Commits

Author SHA1 Message Date
FUJITA Tomonori
b471e1900f Ryu 1.8
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v1.8
2013-04-01 21:26:58 +09:00
YAMAMOTO Takashi
b9025b5e6e rest_firewall: fix comments
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-01 21:18:26 +09:00
YAMAMOTO Takashi
29ada11eed topology/dumper: fix RyuApp.__init__ signature
so that this is at least instantiatable.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Acked-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-01 21:17:54 +09:00
YAMAMOTO Takashi
a744128ef1 doc: fix a program name
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-01 21:16:53 +09:00
Yoshihiro Kaneko
adb4e3e66b of1.0: fix import error
Fix the  533fd972519871afe441d365f911a2970fe0875f commit.

This patch fixes the following issue.

Traceback (most recent call last):
  File "/opt/stack/ryu/bin/ryu-manager", line 42, in <module>
    from ryu.base.app_manager import AppManager
  File "/opt/stack/ryu/ryu/base/app_manager.py", line 25, in <module>
    from ryu.controller.handler import register_instance
  File "/opt/stack/ryu/ryu/controller/handler.py", line 20, in <module>
    from ryu.controller import ofp_event
  File "/opt/stack/ryu/ryu/controller/ofp_event.py", line 75, in <module>
    _create_ofp_msg_ev_from_module(m)
  File "/opt/stack/ryu/ryu/controller/ofp_event.py", line 60, in _create_ofp_msg_ev_from_module
    mod = utils.import_module(modname)
  File "/opt/stack/ryu/ryu/utils.py", line 35, in import_module
    __import__(name)
  File "/opt/stack/ryu/ryu/ofproto/ofproto_v1_0_parser.py", line 26, in <module>
    import utils.round_up
ImportError: No module named utils.round_up

Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-01 13:59:42 +09:00
Can Zhang
533fd97251 of1.0: utils.round_up cleanup
Signed-off-by: Can Zhang <can@canx.me>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-04-01 10:32:42 +09:00
Isaku Yamahata
e1414b7fbe lib/packet/tcp: use checksum_ip()
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:21:01 +09:00
Isaku Yamahata
4053cda285 lib/packet/udp: use checksum_ip()
As side effect, IPv6 is also supported.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:21:01 +09:00
Isaku Yamahata
3f72ee659d lib/packet/icmpv6: use checksum_ip()
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:21:01 +09:00
Isaku Yamahata
2195ba0e4d lib/packet: checksum function with pseudo ipv4/ipv6 header
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:21:01 +09:00
Isaku Yamahata
565df6fc48 lib/packet/packet_utils: improve checksum byteswap
move byteswap logic into checksum from caller.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
Isaku Yamahata
d0c5c14ad8 lib/packet/packet_utils: improve checksum padding
IP checksum needs padding.
Move padding logic into checksum from caller.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
Isaku Yamahata
01798a7439 tests/unit/packet/test_tcp.py: typo UDP -> TCP
TODO: test doesn't pass yet.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
Isaku Yamahata
1439e2c341 test_icmpv6: correct icmpv6 checksum
icmpv6_csum() uses wrong format. It happened to produce correct value
for csum.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:19:42 +09:00
YAMADA Hideki
d2f055eae1 ryu-client: print http response
Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:13:26 +09:00
YAMADA Hideki
51baabb9ee ryu-client: support Topology REST API
Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:13:26 +09:00
YAMADA Hideki
fd7a4e6119 topology: Add REST API
1. run topology/switches and app/rest_topology
$ ./bin/ryu-manager --verbose --observe-links ryu/topology/switches.py ryu/app/rest_topology.py

2. You can get topology json
$ curl http://127.0.0.1:8080/v1.0/topology/links
[{"src": {"hw_addr": "06:96:65:51:f8:ff", "name": "s2-eth3", "port_no": "00000003", "dpid": "0000000000000002"}, "dst": {"hw_addr": "4a:ed:13:ea:b7:e0", "name": "s1-eth1", "port_no": "00000001", "dpid": "0000000000000001"}}, {"src": {"hw_addr": "4a:ed:13:ea:b7:e0", "name": "s1-eth1", "port_no": "00000001", "dpid": "0000000000000001"}, "dst": {"hw_addr": "06:96:65:51:f8:ff", "name": "s2-eth3", "port_no": "00000003", "dpid": "0000000000000002"}}, {"src": {"hw_addr": "1e:7b:0b:fc:0a:2f", "name": "s1-eth2", "port_no": "00000002", "dpid": "0000000000000001"}, "dst": {"hw_addr": "4e:62:98:6f:16:57", "name": "s3-eth3", "port_no": "00000003", "dpid": "0000000000000003"}}, {"src": {"hw_addr": "4e:62:98:6f:16:57", "name": "s3-eth3", "port_no": "00000003", "dpid": "0000000000000003"}, "dst": {"hw_addr": "1e:7b:0b:fc:0a:2f", "name": "s1-eth2", "port_no": "00000002", "dpid": "0000000000000001"}}]

$ curl http://127.0.0.1:8080/v1.0/topology/switches
[{"ports": [{"hw_addr": "4a:ed:13:ea:b7:e0", "name": "s1-eth1", "port_no": "00000001", "dpid": "0000000000000001"}, {"hw_addr": "1e:7b:0b:fc:0a:2f", "name": "s1-eth2", "port_no": "00000002", "dpid": "0000000000000001"}], "dpid": "0000000000000001"}, {"ports": [{"hw_addr": "be:3b:8d:77:14:a5", "name": "s2-eth1", "port_no": "00000001", "dpid": "0000000000000002"}, {"hw_addr": "1e:bf:ec:8b:c2:5b", "name": "s2-eth2", "port_no": "00000002", "dpid": "0000000000000002"}, {"hw_addr": "06:96:65:51:f8:ff", "name": "s2-eth3", "port_no": "00000003", "dpid": "0000000000000002"}], "dpid": "0000000000000002"}, {"ports": [{"hw_addr": "52:a2:9a:7a:a8:a1", "name": "s3-eth1", "port_no": "00000001", "dpid": "0000000000000003"}, {"hw_addr": "62:25:ff:a5:a1:1a", "name": "s3-eth2", "port_no": "00000002", "dpid": "0000000000000003"}, {"hw_addr": "4e:62:98:6f:16:57", "name": "s3-eth3", "port_no": "00000003", "dpid": "0000000000000003"}], "dpid": "0000000000000003"}]

Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:13:12 +09:00
YAMADA Hideki
2a7e193fae topology: exported function returns Switch/Link list instead of event
Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:12:34 +09:00
YAMADA Hideki
4590e0d20e lib/port_no: handling port_no as string
Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-31 18:11:00 +09:00
Can Zhang
128b125f06 support parse OFPAction in NXFlowStats
Signed-off-by: Can Zhang <can@canx.me>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-30 15:32:30 +09:00
YAMADA Hideki
03c622453a test_parser_v10: fix unittest breakage
Commit 366da0 break unittest.
The following error occurs.

$ ./run_tests.sh
(...)

======================================================================
ERROR: test_parser (ryu.tests.unit.ofproto.test_parser_v10.TestOFPVendorStatsReply)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 4962, in test_parser
    eq_(specific_data, body.specific_data)
AttributeError: 'str' object has no attribute 'specific_data'

----------------------------------------------------------------------
Ran 1249 tests in 0.991s

FAILED (errors=1)

Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-30 14:10:33 +09:00
Isaku Yamahata
d3970faeab lib/packet/packet_base: fix signature of PacketBase.{parser, serialize}
All subclasses define them as
parser(cls, buf) and serialize(self, payload, prev)
Not parser(cls), serialize(self).

pylint also complains like
> W: 50,4:ipv4.parser: Arguments number differs from overridden method
> W: 65,4:ipv4.serialize: Arguments number differs from overridden method

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:34:17 +09:00
Can Zhang
65aba13864 of1.0: fix NXActionHeader typo
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:27:49 +09:00
竹下昇
4f94ae8c2b lib ofctl_v1_2: add VLAN_ID setting means
This patch contains the following update for ofctl_v1_2 library.
 adding a means which sets up VLAN_ID.

 (I think that I will use this by a firewall Ryu application.)

Signed-off-by: TAKESHITA Noboru <takeshita.noboru@yes.nttcom.ne.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:24:54 +09:00
OHMURA Kei
366da0b919 ofproto_v1_0_parser: add nx_flow_stats_{request, reply}
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:20:40 +09:00
OHMURA Kei
0bfc3cdee2 ofproto_v1_0: add nx_stats constants
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:20:38 +09:00
OHMURA Kei
e4ed8f7f60 nx_match: add MFField parser
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-28 19:20:35 +09:00
FUJITA Tomonori
6e352af0e0 lib ofctl_v1_2: fix file modes
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 06:49:26 +09:00
watanabe.fumitaka
bb72e9441f add ofctl_v1_2 library
This is a openflow v1.2 control library.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 06:48:10 +09:00
watanabe.fumitaka
b4424c92d9 update ofctl_v1_0 library
This patch contains the update for ofctl_v1_0 library.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 06:48:03 +09:00
watanabe.fumitaka
90b084a6eb add firewall Ryu application
This application operates a switch as a firewall.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 06:47:57 +09:00
OHMURA Kei
65b1d94da0 app_manager: fix close dict handling bug
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-24 14:34:14 -07:00
OHMURA Kei
734133612b ryu-manager: use try-finally statement
This fixes a problem that app_mgr.close() is not called when
KeyboardInterrupt exception occurs.

Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-24 14:33:45 -07:00
Christopher Scherb
322e0cfc9e nx_match: add vlan and vlan_pop
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-24 14:15:35 -07:00
YAMADA Hideki
7d5a68cdc2 topology: support link discovery
event.py: add link events.
switches.py: add link discovery (only of1.0).
dumper.py: add handler for link events.

TODO: support other OpenFlow version.

Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 03:13:11 +09:00
YAMADA Hideki
443891b1c4 topology: switch discovering module
This is an alternative of dpset, which supports event passing.

event.py: event class
switches.py: switch(datapath) discovery app using ofp_event
dumper.py: test and example app using switch discovery event

Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 03:13:08 +09:00
YAMADA Hideki
c249e76c3e event: Add sync flag and event src for request/reply
- To distinguish synchronous request or not.
- Event src is needed for asynchronous request too.

Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-25 03:13:05 +09:00
YAMAMOTO Takashi
9126ac201f TLS: use a full spelling of a cli option
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 22:26:36 +09:00
YAMAMOTO Takashi
e3fb48a0e0 TLS: test cli options consistently in the same line
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 22:26:35 +09:00
YAMAMOTO Takashi
fc584ae3d8 TLS: update an example output
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 22:26:32 +09:00
YAMAMOTO Takashi
4c0b438c4f ofconfig: use ElementTree iterator instead of getchildren
getchildren is documented to be obsolete.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 20:48:48 +09:00
Yoshihiro Kaneko
2ac7a9cf6c ryu.controller.controller.Datapath: keep handler list regardless of state
The list of handler to be called for the OFP message should be kept
even if the state is changed in a handler.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 16:34:51 +09:00
YAMAMOTO Takashi
9ad5a493af vsctl: fix timeout
- run_command's timeout argument is named 'timeout_msec', but
  all callers seem to pass the value in second.  so rename
  the argument to 'timeout_sec'.

- gevent.Timeout takes a timeout value in second.
  remove a conversion, which seems wrong even if the argument was in ms.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 07:57:59 +09:00
YAMAMOTO Takashi
134334137f tunnel_port_updater: g/c _LOCK
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 07:57:31 +09:00
HIYAMA Manabu
5cff2a3630 packet lib: fix icmpv6.nd parser
Signed-off-by: HIYAMA Manabu <hiyama.manabu@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-18 07:47:09 +09:00
Isaku Yamahata
914826d474 doc: of_config library
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 12:12:03 +09:00
Isaku Yamahata
3cfb6fa6e9 of_config: sample test code to use ofconfig capable_switch
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 12:12:01 +09:00
Isaku Yamahata
e2566bbd70 of_config: OF capable switch class to issue OFConfig request
This class implements direct API to ofconfig.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 12:11:59 +09:00
Isaku Yamahata
4290929266 of_config: constants for of-config
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 07:21:08 +09:00
Isaku Yamahata
281c8134b9 of_config/schema: add missing import
Otherwise lxml.etree.XMLSchema complains.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 07:21:03 +09:00