summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2013-07-31of12: make OFPMatch.to_jsondict work on instances composed with old apiYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12 OFPMatchField: make this safe to serialize multiple timesYAMAMOTO Takashi
this will be used by OFPMatch old api compat code. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: OFPMatch api compatYAMAMOTO Takashi
make old query api work on OFPMatch instances created with from_jsondict. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: OFPMatch from_json/to_json for new apiYAMAMOTO Takashi
this breaks from_json/to_json for old api Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: add OFPMatch.get for convenienceYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: add OFPMatch.iteritems for convenienceYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: new OFPMatch field query apiYAMAMOTO Takashi
an example: if 'ipv6_src' in match: print match['ipv6_src'] Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: new match field parserYAMAMOTO Takashi
add a new match field parser which fills OFPMatch attributes used by the new api. the old parser which fills match.fields is kept for now but will be removed later. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31of12: new OFPMatch composer apiYAMAMOTO Takashi
a new api to compose matches. it looks like: match = OFPMatch(in_port=1, eth_type=0x86dd, ipv6_src=('2001:db8:bd05:1d2:288a:1fc0:1:10ee', 'ffff:ffff:ffff:ffff::'), ipv6_dst = '2001:db8:bd05:1d2:288a:1fc0:1:10ee') the old match.set_foo and match.append_field methods are kept for now but will be removed later. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31oxm_fields: accept [value, mask] as well as (value, mask)YAMAMOTO Takashi
this will be used for OFPMatch from_jsondict implementation. as json has no notion of tuples, we will use a list instead. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31oxm_fields: generate OFPXMT_OFB_ and OXM_OF_ from a single sourceYAMAMOTO Takashi
also, implement text <-> binary convertions for field values. this will be used for later ofproto api refinement. (and probably stringify stuff) Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31add unit test for packet library llcwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31update library_packet_ref.rstwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31link to LLC sub layerwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31lib/packet/llcwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31lib/packet/bpduwatanabe.fumitaka
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31The trick for installing argparse is deletedSatoshi Kobayashi
This trick is contained in oslo.config. Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-31update packet generator code commentYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-30test_addrconv: fix a copy and paste mistakeYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-28Remove contrib/oslo directorySatoshi Kobayashi
oslo.config is installed from PyPI Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-25addrconv: remove embedded test codeYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-25add a test for ryu.lib.addrconvYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24regenerate packet_data for meter_modYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24test_parser: an expected result for meter_modYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24packet_data_generator: uncomment ofp_meter_modYAMAMOTO Takashi
the latest ryu has an implementation. also, tweak to use more band types. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24of13 OFPMeterMod: fix _len vs len mismatchYAMAMOTO Takashi
reported by Jyry Suuntala on ryu-devel@ Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24of13 OFPMeterBandExperimenter: fix superYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24ryu/app/ofctl_rest: add of1.3 supportKei Ohmura
This patch allows users to manually insert flows into switches via OpenFlow1.3 in the following way: curl -d '{"dpid":"1", "priority":"32768",\ "actions":[{"type":"SET_FIELD","field":"vlan_vid","value":10},\ {"type":"OUTPUT","port":2},\ {"type":"GOTO_TABLE","table_id":3}],\ "match":{"in_port":1}}' http://127.0.0.1:8080/stats/flowentry/add Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24add ofctl_v1_3 libraryOHMURA Kei
Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24rest_router: follow packet lib api changeYAMAMOTO Takashi
packet lib now uses bytes, not int/long, to represent ipv4 addresses. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: use bytes instead of int to represent ipv4 addressesYAMAMOTO Takashi
change ipv4 representation from int to bytes in many places. replace homegrown bin<->text routines with addrconv for ipv4. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: replace bin<->text converters for ipv6YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: replace bin<->text converters for mac addressesYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24addrconv: binary <-> text conversion of mac/ipv4/ipv6 addressesYAMAMOTO Takashi
implemented as a simple wrapper of netaddr. background: the goal is to use the consistent representations of addresses throughout the tree, instead of the current ad-hoc representations like a list of int16 for ipv6 address. - netaddr style text (eg. '10.0.0.1', 'ff02::1') for ryu-app level api. - on-wire binary for internal use. this is the first step to the direction. ie. have a single implementation of address representation conversion. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24lib/packet: add Link Aggregation Control ProtocolYuichi Ito
Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-24of-wire json test: a program to generate test data for unit testsYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-23dist: pypi tar ball misses tools directoryIsaku Yamahata
Reported-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-22stringify.StringifyMixin.__str__: simplifyYAMAMOTO Takashi
simplify the code a bit. suggested by Isaku Yamahata. no functional changes are intended. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-22rest_router: stop catching ExceptionYAMAMOTO Takashi
catch more specific exceptions instead. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json test: unit testYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json test: generated *.packetYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json test: expected resultsYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json: adapt OF13 OFPMeterBandYAMAMOTO Takashi
prefix OFPMeterBand.type and len with _ to avoid being picked by stringifymixin. they are redundant as json representation has python class name like OFPMeterBandDrop. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json: adapt OF13 OFPTableFeaturesStatsReplyYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of-wire json: adapt OF13 OFPPortDescStatsReplyYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of13: fix OFPTableFeaturesStats.parserYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of13: fix OFP_TABLE_FEATURES_PACK_STRYAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19of1.3: fix OFPort parserFUJITA Tomonori
s/length/_length/ Trace: [0x1000082e5f694c00] ('143.0.1.211', 56538): OFPGetConfigReply received: flags=NORMAL miss_send_len=1518 Error in the datapath 1000082e5f694c00 from ('143.0.1.211', 56538) hub: uncaught exception: Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/lib/hub.py", line 48, in _launch func(*args, **kwargs) File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/controller/controller.py", line 312, in datapath_connection_factory datapath.serve() File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/controller/controller.py", line 232, in serve self._recv_loop() File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/controller/controller.py", line 97, in deactivate method(self) File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/controller/controller.py", line 165, in _recv_loop version, msg_type, msg_len, xid, buf) File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/ofproto/ofproto_parser.py", line 54, in msg return msg_parser(datapath, version, msg_type, msg_len, xid, buf) File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/ofproto/ofproto_v1_3_parser.py", line 50, in msg_parser return parser(datapath, version, msg_type, msg_len, xid, buf) File "/usr/local/lib/python2.6/dist-packages/ryu-2.1-py2.6.egg/ryu/ofproto/ofproto_v1_3_parser.py", line 2192, in parser offset += b._length AttributeError: 'OFPPort' object has no attribute '_length' Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-19appease pep8YAMAMOTO Takashi
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-07-18add router Ryu applicationwatanabe.fumitaka
This patch implements router Ryu application. packet is forwarded on the static routing table. The routing table can be set up by the REST commands. and, Router can handle each vlan groups separately. -------------------------------------------- * Example case: Set static route on vlanID=10 From: address(172.16.10.0/24) belongs to the rest_router(switch_id=0000000000000001) To : address(10.0.255.0/24) belongs to the gateway router(192.168.10.20) - Following is the rest_router(switch_id=0000000000000001)'s setting. If the gateway router operates by the rest_router Ryu applicaion too, same setting is required. 1. add Address data(172.16.10.0/24, default_route=172.16.10.1) $ curl -X POST -d '{"address":"172.16.10.1/24"}' http://localhost:8080/router/0000000000000001/10 2. add Address data(192.168.10.0/24, default_route=192.168.10.1) $ curl -X POST -d '{"address":"192.168.10.1/24"}' http://localhost:8080/router/0000000000000001/10 3. add Static route(destination=10.0.255.0/24, gateway=192.168.10.20) $ curl -X POST -d '{"destination":"10.0.255.0/24","gateway":"192.168.10.20"}' http://localhost:8080/router/0000000000000001/10 - route can not be registered, if gateway's address is not registered as 'address data' 4. check of the registered address data and routing data. $ curl http://localhost:8080/router/0000000000000001/10 5. you can send packets from host(172.16.10.0/24) to gateway router(192.168.10.20), and send to host(10.0.255.0/24) if gateway router is set up correctly. (packet needs to contain vlan-tag=10) -------------------------------------------- Please refer to rest_router.py comments, for other RESTcommand interfaces. Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>