datapath-windows: Support for OVS_KEY_ATTR_SCTP attribute
[cascardo/ovs.git] / datapath-windows / ovsext / Flow.h
index 10ef62b..74b9dfb 100644 (file)
@@ -40,7 +40,7 @@ typedef struct _OvsFlow {
 
 typedef struct _OvsLayers {
     UINT32 l3Ofs;             // IPv4, IPv6, ARP, or other L3 header.
-    UINT32 l4Ofs;             // TCP, UDP, ICMP, ICMPv6, or other L4 header.
+    UINT32 l4Ofs;             // TCP, UDP, SCTP, ICMP, ICMPv6, or other L4 header.
     UINT32 l7Ofs;             // L4 protocol's payload.
 } OvsLayers;
 
@@ -65,13 +65,19 @@ NTSTATUS OvsDumpFlowIoctl(PVOID inputBuffer, UINT32 inputLength,
                           UINT32 *replyLen);
 NTSTATUS OvsPutFlowIoctl(PVOID inputBuffer, UINT32 inputLength,
                          struct OvsFlowStats *stats);
-NTSTATUS OvsGetFlowIoctl(PVOID inputBuffer, UINT32 inputLength,
-                         PVOID outputBuffer, UINT32 outputLength,
-                         UINT32 *replyLen);
+NTSTATUS OvsGetFlowIoctl(PVOID inputBuffer, PVOID outputBuffer);
 NTSTATUS OvsFlushFlowIoctl(UINT32 dpNo);
 
-NTSTATUS OvsFlowNlNewCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
+NTSTATUS OvsFlowNlCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
+                             UINT32 *replyLen);
+NTSTATUS OvsFlowNlGetCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
                                 UINT32 *replyLen);
+NTSTATUS MapFlowKeyToNlKey(PNL_BUFFER nlBuf, OvsFlowKey *flowKey,
+                           UINT16 keyType, UINT16 tunKeyType);
+NTSTATUS MapFlowTunKeyToNlKey(PNL_BUFFER nlBuf, OvsIPv4TunnelKey *tunKey,
+                              UINT16 tunKeyType);
+UINT32 OvsFlowKeyAttrSize(void);
+UINT32 OvsTunKeyAttrSize(void);
 
 /* Flags for tunneling */
 #define OVS_TNL_F_DONT_FRAGMENT         (1 << 0)