TODO:Open vSwtich (lib/ofp-util) support OF1.5 port_desc_request, but it has a bug[1].
So, re-generate the packet data by using packet_data_generator2 when Open vSwitch fix the bug.
ref: 1) http://openvswitch.org/pipermail/discuss/2015-July/018253.html
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
TODO:Open vSwtich (lib/ofp-util) support OF1.5 group_desc_request, but it has a bug[1].
So, re-generate the packet data by using packet_data_generator2 when Open vSwitch fix the bug.
ref: 1) http://openvswitch.org/pipermail/discuss/2015-July/018253.html
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
TODO: Because Open vSwitch (lib/ofp-util) does not support queue_desc request,
re-generate the packet data by using packet_data_generator2 when Open vSwitch supports it.
Reference: OpenFlow 1.1+ support status of Open vSwitch
https://github.com/openvswitch/ovs/blob/master/OPENFLOW-1.1%2B.md
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
iteritems() was renamed as items() to support Python3.
In accordance with this change, this patch adds items() into
OFPMatch/OFPStats class for convenience.
Reported-by: Ed Kiefer <ehk8@cornell.edu>
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Allows listening on a socket for OVSDB clients, reacting to their events
and modifying their database.
Co-Authored-By: Chris Hansen <chris.hansen.career@gmail.com>
Co-Authored-By: Ravi Kamachi <ravi.kamachi@rackspace.com>
Signed-off-by: Jason Kölker <jason@koelker.net>
Signed-off-by: Chris Hansen <chris.hansen.career@gmail.com>
Signed-off-by: Ravi Kamachi <ravi.kamachi@rackspace.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
In accordance with the upgrade of ofputil_packet_in structure
in OVS libraries, this patch fixes the usage of struct
ofputil_packet_in when initializing the flow metadata field.
FYI: The appropriate commit on OVS GitHub
50dcbd8ed4
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
There is no port information in output string of ENQUEUE in ofctl_v1_0.py
This patch fixes this problem.
Execution example is as follows.
curl -X GET http://localhost:8080/stats/flow/1
{
"1": [
{
"actions": [
"ENQUEUE:2:3" # ENQUEUE:<port>:<queue_id>
],
"byte_count": 0,
"cookie": 0,
"duration_nsec": 864000000,
"duration_sec": 107,
"hard_timeout": 0,
"idle_timeout": 0,
"match": {
"in_port": 5
},
"packet_count": 0,
"priority": 32768,
"table_id": 0
}
]
}
Reported-by: Weijie Liu <wliu43@illinois.edu>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
OpenFlow Spec 1.5 mandates that Experimenter OXMs encode the
experimenter type in the oxm_field field of the OXM header
(EXT-380).
Assumption: This can be applied for OXSs too.
This patch initializes exp_type value of _Experimenter class
with oxm_field/oxs_field value.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This class is parser class for OFPPDPT_RECIRCULATE type
in Port Description Properties.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This class is parser class for OFPPDPT_PIPELINE_INPUT and
OFPPDPT_PIPELINE_OUTPUT type in Port Description Properties.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This patch moves get_rest() and serialize() from OFPTableFeatureProp
to OFPPropBase in order to share it with other subclass.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This patch sorts out the inheritance relation of properties field class.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
To reflect the name of struct ofp_port_desc_prop_* in OpenFlow Spec 1.4/1.5,
this patch renames "OFPPortProp" to "OFPPortDescProp".
e.g.) in OpenFlow Spec 1.4
struct ofp_port_desc_prop_header {
uint16_t type; /* One of OFPPDPT_*. */
uint16_t length; /* Length in bytes of this property. */
};
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
OpenFlow Sepc 1.5 allows wildcard to be used in set-field
action (EXT-314).
This patch enables setting mask in set-field action.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
OpenFlow Spec 1.5 introduces Copy-Field action which allows to copy
the value from one header or pipeline field into another header or
pipeline field (EXT-320).
This patch add Copy-Field action support.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
OpenFlow Spec 1.5 introduces new instruction OFPIT_STAT_TRIGGER
to define a set of statistics thresholds using OXS (EXT-335).
This patch adds OFPIT_STAT_TRIGGER instruction support.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This patch adds the ability to match and set registers 1-7
in openflow.
Verified to work with OVS 2.3.1
Signed-off-by: Gal Sagie <gal.sagie@huawei.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
They are bugs found during python3 compatibility work.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
In python2, binary_type + bytearray gives bytearray, but it gives
binary_type in python3. Make sure the result is bytearray in both
cases. Also, remove some redundunt str()s rather than converting
them to six.binary_type.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Use next(i) instead of i.next() for iteration, which works both
in python2 and 3.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
checksum() was modifying argument when it is bytearray. Make sure
checksum() doesn't modify its argument.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Some packet data are ascii type. Use {encode,decode} to make
python3's struct.pack happy.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
AsciiStringType data are mostly IP addresses and they must be
text_type in python3 for text_to_bin to work.
Also introduce AsciiStringListType, which is suitable for lists of
IP addresses.
Signed-off-by: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>