[ovs-dev] [PATCH v2 2/3] ofproto-dpif: Differentiate between different miss types in packet in

Ben Pfaff blp at nicira.com
Thu Mar 20 22:01:37 UTC 2014


On Thu, Mar 13, 2014 at 03:52:55PM +0900, Simon Horman wrote:
> Replace the generated_by_table_miss field of struct ofproto_packet_in
> with a miss_type field.
> 
> The generated_by_table_miss field allowed packet-in messages generated
> by table-miss rules to be differentiated. This differentiation
> is still provided for by miss_type being set to OFPROTO_PACKET_IN_MISS_FLOW.
> 
> This patch allows further differentiation by setting miss_type
> to OFPROTO_PACKET_IN_MISS_WITHOUT_FLOW if the packet-in message
> is generated by a table-miss which is not handled by a table-miss rule.
> 
> This is in preparation for OpenFlow 1.3 version-specific
> handling of the default action for such misses.
> 
> Signed-off-by: Simon Horman <horms at verge.net.au>

Thanks, I folded in the following comment improvements and I'll apply
this in a minute.

diff --git a/ofproto/connmgr.h b/ofproto/connmgr.h
index 90b5856..c4cfd83 100644
--- a/ofproto/connmgr.h
+++ b/ofproto/connmgr.h
@@ -63,12 +63,22 @@ enum ofconn_async_msg_type {
 };
 
 enum ofproto_packet_in_miss_type {
-    OFPROTO_PACKET_IN_NO_MISS,      /* Not a miss */
-    OFPROTO_PACKET_IN_MISS_FLOW,    /* Miss handled by a table-miss flow
-                                     * See OF1.3.3 section 5.4 */
+    /* Not generated by a flow miss or table-miss flow. */
+    OFPROTO_PACKET_IN_NO_MISS,
+
+    /* The packet_in was generated directly by a table-miss flow, that is, a
+     * flow with priority 0 that wildcards all fields.  See OF1.3.3 section
+     * 5.4.
+     *
+     * (Our interpretation of "directly" is "not via groups".  Packet_ins
+     * generated by table-miss flows via groups use
+     * OFPROTO_PACKET_IN_NO_MISS.) */
+    OFPROTO_PACKET_IN_MISS_FLOW,
+
+    /* The packet-in was generated directly by a table-miss, but not a
+     * table-miss flow.  That is, it was generated by the OpenFlow 1.0, 1.1, or
+     * 1.2 table-miss behavior. */
     OFPROTO_PACKET_IN_MISS_WITHOUT_FLOW,
-                                    /* Miss was not handled by a table-miss
-                                     * flow */
 };
 
 /* A packet_in, with extra members to assist in queuing and routing it. */
@@ -77,10 +87,6 @@ struct ofproto_packet_in {
     struct list list_node;      /* For queuing. */
     uint16_t controller_id;     /* Controller ID to send to. */
     int send_len;               /* Length that the action requested sending. */
-
-    /* True if the packet_in was generated directly by a table-miss flow, that
-     * is, a flow with priority 0 that wildcards all fields.  (Our
-     * interpretation of "directly" is "not via groups".) */
     enum ofproto_packet_in_miss_type miss_type;
 };
 



More information about the dev mailing list