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

Reply via email to