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;
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)