2230 Commits

Author SHA1 Message Date
Satoshi Kobayashi
cfdba5c12d Fix ImportError(s) with Python3
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:19:56 +09:00
Satoshi Kobayashi
8698e09839 Use range() instead of xrange()
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:19:56 +09:00
Satoshi Kobayashi
cad8261b30 Reduce pep8 warnings with Python3
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:19:56 +09:00
Satoshi Kobayashi
e2dfdbf580 Treatment was not enough
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:19:56 +09:00
Satoshi Kobayashi
813379fea9 '+' operator can't combine no-string object
I don't know what it is not a really a string but use '%' for safety.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:19:56 +09:00
Takeshi
6973cde0cf Avoid invalid dpid and simplify the checking of ofctl version
Signed-off-by: Takeshi <a86487817@gmail.com>
Reviewed-by: Yusuke Iwase <iwase.yusuke0@gmail.com>
2015-04-14 05:18:37 +09:00
YAMAMOTO Takashi
c330ba18f7 packet_data_generator2: Fix message length field
Some of ofputil_encode_xxx functions does not fill in
the correct value for the length field in the ofp header.
Fix it up before writing out the message to a file.

NOTE: For Open vSwitch, ofconn_send() fixes it up before
sending out the message to the peer.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-14 05:17:58 +09:00
YAMAMOTO Takashi
856c3a9a70 test_parser: Add an expected result (bundle_add)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:20 +09:00
YAMAMOTO Takashi
a658eb6ca6 packet_data: regen (bundle_add)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:20 +09:00
YAMAMOTO Takashi
29424b68c1 packet_data_generator2: Add bundle_add
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:20 +09:00
YAMAMOTO Takashi
99ff8525ea test_parser: Add an expected result (flow_mod)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
af63b00d26 packet_data: regen (flow_mod)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
c8fe765eda packet_data_generator2: clear XID field
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
afb153f175 packet_data_generator2: Add flow_mod
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
3e48d82c62 test_parser: Add a expected result (bundle_ctrl)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
1cc160913a packet_data: regen (bundle_ctrl)
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
86697d52f9 packet_data_generator2: Add bundle_ctrl
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
49ef3cd658 of15: Implement OFPBundleCtrlMsg parser
TODO: backport to of14
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
YAMAMOTO Takashi
87015d1a2d packet_data_generator2: README
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 15:46:17 +09:00
Satoshi Kobayashi
172d9702ac Show warning when Datapath#ports is read
Datapath#ports is kept for compatibility with the previous openflow versions (< 1.3). Datapath#ports is not updated when received EventOFPPortStatus. This behavior may confuse users. Wherefore, showing warning message when the user accesses to Datapath#ports with the currently openflow versions (>= 1.3) is friendly.

Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 12:57:49 +09:00
Satoshi Kobayashi
325c9ae9c3 Syntax level compatibility with Python 3
We use syntaxes which can be used only in Python2 at many locations. But we should reduce the use of the syntaxes. This patch serves syntax level compatibility with Python3. However, for full compatibility is required still a lot of work because many API changes are made between 2 to 3.

Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-08 12:57:45 +09:00
FUJITA Tomonori
3f448ad2e4 Ryu 3.20
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v3.20
2015-04-03 20:21:01 +09:00
Yusuke Iwase
e598af67d2 rest_firewall: Prevent adding fields which is unrelated to match
This patch prevent rest_firewall.py from adding unrelated fields
(e.g. priority, actions) into match fields.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:59:51 +09:00
Yusuke Iwase
45762b0d9e ofctl_v1_[23]: Ignore unkown match fields
Currently, ofctl_v1_[23].py adds non-existing match fields
when getting unknown match fields, then parser returns KeyError.
This patch fixes ofctl_v1_[23].py to ignore unkown match fields and
output error messages.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:59:50 +09:00
YAMAMOTO Takashi
ea5f9ff097 Revert "pip-requires: Remove comments"
This reverts commit 8fc25ca6c8c3f4510980b14db2604e62af043a2d.
The workaround is no longer necessary because the relevant fix
in devstack [1] has been merged.

[1] https://review.openstack.org/#/c/165709/

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:51:29 +09:00
YAMAMOTO Takashi
a9b26f0fa6 test_parser: Enable OpenFlow 1.5 tests
Dig into the "of15" directory.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:51:29 +09:00
YAMAMOTO Takashi
c43c6e49e5 test_parser: Add a expected result
For OpenFlow 1.5.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:51:29 +09:00
YAMAMOTO Takashi
420bef6a7d packet_data: regen
For OpenFlow 1.5.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:51:29 +09:00
YAMAMOTO Takashi
a85fbc9694 packet_data_generator2: another packet data generator using libofproto
For OpenFlow 1.5.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-03 17:51:29 +09:00
YAMAMOTO Takashi
8fc25ca6c8 pip-requires: Remove comments
This partially reverts commit bf58a6dcf3dcf6241fc1c9e58f3e43d2aa9ea7f2.

devstack (stable/juno) fails to process comments in this file.
While a fix for devstack has been proposed [1], it might take some time
to be merged.  I guess it's best to fix it in ryu, at least for a while.

[1] https://review.openstack.org/#/c/165709/

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-22 15:39:18 +09:00
YAMAMOTO Takashi
76969c0c0a lib.ovs.vsctl: Fix a crash
Fix some typos in the code.
This fixes a crash reported on ryu-devel@.
http://sourceforge.net/p/ryu/mailman/message/33607025/

Reported-by: Jason Syu <newdongfong@gmail.com>
Tested-by: Jason Syu <newdongfong@gmail.com>
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-22 15:39:17 +09:00
Toshiki Tsuboi
b0a69791bb bmp: fix bug of logging format in bmpstation
% ryu-manager bmpstation.py --verbose
loading app bmpstation.py
instantiating app bmpstation.py of BMPStation
BRICK bmpstation
listening on 0.0.0.0:11019
Traceback (most recent call last):
  File "/usr/lib/python2.7/logging/__init__.py", line 851, in emit
    msg = self.format(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 724, in format
    return fmt.format(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
    record.message = record.getMessage()
  File "/usr/lib/python2.7/logging/__init__.py", line 328, in getMessage
    msg = msg % self.args
TypeError: not enough arguments for format string
Logged from file bmpstation.py, line 51

Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-22 15:39:16 +09:00
Yusuke Iwase
e9d7050a91 ofctl_rest: Reduce pylint warnings
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-18 22:27:13 +09:00
Yusuke Iwase
7c98ab2345 doc/app/ofctl_rest: Fix example of ipv6_exthdr match field
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-18 22:27:12 +09:00
Yusuke Iwase
d299339991 test_ofctl: Add unit test for masked ipv6_exthdr match field
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-18 22:27:11 +09:00
Yusuke Iwase
109d2bb2fd ofctl_v1_3: Support masked ipv6_exthdr match field
In OpenFlow Spec 1.3.4, ipv6_exthdr is maskable match field,
but ofctl_v1_3 does not support mask.

This patch makes ofctl_v1_3 enable to set masked ipv6_exthdr.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-18 22:27:10 +09:00
YAMAMOTO Takashi
f39e95043c requirements: Drop some optional requirements
Move some non pure python requirements (namely lxml and paramiko)
from pip-requires to test-requires.  Document it in README.rst.

Motivations:

- Make this pip-installable with pypy
- Less distribution package requirements (deb/rpm/etc) in case
  a user do not actually need the functionality

Note: while paramiko itself is pure python, it requires pycrypto.
Note: msgpack has pure python fallback implementation.

Separating ryu into smaller packages would be a better alternative.
However, it would involve a lot more work than this workaround.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 12:20:25 +09:00
YAMAMOTO Takashi
e33f5e4d3a README.rst: Replace a reference to ryu-plugin with ofagent
Ryu-plugin is obsolete and has been removed in the development version
of OpenStack/Networking.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 12:20:24 +09:00
YAMAMOTO Takashi
bf58a6dcf3 pip-requires: Add comments to say what's required by what
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 12:20:23 +09:00
YAMAMOTO Takashi
e7b5e2c1fd UT: Remove unused imports
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 12:20:22 +09:00
YAMAMOTO Takashi
7701b4d792 bgp: Remove an unused import
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 12:20:20 +09:00
Mark Lentczner
10dcde272d yet more logging call cleanups
Signed-off-by: Jerry Cen <zhiweic@google.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-17 08:16:59 +09:00
YAMAMOTO Takashi
5d993c46ee ryu.app.ofctl: Handle a race with connection close
Report the failure to the client rather than crashing.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-16 21:39:44 +09:00
FUJITA Tomonori
f10f4f7cfd silence pep8 warnings to the previous commit
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-16 21:30:09 +09:00
Mark Lentczner
b636219007 Reduce logging overhead by cleaning up logging calls
Deferred formatting to the logging system:
---------------------------------------------
In general
    logger.debug('xxx %s yyy %d zzz' % (a, b, c))
can be written as:
    logger.debug('xxx %s yyy %d %zzz', a, b, c)
This is faster, as Python logging doesn't bother doing the format
operation (which is slow) if the log message won't be logged.

We measured that a significant amount of CPU time in the BGP service
was attributable to these formatting operations.

Removed unneeded calls to str() and repr()
------------------------------------------
since formatting operations %s and %r will make these calls when
(and if) the formatting is performed.

Signed-off-by: Jerry Cen <zhiweic@google.com>
Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-16 21:11:10 +09:00
FUJITA Tomonori
1dd28e459e Ryu 3.19
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
v3.19
2015-03-02 10:59:35 +09:00
Yusuke Iwase
e922a92979 snortlib: Remove disabled flag MSG_WAITALL
Because Ryu is based on Eventlet, GreenSocket is used by default and
blocking flags is disabled. So MSG_WAITALL flag is not available.

This patch removes MSG_WAITALL flag, and fixes snortlib.py to check
received buffer size in _recv_loop_nw_sock().

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-02 10:47:32 +09:00
YAMAMOTO Takashi
305e41f47b ryu.cfg: Use a dedicated ConfigOpt instance
This might be necessary for future vesions of Neutron OVS agent.

1. The agent parses options, including command line options, using
  oslo.config.cfg.CONF ConfigOpt instance.
2. Depending on options, it might lazily import ryu modules.
3. The ryu modules might have import-time register_cli_opts calls
  against ryu.cfg.CONF.
3. As ryu.cfg.CONF is same as oslo.config.cfg.CONF, oslo.config
  raises an exception, complaining register_cli_opts is used after
  parsing command line options.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-26 20:18:27 +09:00
Yusuke Iwase
7fb83c149f snortlib: Fix nw_sock handling
Currently, snortlib cannot receive reconnect request from Snort client
program (e.g. pigrelay.py).
This patch fixes this problem.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-25 22:57:58 +09:00
Akihiro Suda
afccf3954b of: Prevent __str__() methods from raising exceptions
ofproto_parser.MsgBase.__str__(): avoid "TypeError: %x format: a number is required, not NoneType"
2015-02-25 22:56:56 +09:00