summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2013-02-05dpset: add port event supportFUJITA Tomonori
Based on the following patch: From: Isaku Yamahata <yamahata@valinux.co.jp> Subject: dpset: add port{add, delete, modify} event for convenience and helper functions It is sometimes commonly interesting to track datapath/port appearance/disappearance. The applications usually want to see that ports appear after datapath becomes ready, and ports disappear when datapath is dead. It requires to handle properly events, hand shaking, port_mod event, switch_feature_reply. So introduce a common layer to handle them. GRE tunnel is interested in datapath/port appearance/disappearance. With this, tunnel app doesn't have to handle those conditions. Discovery is interested only in datapath/port appearance/disappearance. With this, discovery app would not have to handle OFP events directly. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05controller/network: add event supportsFUJITA Tomonori
Base on the following patch: From: Isaku Yamahata <yamahata@valinux.co.jp> Subject: controller/network: factor out network.py and add event generator for gre tunnel and helper methods - Factor out from network.py the logic to track network and dpid - introduce class Port to allow other info Later we'll track mac address associated to port. So allow intermediate layer to contain infos related to Port. - make network track mac address associated to port - generate events Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05controller/handler: allow set_ev_cls not to specify dispatchersFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05packet lib: add ipv6 ICMP supportHenkel, Michael
Signed-off-by: "Henkel, Michael" <michael.henkel@hp.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05packet lib: add ipv6 supportHenkel, Michael
Signed-off-by: "Henkel, Michael" <michael.henkel@hp.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05packet lib: add LLDP support.YAMADA Hideki
See "ryu/tests/unit/packet/test_lldp.py" to use this library. This patch is based on Yamahata's topology discovery patch series. http://thread.gmane.org/gmane.network.ryu.devel/467 Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05xflow: add netflow supportOHMURA Kei
This patch only implements netflowV5 parser. Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05remove event dumper applicationFUJITA Tomonori
This needs to be reimplemented so that each componet is enable to debug its own events. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-05remove old dispatcher and friendsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04bin/ryu-manager: import ryu.flags for common optionsIsaku Yamahata
Otherwise those options can't be specified. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04app/client: add helper function to ignore NOT_FOUND, 404Isaku Yamahata
Sometimes client code just wants to ignore 404 when deleting resources. So provide helper function for it. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04ryu/app/client: factor out rest client codeIsaku Yamahata
REST API will be enhanced. So factor out reset client code such that it affords extension. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04app/rest_nw_id: add port type for reserved port and vport-greIsaku Yamahata
This patch adds new port type for reserved port and vport-gre. They will be used later. Via this REST API, ryu knows which port is used for gre or reserved port. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04app/rest: add requirements to path componentIsaku Yamahata
This patch adds requirements to path component so that URL is verified. And simplify with submapper. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04replace dispatcher mechanismFUJITA Tomonori
This is purely internal change and no API for applications is changed. At least, I confirmed that folsom OpenStack plugin works. With the current dispatcher mechanism, multiple greenlets call applications' handlers and might be blocked anywhere so we need various locks to handle that concurrency. This makes things difficult for application developers. With this patch, each applications are connected with events. Each application has the own greenlet(s) to handle events and might send events to other applications. If an application registers handlers for some OF events, it subscribes to OF component and registers the OF events that it's interested. OF application delivers such OF events to the application and the application's greenlet executes the handlers. With this, we can completely remove dispatcher.py and its friends. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04lib/ovs/bridge: helper class to manipulate ovs bridgeIsaku Yamahata
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04lib/ovs/vsctl: python reimplementation of ovs-vsctlIsaku Yamahata
This implements subset of ovs-vsctl which is used later. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-04lib/ovs: add constants for ovsdb Open_vSwitch dbIsaku Yamahata
Those constants are used to manipulate Open_vSwitch db of ovsdb. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-02-02contrib: fix a comment typoYAMAMOTO Takashi
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>
2013-01-30dpset: fix join racemarcelo
the datapath object should be added to the list in DPSet before datapath_join event is fired. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-30packet lib: pep8 warning fixYAMAMOTO Takashi
run_tests.sh complained. ryu/lib/packet/icmp.py:102:15: E271 multiple spaces after keyword return msg ^ Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-30test: remove some unnecessary bash dependenciesYAMAMOTO Takashi
/bin/bash is not so ubiquitous. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-30Ryu 1.6FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-29test: add mininet-test suiteHIYAMA Manabu
This patch adds a test framework using mininet. The following tests can be performed. - Set the flow for the OVS-switch from Ryu-app, we test the actual packet is to be handled properly in accordance with the flow; The packet that generated by "mz" or replayed by "tcpreplay" is routed through the ovs-switch, are processed according to the flow, then compare test conditions and the results captured by "tshark". - Create a packet with ryu using the packet-lib, we test the packet and response are correct; to compare test conditions and the results captured by "tshark". $ ./run_mnet-test.sh [OPTION] [TEST DIR or FILE]... $ ./run_mnet-test.sh l2 l3/icmp packet_lib/arp/ARP_gratuitous.mn $ ./run_mnet-test.sh --help Requirements package: - mininet: git://github.com/mininet/mininet.git - openvswitch: git://openvswitch.org/openvswitch - Mausezahn 0.40: http://www.perihel.at/sec/mz/ - TShark 1.6.2: http://www.wireshark.org/ - tcpreplay 3.4: http://tcpreplay.synfin.net/ Signed-off-by: HIYAMA Manabu <hiyama.manabu@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-29test: Add "Decrement IP TTL" integration testHIYAMA Manabu
Signed-off-by: HIYAMA Manabu <hiyama.manabu@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-25ofctl_v1_0: fix stats timeout handlingOHMURA Kei
This patch fixes a issue reported by https://github.com/osrg/ryu/issues/7 Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-23fix lack of comma in flagfile listYoshihiro Kaneko
When flagfile option is omitted, ryu-manager cannot find "/etc/ryu/ryu.conf". Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-10of1.3: Fix a typo in OFPPacketOutKrzysztof Rutka
- in_port was missing an underscore Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-08setup: update installation infosIsaku Yamahata
- clean up setup.py and MANIFEST.in - simplejson isn't needed anymore - allow webob >= 1.0.8 as openstack quantum uses >= 1.0.8 version - allow gflags >= 1.3 as Fedora 18 uses gflags 1.5 Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-01-07test: change the branch of openvswitch to 'of12'HIYAMA Manabu
Change the branch of openvswitch used by integration tests to 'of12' Signed-off-by: HIYAMA Manabu <hiyama.manabu@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-20ofp_handler: receiving side of OFPHelloElem version negotiationIsaku Yamahata
Teach Hello handler OFPHelloElemBitmapVersion Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-20of1.3: improve OFPHello and OFPHelloElemVerionsBitmapIsaku Yamahata
- fix bitmap offset calculation - un-tuple bitmap. The result of struct.unpack is a tuple - OFPHelloElemVerionsBitmap parser needs to be aware padding - make OFPHelloElemVerionsBitmap parse bitmap into the list of versions - make OFPHello always have elements attribute Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-20ofctl_{rest, v1_0}: update and clean upOHMURA Kei
- rename push_flow_entry to mod_flow_entry - add OFPFC_{MODIFY, DELETE} support - remove debug message Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-19ryu-manager: fix keyErrorOHMURA Kei
Exception can be be caused by importing the threading module before monkey.patch_all(). This patch fixes the following keyError: $ ryu-manager --version ryu-manager 1.5 Exception KeyError: KeyError(30027824,) in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-19don't abuse __dict__ attributeIsaku Yamahata
There are built-in functions to handle attribute like hasattr. Use standard functions instead of abusing __dict__. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-19ofp_handler: Improve hello version negotiationIsaku Yamahata
When switch sends version higher than Ryu supports, Ryu fails to negotiate. In this case 4 = OF1.3 from switch 3 = OF1.2 from Ryu datapath.supported_ofp_version = (3 = OF1.2,) In such cases, we should use OF1.2 instead of error. > Connection to controller closed because of {"localhost",6633,0, {unsupported_version,4}} Reported-by: Shivaram Mysore <shivaram.mysore@gmail.com> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-18of1.3: fix OFPMultipartReply parserFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-15of1.3: support OFPHET_VERSIONBITMAPFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-11doc: setup TLS connectionOHMURA Kei
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-12-07of1.3: fix OFPT_PACKET_IN parserFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-30Ryu 1.5FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-30set setup.py install_requires properlyFUJITA Tomonori
Let's enable pip to solve the dependency. The code is taken from OpenStack. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-30python/ovs/stream: Fix Stream.connect() retval for incomplete connection.Isaku Yamahata
This code is a backport from the upstream OVS (commit dcb66da): If the loop condition in Stream.connect() was false, which is especially likely for TCP connections, then Stream.connect() would return None, which violates its documented behavior. This commit fixes the problem. Reported-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-30Revert "contrib/ovs/stream.py: TypeError: bad operand type for unary -: ↵Isaku Yamahata
'NoneType'" This reverts commit c3a41d06a654ea81cdc79d7bda5106d05f2e1deb. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-28ryu/log: bugfixYAMADA Hideki
$ ryu-manager --log_file $HOME/ryu.log Traceback (most recent call last): (...) File "/usr/local/lib/python2.7/dist-packages/ryu-1.1-py2.7.egg/ryu/log.py", line 74, in init_log logging.addHandler(logging.handlers.WatchedFileHandler(log_file)) AttributeError: 'module' object has no attribute 'addHandler' $ ryu-manager --log_file $HOME/ryu.log Traceback (most recent call last): (...) File "/usr/local/lib/python2.7/dist-packages/ryu-1.4-py2.7.egg/ryu/log.py", line 74, in init_log log.addHandler(logging.handlers.WatchedFileHandler(log_file)) AttributeError: 'module' object has no attribute 'handlers' $ ryu-manager --log_file $HOME/ryu.log Traceback (most recent call last): (...) File "/usr/local/lib/python2.7/dist-packages/ryu-1.4-py2.7.egg/ryu/log.py", line 76, in init_log mode = int(FLAGS.log_file_mnode, 8) File "/usr/local/lib/python2.7/dist-packages/gflags.py", line 810, in __getattr__ raise AttributeError(name) AttributeError: log_file_mnode $ ryu-manager --log_dir $HOME/log/ Traceback (most recent call last): (...) File "/usr/local/lib/python2.7/dist-packages/ryu-1.4-py2.7.egg/ryu/log.py", line 54, in _get_log_file return os.path.join(FLAGS.logdir, File "/usr/local/lib/python2.7/dist-packages/gflags.py", line 810, in __getattr__ raise AttributeError(name) AttributeError: logdir Signed-off-by: YAMADA Hideki <yamada.hideki@po.ntts.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-26ofctl_v1_0: update and clean upOHMURA Kei
- add ip match support - add match_to_str() and actions_to_str() instead of action_to_str() Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-23enable OF1.3 supportFUJITA Tomonori
Ryu sucessfully connects to CPqD OF1.3 switch. https://github.com/CPqD/ofsoftswitch13 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-23of1.3: fix OFPMP_FLOWFUJITA Tomonori
FlowStats works now. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-23of1.3: support OFPMatchFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-11-23Add workaround to switch_features_handler for OF1.3FUJITA Tomonori
hacky workaround, will be removed. OF1.3 doesn't have ports. An application should not depend on them. But there might be such bad applications so let's keep this workaround for while. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>