OpenFlow 1.1 and 1.2 specify that if a table-miss occurs then the default
behaviour is to forward the packet the controller using a packet-in
message. And until this patch this is the default behaviour that Open
vSwitch uses for all OpenFlow versions.

OpenFlow1.3+ specifies that if a table-miss occurs then the default
behaviour is simply to drop the packet. This patch implements this
behaviour using the following logic:

If a table-miss occurs and the table-miss behaviour for the table
has not been set using a table_mod (in which case it is no longer
the default setting) then:

* Installing a facet in the datapath with a drop action in the
  if there are no pre-OF1.3 controllers connected which would receive
  an packet_in message.

  Note that this covers both the case where there are only OF1.3
  controllers and the case where there are no controllers at all.

* Otherwise sent a packet_in message to all pre-OF1.3 controllers.

  This covers both the case where there are only pre-OF1.3
  controllers and there are both pre-OF1.3 and OF1.3+ controllers.


The last patch in this series depends on
"[PATCH v8 repost 2] ofproto: Honour Table Mod settings for table-miss handling"

To aid review this series and its dependency are available in git at
https://github.com/horms/openvswitch.git devel/table_miss

Simon Horman (4):
  ofp-util: Use enum ofp_table_config in struct ofputil_table_mod
  connmgr: Remove unnecessary reason fixup logic
  ofproto-dpip: Set generated_by_table_miss for miss rule
  ofproto: Support OF version-specific table-miss behaviours

 OPENFLOW-1.1+                |  7 ----
 lib/ofp-util.h               |  2 +-
 ofproto/connmgr.c            | 92 ++++++++++++++++++++++++++++++--------------
 ofproto/connmgr.h            |  1 +
 ofproto/ofproto-dpif-xlate.c |  5 ++-
 ofproto/ofproto-dpif.c       | 69 +++++++++++++++++++++++----------
 ofproto/ofproto-dpif.h       |  3 +-
 ofproto/ofproto-provider.h   | 14 +------
 ofproto/ofproto.c            |  8 ++--
 ofproto/ofproto.h            | 22 ++++++++++-
 tests/ofproto-dpif.at        | 42 ++++++++++++++++----
 tests/tunnel.at              |  2 +-
 12 files changed, 183 insertions(+), 84 deletions(-)

-- 
1.8.5.2

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to