details of the differences from the core code, by adding a protocol
layer that translates between OF1.x and a slightly higher-level
abstract representation. The core of this approach is the many struct
-ofputil_* structures in lib/ofp-util.h.
+ofputil_* structures in include/openvswitch/ofp-util.h.
As a consequence of this approach, OVS cannot use OpenFlow protocol
definitions that closely resemble those in the OpenFlow specification,
Transactional modification. OpenFlow 1.4 requires to support
flow_mods and port_mods in a bundle if bundle is supported.
(Not related to OVS's 'ofbundle' stuff.)
+ Implemented as an OpenFlow 1.4 feature. Only flow_mods and
+ port_mods are supported in a bundle. If the bundle includes port
+ mods, it may not specify the OFPBF_ATOMIC flag. Nevertheless,
+ port mods and flow mods in a bundle are always applied in order
+ and consecutive flow mods between port mods are made available to
+ lookups atomically.
[EXT-230]
[optional for OF1.4+]
* More extensible wire protocol
Many on-wire structures got TLVs.
- Already implemented: port desc properties, port mod properties,
- port stats properties, table mod properties,
- queue stats, unified property errors.
- Remaining required: set-async, queue desc
+ All required features are now supported.
Remaining optional: table desc, table-status
[EXT-262]
[required for OF1.4+]
* More descriptive reasons for packet-in
Distinguish OFPR_APPLY_ACTION, OFPR_ACTION_SET, OFPR_GROUP,
OFPR_PACKET_OUT. NO_MATCH was renamed to OFPR_TABLE_MISS.
- (OFPR_GROUP is now supported)
+ (OFPR_ACTION_SET and OFPR_GROUP are now supported)
[EXT-136]
[required for OF1.4+]