This patch series introduces IP_DEFRAG actions in both user space and linux kenrel datapath. Since IP reassembly is required for conntrack (stateful firewall) to work. It seems natural to introduce IP_Defrag action before introducing the conntrack action.
It is not entirely clear whether IP_DEFRAG needs to be an open flow action. It is at least convenient for now that we can configure and test defrag datapath action independent of the conntrack action. On the other hand, we may deprecate it as an open flow action down the road. I have tested with the following rules: ovs-ofctl add-flow br0 \ "in_port=local,ip,action=ip_defrag(zone=0),normal" ovs-ofctl add-flow br0 \ "in_port=1,ip,action=ip_defrag(zone=0),local" The patch series as is has the following limitations. 1. They only handles non-fragmented IP fragments -- Handling IP fragments requires additional user space and kernel changes. I plan to work on supporting multiple fragments next. 2. It only handles IPv4 packets. Andy Zhou (2): ofp-action: Add IP defragmentation action OFPACT_IP_DEFRAG datapath: add ip_defag action datapath/actions.c | 39 ++++++++++- datapath/flow_netlink.c | 6 +- datapath/linux/compat/include/linux/openvswitch.h | 14 +++- lib/dpif-netdev.c | 1 + lib/dpif.c | 1 + lib/odp-execute.c | 3 + lib/odp-util.c | 11 +++ lib/ofp-actions.c | 82 +++++++++++++++++++++++ lib/ofp-actions.h | 10 +++ ofproto/ofproto-dpif-xlate.c | 15 +++++ 10 files changed, 179 insertions(+), 3 deletions(-) -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev