Merge branch 'mainstream'
[sliver-openvswitch.git] / OPENFLOW-1.1+
index 190dd29..f978cb5 100644 (file)
@@ -54,9 +54,6 @@ OpenFlow 1.1
 The list of remaining work items for OpenFlow 1.1 is below.  It is
 probably incomplete.
 
 The list of remaining work items for OpenFlow 1.1 is below.  It is
 probably incomplete.
 
-    * Implement Write-Actions instruction.
-      [required for 1.1+]
-
     * The new in_phy_port field in OFPT_PACKET_IN needs some kind of
       implementation.  It has a sensible interpretation for tunnels
       but in general the physical port is not in the datapath for OVS
     * The new in_phy_port field in OFPT_PACKET_IN needs some kind of
       implementation.  It has a sensible interpretation for tunnels
       but in general the physical port is not in the datapath for OVS
@@ -69,18 +66,6 @@ probably incomplete.
       behavior does not change.
       [required for OF1.1 and OF1.2]
 
       behavior does not change.
       [required for OF1.1 and OF1.2]
 
-    * Flow table stats (OFPST_TABLE).
-
-        * Reference count (active entries)
-          [implemented]
-          [required for OF1.1 and OF1.2]
-
-        * Packet Lookups
-          [required for OF1.1; optional for OF1.2]
-
-        * Packet Matches
-          [required for OF1.1; optional for OF1.2]
-
     * MPLS.  Simon Horman maintains a patch series that adds this
       feature.  This is partially merged.
       [optional for OF1.1+]
     * MPLS.  Simon Horman maintains a patch series that adds this
       feature.  This is partially merged.
       [optional for OF1.1+]
@@ -93,40 +78,18 @@ probably incomplete.
       reasonable performance.
       [required for OF1.1+]
 
       reasonable performance.
       [required for OF1.1+]
 
-    * Groups.
-
-        * Type all
-          [required for OF1.1+]
-
-        * Type select
-          [optional for OF1.1+]
-
-        * Type indirect
-          [required for OF1.1+]
-
-        * Type fast failover
-          [optional for OF1.1+]
-
-        * Statistics
-          [optional for OF1.1+]
-
 OpenFlow 1.2
 ------------
 
 OpenFlow 1.2
 ------------
 
-OpenFlow 1.2 support requires OpenFlow 1.1 as a prerequisite, plus the
-following additional work.  (This is based on the change log at the
-end of the OF1.2 spec.  I didn't compare the specs carefully yet.)
-
-    * OFPT_FLOW_MOD:
-
-        * New flag OFPFF_RESET_COUNTS.
-          [required for OF1.2+]
-
-        * Add ability to delete flow in all tables.
-          [required for OF1.2+]
+OpenFlow 1.2 support requires OpenFlow 1.1 as a prerequisite. All the
+additional work specific to Openflow 1.2 are complete.  (This is based
+on the change log at the end of the OF1.2 spec.  I didn't compare the
+specs carefully yet.)
 
 
-        * Update DESIGN to describe OF1.2 behavior also.
-          [required for OF1.2+]
+    * Action translation needs some work to transform OpenFlow 1.1
+      field modification actions into OpenFlow 1.2+ "set-field"
+      actions, because OpenFlow 1.2 dropped support for the OF1.1
+      actions.
 
 OpenFlow 1.3
 ------------
 
 OpenFlow 1.3
 ------------
@@ -136,16 +99,18 @@ following additional work.  (This is based on the change log at the
 end of the OF1.3 spec, reusing most of the section titles directly.  I
 didn't compare the specs carefully yet.)
 
 end of the OF1.3 spec, reusing most of the section titles directly.  I
 didn't compare the specs carefully yet.)
 
-    * Send errors for unsupported multipart requests.
-      [required for OF1.3+]
-
     * Add support for multipart requests.
     * Add support for multipart requests.
+      Currently we always report OFPBRC_MULTIPART_BUFFER_OVERFLOW.
       [optional for OF1.3+]
 
     * Add OFPMP_TABLE_FEATURES statistics.
       [optional for OF1.3+]
 
     * More flexible table miss support.
       [optional for OF1.3+]
 
     * Add OFPMP_TABLE_FEATURES statistics.
       [optional for OF1.3+]
 
     * More flexible table miss support.
+      This requires the following.
+      - Change the default table-miss action (in the absense of table-miss
+        entry) from packet_in to drop for OF1.3+.  Decide what to do if
+        a switch is configured to support multiple OF versions.
       [required for OF1.3+]
 
     * IPv6 extension header handling support.  Fully implementing this
       [required for OF1.3+]
 
     * IPv6 extension header handling support.  Fully implementing this
@@ -190,9 +155,95 @@ didn't compare the specs carefully yet.)
       optimization in some cases for the software switch.
       [optional for OF1.3+]
 
       optimization in some cases for the software switch.
       [optional for OF1.3+]
 
-    * Duration Statistics
-      - New for Per Port, Per Queue, Per Group
-      [required for v1.3+]
+ONF OpenFlow Exensions for 1.3.X Pack1
+--------------------------------------
+
+OpenFlow 1.3 has a bunch of ONF extentions.
+Many of them are necessary for OpenFlow 1.4 as well.
+
+    * Flow entry notifications
+      This seems to be modelled after OVS's NXST_FLOW_MONITOR.
+      [EXT-187]
+      [required for OF1.4+]
+
+    * Role Status
+      [EXT-191]
+      [required for OF1.4+]
+
+    * Flow entry eviction
+      OVS has flow eviction functionality.
+      table_mod OFPTC_EVICTION, flow_mod 'importance', and
+      table_desc ofp_table_mod_prop_eviction need to be implemented.
+      [EXT-192-e]
+      [optional for OF1.4+]
+
+    * Vacancy events
+      [EXT-192-v]
+      [optional for OF1.4+]
+
+    * Bundle
+      Transactional modification.  OpenFlow 1.4 requires to support
+      flow_mods and port_mods in a bundle.
+      (Not related to OVS's 'ofbundle' stuff.)
+      [EXT-230]
+      [required for OF1.4+]
+
+    * Table synchronisation
+      [EXT-232]
+      [optional for OF1.4+]
+
+    * Group notifications
+      [EXT-235]
+      [optional for OF1.4+]
+
+    * Bad flow entry priority error
+      Probably not so useful to the software switch.
+      [EXT-236]
+      [optional for OF1.4+]
+
+    * Set async config error
+      [EXT-237]
+      [optional for OF1.4+]
+
+    * PBB UCA header field
+      [EXT-256]
+      [optional for OF1.4+]
+
+    * Duplicate instruction error
+      We already have ONFBIC_DUP_INSTRUCTION.
+      [EXT-260]
+      [required for OF1.4+]
+
+    * Multipart timeout error
+      [EXT-264]
+      [required for OF1.4+]
+
+OpenFlow 1.4
+------------
+
+    * More extensible wire protocol
+      Many on-wire structures got TLVs.
+      [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.
+      [EXT-136]
+      [required for OF1.4+]
+
+    * Optical port properties
+      [EXT-154]
+      [optional for OF1.4+]
+
+    * Flow-removed reason for meter delete
+      Report flow removal due to meter deletion with OFPRR_METER_DELETE.
+      [EXT-261]
+      [optional for OF1.4+]
+
+    * Meter notifications
+      [EXT-235]
+      [optional for OF1.4+]
 
 How to contribute
 -----------------
 
 How to contribute
 -----------------