Sorry for the typo in subject :-) Jarno
On Apr 8, 2014, at 4:38 PM, Jarno Rajahalme <jrajaha...@nicira.com> wrote: > Currently, if any field in IP header is set with a set action, all the > IP header fields need to be matched exactly in the megaflow. This > series adds support for masked set actions, requiring only the header > bits actually read or set to be matched exactly by the resulting > megaflow. > > As an example, consider how the IP TTL decrement is implemented with > OVS: OVS userspace flow translation code reads the incoming TTL value, > decrements it, and if non-zero, generates a set action that writes the > new value to the IP header. Prior to this patch it was impossible to > write just the ttl field, and all the field values were written. The > other than ttl values included in the set action are copied from the > incoming IP header, and thus the action is only valid for only a > packet having those header values. Thus the megaflow must match all > the IP header fields exactly, lest the action be performed on some > other IP header field values. After this patch, only the ttl field is > written, and all other IP header fields can be wildcarded by the > megaflow. > > As it may be apparent, fields that are set without reading their > values could also be left wildcarded to get even better megaflows. > Work to that end involves bigger changes in the OVS userspace flow > translation code, and is in progress. > > Jarno Rajahalme (10): > lib/ofp-actions: Silently discard set ip ecn/ttl actions on > OpenFlow10. > ofproto: Fix wildcard masking with nw_tos. > Tests: Fix ofproto/trace and expose megaflows when having a set > action. > ofproto/xlate: Fix set field unwildcarding. > lib/odp: Masked set action execution and printing. > ofproto: Probe for masked set action support. > lib/odp: Use masked set actions. > openvswithch.h: Clarify use of key attributes. > datapath: Allow masks for set actions. > Clarify tunnel wildcarding. > > datapath/actions.c | 218 ++++++++++++++----- > datapath/flow_netlink.c | 51 ++++- > include/linux/openvswitch.h | 16 +- > lib/odp-execute.c | 241 +++++++++++++++++---- > lib/odp-util.c | 486 +++++++++++++++++++++++++++++------------- > lib/odp-util.h | 8 +- > lib/ofp-actions.c | 4 +- > ofproto/ofproto-dpif-xlate.c | 39 +++- > ofproto/ofproto-dpif-xlate.h | 3 +- > ofproto/ofproto-dpif.c | 80 ++++++- > ofproto/tunnel.c | 44 ++-- > tests/ofproto-dpif.at | 63 +++--- > tests/tunnel.at | 20 +- > 13 files changed, 945 insertions(+), 328 deletions(-) > > -- > 1.7.10.4 > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev