[ovs-dev] [PATCH v3 0/3] ofproto: Honour Table Mod settings for table-miss handling

Simon Horman horms at verge.net.au
Mon Dec 16 08:53:20 UTC 2013


This series of patches adds support for using Table Mod settings for
table-miss handling.

This series does not alter the default behaviour of Open vSwitch. And in
particular the OpenFlow1.1 behaviour is the default regardless of which
OpenFlow version is negotiated between the switch and the controller.

Key Changes between v2 and v3:

* As suggested by Ben Pfaff
  + Use atomic type for config field of struct oftable
    rather than guarding it using a rwlock
  + Check that table_id is within the usable range
* Use enum ofp_table_config as type of config parameter
  of oftable_set_config
* Only allow supported configurations in table_mod message

Key Changes between v1 and v2:

* As pointed out by Yamamoto-san
  - Read config for each table that is missed rather
    than just the first one. A logic bug that somehow I was blind to.
* Use ofproto->up.n_tables instead of N_TABLES as the number
  of tables present.
* Do not use the presence of rules in a table to indicate that it is
  present. Instead treat all tables, other than TBL_INTERNAL, that
  exist in ofproto.up as present. This simplifies things slightly
  and seems to be a more logical approach.


To aid review I have made this available in git:

git://github.com/horms/openvswitch.git devel/table_mod-v3

Simon Horman (3):
  ofproto: Make check_table_id() generic
  ofproto: Add table config to struct ofproto
  ofproto: Honour Table Mod settings for table-miss handling

 OPENFLOW-1.1+                |   5 -
 ofproto/ofproto-dpif-xlate.c |  51 +++++----
 ofproto/ofproto-dpif.c       | 118 ++++++++++++++++++--
 ofproto/ofproto-dpif.h       |  19 +++-
 ofproto/ofproto-provider.h   |  15 ++-
 ofproto/ofproto.c            |  64 ++++++++---
 ofproto/ofproto.h            |   5 +
 tests/ofproto-dpif.at        | 248 +++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 471 insertions(+), 54 deletions(-)

-- 
1.8.4




More information about the dev mailing list