508 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
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
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
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
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
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
Minoru TAKAHASHI
d1ff39ebab packet lib: dhcp: Fix to calculate Hardware address length
Reported-by: Sam Russell <sam.h.russell@gmail.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-20 21:15:18 +09:00
YAMAMOTO Takashi
72a06f6f60 Move msg_pack_into from ofproto to lib
A motivation of this change is a better modularity.
I.e. Make packet lib independent from ofproto.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-16 13:05:32 +09:00
Shu Shen
4de8c7425e ofproto: Fix invalid error code OFPQCFC_EPERM -> OFPSCFC_EPERM (EXT-208)
Invalid error code OFPQCFC_EPERM should be OFPSCFC_EPERM instead.
This is EXT-208 that was included in Openflow v1.3.1.

OFPSCFC_EPERM is backported to ofproto_v1_2 so that any new or updated
application could consistently use OFPSCFC_EPERM to handle all protocol
versions.

OFPQCFC_EPERM is left in ofproto_v1_2 and ofproto_v1_3 definitions for
backward compatibility.

Signed-off-by: Shu Shen <shu.shen@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-15 09:07:15 +09:00
Shu Shen
2889711e46 ofproto: Openflow 1.5 support (work-in-progress)
Work done:
- The baseline is copied over from ofproto_v1_4.py and
  ofproto_v1_4_parser.py and into ofproto_v1_5.py and
  ofproto_v1_5_parser.py respectively.
- Most of structs, enums, and pack strings in ofproto_v1_5.py has been
  updated to spec. Exception is oxs_fields has not been done yet.
- ofproto_v1_5_parser.py has not been updated except those necessary to
  allow run_tests.sh to complete successfully
- ofproto_protocol.py imports ofproto_v1_5 and ofproto_v1_5_parser now
- oxm_fields.py is updated for OFPXMC_PACKET_REGS
- Tests are updated to include Openflow v1.5 when it's obvious. But not
  much work has been done to acutally test v1.5 yet. I also found tests
  for v1.4 are scarce.

TODO:
- Add oxs_fields support. It shall be similar to oxm_fields
- Update and implement ofproto_v1_5_parser.py
- More tests, tests, tests.

Signed-off-by: Shu Shen <shu.shen@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-15 09:06:20 +09:00
YAMAMOTO Takashi
b3084c0e45 test_oxm: Add tests for EXT-109 and EXT-233
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-08 10:17:40 +09:00
YAMAMOTO Takashi
181d2fa3a2 test_nx_flow_spec: Add UTs for NX flow_mod_spec
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-25 21:50:37 +09:00
YAMAMOTO Takashi
be94c50ce6 test_oxm: Add UTs for 64-bit experimenter OXMs
Following Open vSwitch, introduce "dp_hash" OXM for testing.

>From their commit log: (commit 508a933809f8a8ede4fb93f1c1e3212799efc16a)
> Testing experimenter OXM is tricky because I do not know of any in
> widespread use.  Two ONF proposals use experimenter OXMs: EXT-256 and
> EXT-233.  EXT-256 is not suitable to implement for testing because its use
> of experimenter OXM is wrong and will be changed.  EXT-233 is not suitable
> to implement for testing because it requires adding a new field to struct
> flow and I am not yet convinced that that field and the feature that it
> supports is worth having in Open vSwitch.  Thus, this commit assigns an
> experimenter OXM code point to an existing OVS field that is currently
> restricted from use by controllers, "dp_hash", and uses that for testing.
> Because controllers cannot use it, this leaves future versions of OVS free
> to drop the support for the experimenter OXM for this field without causing
> backward compatibility problems.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-19 00:51:59 +09:00
YAMAMOTO Takashi
98a9f699be test_oxm: dedicated UTs for oxm_fields module
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-19 00:51:55 +09:00
YAMAMOTO Takashi
95d3a075fb OF 1.0: Use ofproto_common.NX_EXPERIMENTER_ID instead of NX_VENDOR_ID
And remove now unused NX_VENDOR_ID.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-19 00:51:55 +09:00
YAMAMOTO Takashi
22aaa699c9 Cleanup isinstance(foo, (int, long))
Use numbers where appropriate.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-19 00:51:55 +09:00
Minoru TAKAHASHI
1979bde573 ofctl_v1_2/3: Fully support the match combinations for VLAN ID
Currently, when VLAN ID match field is specified,
ofctl_v1_[23] is compatible with only match combination 1) of
the following three match combinations.
This patch makes it possible to set the all three combinations.

  Match combinations for VLAN ID :
    1) To match only packets with VLAN tag and VID equal value
    2) To match only packets without a VLAN tag
    3) To match only packets with a VLAN tag regardless of its value

In order to set the match combinations 2) or 3), please describe
"dl_vlan" field as hexadecimal string value like as follows.

  Before applying this patch:
    {"dl_vlan": 3 }              # int

  After applying this patch:
    {"dl_vlan": 3 }              # int (same as before applying)
    {"dl_vlan": "0x0000"}        # hexadecimal string without mask
    {"dl_vlan": "0x1000/0x1000"} # hexadecimal string with mask

NOTE: When "dl_vlan" field is described as decimal int value,
      OFPVID_PRESENT(0x1000) bit is automatically applied.
      OTOH, OFPVID_PRESENT(0x1000) bit is NOT automatically applied
      to hexadecimal string value.

For curl command examples, please refer to the following page in Ryu-documentation.
http://ryu.readthedocs.org/en/latest/app/ofctl_rest.html#example-of-vlan-id-match-field

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-11-29 08:17:01 +09:00
Yusuke Iwase
007d5adc0e test_ofctl: Modify to use new match api and field parser
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-11-25 11:21:54 +09:00
Yusuke Iwase
00b84aa3c0 test_utils: Add unit test for ryu.utils
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-11-07 14:43:22 +09:00
Minoru TAKAHASHI
828b6f48c4 test_ofctl_v1_2/3: Add a test case of masked metadata
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-11-18 15:57:56 +09:00
Minoru TAKAHASHI
b8d7db4076 test_ofctl_v1_2/3: Fix some test cases
UnitTest of the following cases had not been executed successfully.

{'dl_src/dst': "aa:bb:cc:11:22:33/*"}
{'eth_src/dst': "aa:bb:cc:11:22:33/*"}
{'nw_src/dst': "192.168.0.1/*", 'eth_type': 0x0800}
{'ipv4_src/dst': "192.168.0.1/*", 'eth_type': 0x0800}
{'arp_spa/tpa': "192.168.0.22/*", 'eth_type': 0x0806}
{'arp_sha/tha': "aa:bb:cc:11:22:33/*", 'eth_type': 0x0806}
{'ipv6_src/dst': '2001::aaaa:bbbb:cccc:1111/*', 'eth_type': 0x86dd}

This patch fixes this problem.

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-11-18 15:57:54 +09:00
FUJITA Tomonori
df2cf837ab packet lib: don't crash with truncated dhcp packet
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-26 20:29:52 +09:00
FUJITA Tomonori
1f2b24e834 packet lib: don't crash with corrupted lldp packet
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tested-by: Benjamin Eggerstedt <benjamin.eggerstedt@gmail.com>
2014-10-26 16:47:32 +09:00
Yusuke Iwase
ab9f00c1b0 sw test tool: Fix typos
Reported by Ian Y. Choi on ryu-devel.

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-16 10:59:30 +09:00
YAMAMOTO Takashi
f473308b37 test_parser: Update expected json representations
Update after tun_ipv4_src/tun_ipv4_dst changes.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:26 +09:00
YAMAMOTO Takashi
c93cafbd2c packet_data: Regen
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
0e2e378359 packet_data_generator: Add tun_ipv4_src and tun_ipv4_dst for OF1.3
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 13:34:25 +09:00
YAMAMOTO Takashi
00d736a8c3 test_addrconv: Fix a way to import the tested module
I'm not quite sure how it happens to work with the current
test environment.  But the current coding doesn't work when
running via testr probably due to different PYTHONPATH.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
YAMAMOTO Takashi
2d52d1922b test_parser: Make this independent from test environment path
To make this able to run via testr.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-14 10:54:36 +09:00
Wei-Li Tang
44437ea06d unit test for lib.packet.bfd
Signed-off-by: Wei-Li Tang <alextwl@xinguard.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-10 10:25:43 +09:00
Minoru TAKAHASHI
39f06bff87 test: add unittests for of1.3 parser
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-10-09 23:51:56 +09:00