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 <ho...@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; }; _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev