845 Commits

Author SHA1 Message Date
YAMAMOTO Takashi
4228f3de03 of13: update tests
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:47 +09:00
YAMAMOTO Takashi
1d24352b30 of13: fix json representation of OFPPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
94cda7a894 of12: update tests
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
4923862df0 of12: fix json representation of OFPPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
780381963d of10: update tests
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
9e698c7483 of10: fix json representation of OFPPhyPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
93a8487137 stringify: allow user classes to annotate type of their attributes
allow user classes to annotate type of their attributes using
_TYPE class attribute.

an example:

    class Foo(StringifyMixin):
        _TYPE = {'ascii': ['attr1', 'attr2']}
        def __init__(self):
            self.attr1 = 'hoge'
            self.attr2 = 'fuga'

currently handles only 'ascii' type, for which just convert from/to
unicode.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
1a3adadca4 of13: use text address for OFPPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
ec23d73770 of12: use text address for OFPPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
YAMAMOTO Takashi
bae19f1edf of10: use text address for OFPPhyPort.hw_addr and OFPPortMod.hw_addr
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-26 15:04:46 +09:00
FUJITA Tomonori
57705fe622 add simple learning switch app for OF1.2
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-24 07:54:52 +09:00
FUJITA Tomonori
47c8aa34eb add simple learning switch app for OF1.3
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-24 07:54:51 +09:00
FUJITA Tomonori
19445e20f2 of13: set ActionOutput default max_len to zero
same as of10.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-24 07:54:37 +09:00
FUJITA Tomonori
3553e7ec6c of12: set ActionOutput default max_len to zero
same as of10.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-24 07:54:36 +09:00
Yoshihiro Kaneko
c2acbc8cdf lib/packet: update docstrings to fix broken tables in latex/pdf
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-23 20:20:09 +09:00
Yoshihiro Kaneko
833328a54e of1.2, of1.3: update document for OFPMatch
ofproto_v1_3_parser.OFPMatch:
  add a list of available fields.
ofproto_v1_2_parser.OFPMatch:
  add docstrings same as of1.3.
doc:
  add reference page for of1.2

Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-23 20:16:58 +09:00
Ygor Amaral
f4e4765d31 packet lib: fix ipv6 parser
payload length in ipv6 header doesn't include the basic ipv6 header
length (40 bytes).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-23 06:59:05 +09:00
Satoshi Kobayashi
2ea5431ad3 ofctl lib: Actions is a list
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Acked-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-20 17:52:23 +09:00
YAMAMOTO Takashi
80bf4d30fb of13: test_parser: update expected *.json results
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:19 +09:00
YAMAMOTO Takashi
bb77437710 of13: test_parser: regen *.packet
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:19 +09:00
YAMAMOTO Takashi
d832509b38 of13: packet_data_generator: use set_field action
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:19 +09:00
YAMAMOTO Takashi
de438db080 of13: change OFPActionSetField api, following the recent OFPMatch api
old api:
    OFPActionSetField(MTInPort(OXM_OF_IN_PORT, 1))

new api:
    OFPActionSetField(in_port=1)

and make the json representation similar to OFPMatch as well.
an example:
          "OFPActionSetField": {
             "field": {
                "OXMTlv": {
                   "field": "vlan_vid",
                   "mask": null,
                   "value": 258
                }
             }
          }

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:19 +09:00
YAMAMOTO Takashi
ed4f74653d of12: test_parser: update expected *.json results
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:18 +09:00
YAMAMOTO Takashi
659e92c15f of12: test_parser: regen *.packet
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:18 +09:00
YAMAMOTO Takashi
a10c43d844 of12: packet_data_generator: use set_field action
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:18 +09:00
YAMAMOTO Takashi
af8aca25e9 of12: change OFPActionSetField api, following the recent OFPMatch api
old api:
    OFPActionSetField(MTInPort(OXM_OF_IN_PORT, 1))

new api:
    OFPActionSetField(in_port=1)

and make the json representation similar to OFPMatch as well.
an example:
          "OFPActionSetField": {
             "field": {
                "OXMTlv": {
                   "field": "vlan_vid",
                   "mask": null,
                   "value": 258
                }
             }
          }

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:09:18 +09:00
YAMAMOTO Takashi
54caa78e59 of13: update *.json after OFPMatch changes
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
8a0c25c2c9 of13: change OFPMatch json representation to match with on-wire
old:
    { "OFPMatch": {
        "eth_dst": "f2:0b:a4:7d:f8:ea"
    }}

new:
    { "OFPMatch": {
        "oxm_fields": [
            { "OXMTlv": {
                "field": "eth_dst",
                "mask": null,
                "value": "f2:0b:a4:7d:f8:ea"
            }}
        ]
    }}

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
cedeae6139 of13: make OFPMatch use oxm_fields routines
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
557e0986a7 of12: update *.json after OFPMatch changes
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
8b1ca35893 of12: change OFPMatch json representation to match with on-wire
old:
    { "OFPMatch": {
        "eth_dst": "f2:0b:a4:7d:f8:ea"
    }}

new:
    { "OFPMatch": {
        "oxm_fields": [
            { "OXMTlv": {
                "field": "eth_dst",
                "mask": null,
                "value": "f2:0b:a4:7d:f8:ea"
            }}
        ]
    }}

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
496e2ace82 of12: make OFPMatch use oxm_fields routines
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
b5d03f0c50 oxm_fields: add some routines
these will be used by the later OFPMatch and OFPActionSetField changes.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-15 11:02:39 +09:00
YAMAMOTO Takashi
d15a23488f packet_base: update docstring
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-13 20:25:56 +09:00
Yoshihiro Kaneko
50ea820dc8 ofproto_v1_3_parser: add docstring to OFPMatch
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-13 08:12:41 +09:00
YAMAMOTO Takashi
9220abd06f normalize json files using tools/normalize_json.py
i used to use json_pp for this purpose but different versions of perl
seem to format differently.
use python "json.dumps(d, ensure_ascii=True, indent=3, sort_keys=True)"
instead this time.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-13 08:12:38 +09:00
Yuichi Ito
d84d9a7c93 lib/packet: add Internet Group Management Protocol
Signed-off-by: Yuichi Ito <ito.yuichi0@gmal.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-12 09:37:56 +09:00
YAMAMOTO Takashi
bed38d4d12 test_parser: stop testing unsupported operations
while this happens to work right now, it will stop working when
we re-expose "len" and friends, which are only available after
parse or serialize.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-11 15:45:58 +09:00
YAMAMOTO Takashi
7ae93d2452 test_parser: have a list of operations expected to work
instead of guessing.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-11 15:45:57 +09:00
YAMAMOTO Takashi
c8ed38beae unit test: test OFPMatch.append_field
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-11 15:42:04 +09:00
YAMAMOTO Takashi
6bc1d4d817 unit test for OFPMatch old/new api compatibility
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-11 15:40:28 +09:00
watanabe.fumitaka
30b2dfb7a1 app/rest_firewall: add API for VLAN configuration
add REST-API for VLAN configuration of rest_firewall application.
it implements handling each vlan groups separately.

This update(v1->v2) contains the following change. make function of
 conversion of cookie and ruleID for easily understanding.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-08 17:41:40 +09:00
Isaku Yamahata
5e703c7f09 ofproto: _baseattribute can be class attribute
So that it can save memory a bit.

Cc: yamamoto@valinux.co.jp
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-07 13:59:32 +09:00
Glenn McGuire
4fd61eb8c5 ofproto: make binary code loadable
I've been using the latest RYU source from GIT, and building my own python
eggs.  When launching ryu-manager, I get the following error:

[root@hostname ryu]# ryu-manager
Traceback (most recent call last):
  File "/usr/bin/ryu-manager", line 5, in <module>
    pkg_resources.run_script('ryu==2.2', 'ryu-manager')
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 461, in
run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1194, in
run_script
    execfile(script_filename, namespace, namespace)
  File
"/usr/lib/python2.6/site-packages/ryu-2.2-py2.6.egg/EGG-INFO/scripts/ryu-manage\
r",
line 43, in <module>
    from ryu.topology import switches
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427,
in <module>
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574,
in Switches
AttributeError: 'module' object has no attribute 'EventOFPPortStatus'

[root@hostname ryu]# python ./bin/ryu-manager
Traceback (most recent call last):
  File "./bin/ryu-manager", line 55, in <module>
    from ryu.topology import switches
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427,
in <module>
  File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574,
in Switches
AttributeError: 'module' object has no attribute 'EventOFPPortStatus'

I found that I could execute ryu-manager correctly from the interactive
python shell but not from the command line, and looked at the derivation of
Event classes from pathnames.
It occurred to me that the eggs would not necessarily include the source
files, so I tried successfully to make the code look up both source and
compiled filenames, and return the union of that.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-07 13:59:15 +09:00
FUJITA Tomonori
38893d906b packet lib: make vrrp get_payload robust
Let's not make an assumption about the position of IP(v4 or v6) and
VRRP. The original code excepts pure ether or vlan and search them in
try-and-error way.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 16:43:57 +09:00
watanabe.fumitaka
0b5291856b packet lib to string: unit tests
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 09:25:50 +09:00
watanabe.fumitaka
e0d82b9d37 packet lib to string: add __str__ to base
Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 09:25:49 +09:00
watanabe.fumitaka
87cb024392 packet lib to string: inherits StringifyMixin
Some class inherits stringify.StringifyMixin

and, remove class variable 'tlvs' (not used as class variable
and interferes to string) from lldp.lldp

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 09:25:48 +09:00
YAMAMOTO Takashi
2a60164b64 unit tests for the new OFPMatch api
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 09:09:20 +09:00
YAMAMOTO Takashi
f1d86f0572 of13: fix old parser and serializer of PBB_ID
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-08-06 09:09:12 +09:00