summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/BufferMgmt.h
diff options
context:
space:
mode:
authorldejing <ldejing@vmware.com>2022-08-16 19:14:32 +0800
committerAlin-Gabriel Serdean <alin.serdean@canonical.com>2022-09-20 02:40:03 +0300
commit7af5c33c1629b309cbcbe3b6c9c3bd6d3b4c0abf (patch)
tree445f0e0379b0134bf1bbde32811b05ee59586014 /datapath-windows/ovsext/BufferMgmt.h
parent54a618f0bd83431a18307a312e5b41e401538bbc (diff)
downloadopenvswitch-7af5c33c1629b309cbcbe3b6c9c3bd6d3b4c0abf.tar.gz
datapath-windows: Add IPv6 conntrack ip fragment support on windows
Implementation on Windows: IPv6 conntrack ip fragment feature use a link list to store ip fragment. When ipv6 fragment module receives a fragment packet, it will store length of the fragment, until to the received length equal to the packet length before fragmented, it will reassemble fragment packet to a complete packet and send the complete packet to conntrack module. After conntrack processed the packet, fragment module will divide the complete packet into small fragment and send it to destination. Currently, ipv6 was implemented in a indenpent module, for the reason it can reduce the risk of introduce bug to ipv4 fragmenb module. Testing Topology: On the Windows VM runs on the ESXi host, two hyper-v ports attached to the ovs bridge; one hyper-v port worked as client and the other port worked as server. Testing Case: 1.UdpV6 a) UdpV6 fragment with multiple ipv6 extension fields. b) UdpV6 fragment in normal scenario. c) UdpV6 fragment in nat scenario. 2.IcmpV6 a) IcmpV6 fragment in normal scenario. b) IcmpV6 fragment in nat scenario. Signed-off-by: ldejing <ldejing@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/BufferMgmt.h')
-rw-r--r--datapath-windows/ovsext/BufferMgmt.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/BufferMgmt.h b/datapath-windows/ovsext/BufferMgmt.h
index 2ae32723e..90d2360f7 100644
--- a/datapath-windows/ovsext/BufferMgmt.h
+++ b/datapath-windows/ovsext/BufferMgmt.h
@@ -25,6 +25,10 @@
#define OVS_DEFAULT_DATA_SIZE 256
#define OVS_DEFAULT_HEADROOM_SIZE 128
#define OVS_FIX_NBL_DATA_SIZE (OVS_DEFAULT_DATA_SIZE + OVS_DEFAULT_HEADROOM_SIZE)
+#define OVS_IPV6_OPT_LEN(p) (((p)->hdrExtLen+1) << 3)
+#define OVS_FRAG_MAGIC_NUMBER 0x8088405
+
+
/* Default we copy 18 bytes, to make sure ethernet header and vlan is in
* continuous buffer */