182 Commits

Author SHA1 Message Date
FUJITA Tomonori
61e3df2a9c update setup.py and setup.cfg for better packaging
Note that now ryu uses /etc/ryu/ryu.conf. The previous install path
(/usr/etc/ryu/ryu.conf) doesn't fit to FHS.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-06 12:45:46 +09:00
FUJITA Tomonori
6167200c53 doc: update the requirement in README
Add WebOb and Routes. Also use pip names.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-05 13:49:36 +09:00
FUJITA Tomonori
32cb6a21a0 Replace wsapi
Ryu uses NOX's code based on twisted for web service. It's much
cleaner to use webob since Ryu doesn't use twisted framework. Let's
give up the NOX compatibility (incomplete) and go with the cleaner
code.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
2012-06-04 14:57:35 +09:00
FUJITA Tomonori
cc8e311329 add Nicira Extension NXAST_NOTE support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 13:09:18 +09:00
FUJITA Tomonori
db34d7a11d add Nicira Extension NXAST_DEC_TTL support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 13:09:17 +09:00
FUJITA Tomonori
ffa23780dd add Nicira Extension NXAST_FIN_TIMEOUT support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 13:09:16 +09:00
FUJITA Tomonori
c061b4758d add Nicira Extension NXAST_CONTROLLER support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 13:09:10 +09:00
FUJITA Tomonori
32163056e4 Add Nicira Extension NXT_SET_CONTROLLER_ID support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 13:09:09 +09:00
FUJITA Tomonori
903b80c800 silence pep8 warning
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-04 07:03:45 +09:00
FUJITA Tomonori
e8cc132ee6 fix NX_ACTION_HEADER pack string and size
also fix its unittest.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-03 08:45:37 +09:00
FUJITA Tomonori
67004ec643 don't close connection when getting OFPT_ERROR_MSG
It's a really bad idea to close a connection with a switch when
getting OFPT_ERROR_MSG. For example, ryu should continue to run about
'Request was not understood' type error because ryu doesn't know what
request types the switch supports.

Let applications catch OFPT_ERROR_MSG and do whatever they want. The
core should not do anything.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-03 08:45:33 +09:00
FUJITA Tomonori
807bb2d92b rename OFPGetSwitchConfig to OFPGetConfigReply class
We use OFPT_* names for class names. So 'OFPGetConfigReply' looks more
appropriate for OFPT_GET_CONFIG_REPLY.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2012-06-02 20:24:44 +09:00
FUJITA Tomonori
d9856db46f discard sample/test_simple_switch because of unittest fail
unittest crashes on commit e5e4b8442:

ERROR: testInit (ryu.tests.unit.sample.test_simple_switch.TestSimpleSwitch)

Traceback (most recent call last):
  File "/var/lib/jenkins/jobs/ryu-test-upstream/workspace/ryu/tests/unit/sample/test_simple_switch.py", line 20, in testInit
    ss = SimpleSwitch()
  File "/var/lib/jenkins/jobs/ryu-test-upstream/workspace/ryu/app/simple_switch.py", line 44, in __init__
    self.mac2port = kwargs['mac2port']
KeyError: 'mac2port'

The simple_switch unittest doesn't test anything anyway so let's
remove it for now.

This also fixes a pip8 error of simple_switch.py that the commit
e5e4b8442 added.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-02 05:20:12 +09:00
FUJITA Tomonori
25444420ab test: add NTT copyright to unittest files
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-01 20:46:57 +09:00
FUJITA Tomonori
5b9ad7f459 app/simple_switch: fix commit e5e4b844250d36788f9b1bf71cfd36a6e14d5315 regression
Traceback (most recent call last):
  File "bin/ryu-manager", line 71, in <module>
    main()
  File "bin/ryu-manager", line 53, in main
    app_mgr.instantiate_apps(**contexts)
  File "/Users/fujita/git/ryu/ryu/base/app_manager.py", line 102, in instantiate_apps
    app = cls(*args, **kwargs)
  File "/Users/fujita/git/ryu/ryu/app/simple_switch.py", line 44, in __init__
    self.mac2port = kwargs['mac2port']
KeyError: 'mac2port'

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-06-01 06:12:19 +09:00
Isaku Yamahata
e5e4b84425 ryu/app: convert existing application to new style ryu application
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-30 11:58:16 +09:00
Isaku Yamahata
32f644fbe9 base/app_manager: introduce application context
The ryu-manager creates structures which applications share.
Currently it is hard-coded in ryu-managers. Concretely network.Network and
dpset.DPSet. It is difficult to maintain the code appropriately by hand.
When the application is changed or new application comes in, ryu-manager
also must be updated.
So introduce the notion of application context so that application manager
can determine what structures applications want to share and create them.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-30 11:58:15 +09:00
FUJITA Tomonori
1e540507bd add NXT_ROLE_REPLY support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-28 17:12:36 +09:00
FUJITA Tomonori
be9fc3dc6d Add Switch to Controller Nicira extension message support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-28 17:12:34 +09:00
FUJITA Tomonori
0c74a7755c Add Switch to Controller Vendor message support
This enabls a vendor to register vendor's specific parser to handle
Switch to Controller Vendor messages.

An object that vendor's parser returns is placed at msg.data.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-28 17:11:17 +09:00
FUJITA Tomonori
840aea5d39 test: add more unittests
* MsgBase set_xid
* of1.0
 - NXActionSetQueue
 - NXActionPopQueue
 - NXActionExit
 - NXTRoleRequest
 - NXActionAutopath
* of1.2 msg_parser

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-28 16:25:27 +09:00
FUJITA Tomonori
921e685bf2 Fix NXActionAutopath parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-25 18:10:31 +09:00
FUJITA Tomonori
08653210a5 test: add unittests for of1.2 parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 15:47:23 +09:00
FUJITA Tomonori
d43b27d59c test: add more unittests for of1.0 parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 15:47:19 +09:00
FUJITA Tomonori
daa3dc8d26 test: add more unittests for of parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 15:47:00 +09:00
FUJITA Tomonori
a9318064a6 Fix OFPFlowRemoved __str__ method typo
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 09:37:40 +09:00
FUJITA Tomonori
9fe033fd91 Fix OFPVendorStats parser method
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 09:37:38 +09:00
FUJITA Tomonori
cd8da96cfd Fix OFPSwitchFeatures parser (of 1.2)
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 09:37:36 +09:00
FUJITA Tomonori
1b67d922f4 Fix the commit 458042d4032ad52dff93deb0f78d94cadb4f2d37 messup
Add Nicira Extension NXAST_POP_QUEUE constants

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 06:55:47 +09:00
FUJITA Tomonori
fd55c3f8d7 Fix the commit eea434b8e45bc8ee91aa02096903a66af898ae35 messup
Add Nicira Extension NXAST_SET_QUEUE constants

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-24 06:52:58 +09:00
FUJITA Tomonori
c41dca6e2b Fix OFPFlowStats parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-23 13:50:10 +09:00
FUJITA Tomonori
458042d403 Add Nicira Extension NXAST_POP_QUEUE support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2012-05-22 16:16:16 +09:00
FUJITA Tomonori
eea434b8e4 Add Nicira Extension NXAST_SET_QUEUE support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
Reviewed-by: Simon Horman <horms@verge.net.au>
2012-05-22 16:15:09 +09:00
FUJITA Tomonori
8082e3f174 add Nicira Extension NXAST_AUTOPATH support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-22 08:50:21 +09:00
FUJITA Tomonori
79189bd1f8 add Nicira Extension NXAST_EXIT support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-22 08:50:20 +09:00
FUJITA Tomonori
4d93ca62cf Fix NXActionSetTunnel64 parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-21 20:59:24 +09:00
FUJITA Tomonori
f68cdbfc04 Fix NXAactionOutputReg parser
Pass the proper variable.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-21 20:59:12 +09:00
FUJITA Tomonori
9b8c61f47a rename NXTRequest to NiciraHeader
We use NXTRequest for Switch-to-Controller messages so let's rename it
to an appropriate name.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
2012-05-21 18:01:10 +09:00
FUJITA Tomonori
2670733009 add NXT_ROLE_REQUEST support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
2012-05-21 17:59:45 +09:00
FUJITA Tomonori
8dff2cb058 Add NXT_ROLE_REQUEST/REPLY constants
NXT_ROLE_REQUEST/REPLY use the same on-wire format (NX_ROLE_PACK_STR).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
2012-05-21 17:59:05 +09:00
Isaku Yamahata
97cbf8412c ryu/controller/dpset.py: code simplification
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-20 19:51:03 +09:00
Isaku Yamahata
396fda8bc8 lib/dpid: dpid formatter/parser
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-20 19:51:01 +09:00
FUJITA Tomonori
b5592b08ea Kill parser_stats_body_array method in OFPFlowStats class
OFPStatsReply needs to handle variable-length bodys so having two
parsers (parser_stats_body_array and parser_stats_body) doesn't make
sense. Just kill parser_stats_body_array().

cls_stats_body_cls_size is also pointless since OFPStatsReply needs to
handle variable-length bodys. OFPStatsReply class needs to know if a
stats class is array or not. So register_stats_type takes
'body_single_struct' instead of body_cls_size. We need to change this
scheme if we need to handle VendorStats in the same way (both array
and single struct). But currently we don't even have any VendorStats
implementation so let's invent something more complicated when it
becomes necessary.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
2012-05-20 12:29:21 +09:00
FUJITA Tomonori
936635a1a9 fix OFPQueueGetConfigReply parser
msg.port should not be a tuple.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-20 09:41:36 +09:00
FUJITA Tomonori
fcc066d9cb fix OFPVendor parser
msg.vendor should not be tuple.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-20 09:41:34 +09:00
FUJITA Tomonori
5089fdf1dc fix typo in ofproto_v1_0_parser comment
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-20 09:41:33 +09:00
FUJITA Tomonori
c778b545a7 fix StatsReply parser
OFPStatsReply parser_stats_body_array needs body classes to have
length field.

We could set length as class-wide constants for classes having a fixed
length however we have two classes that need a variable length so
let's set the length in the same way for all the stats classes.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-19 21:55:44 +09:00
FUJITA Tomonori
7df808edec Fix OFPQueuePropMinRate class
- __str__ method: needs to pass a tuple to msg_str_attr
- parser method: rate shouldn't be a tuple.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-18 17:44:50 +09:00
FUJITA Tomonori
e817357a3b fix OFPPacketQueue class parser
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-18 17:44:48 +09:00
Isaku Yamahata
49214f61ee ryu/app/wsapi: make json_parse_message_body work
json_parse_message_body() didn't work. This patch fixes it.

>  File "ryu/app/wsapi.py", line 129, in json_parse_message_body
>    content = request.content.read()
> AttributeError: WSRequest instance has no attribute 'content'
> Traceback (most recent call last):

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2012-05-15 22:11:08 +09:00