Acked-by: Nithin Raju <nit...@vmware.com> -----Original Message----- From: dev <dev-boun...@openvswitch.org> on behalf of Sairam Venugopal <vsai...@vmware.com> Date: Wednesday, June 29, 2016 at 5:08 PM To: "dev@openvswitch.org" <dev@openvswitch.org> Subject: [ovs-dev] [PATCH v4 01/11] Windows: Add conntrack netfilter netlink definitions to kernel and userspace
>Include netfilter-conntrack header definitions. This will be used by >Windows userspace for adding debugging support in Conntrack. Few of these >files are intentionally left blank to avoid removing #includes in >userspace. New file - OvsDpInterfaceCtExt.h has been defined similar to >OvsDpInterfaceExt.h to be reused by userspace and kernel. > >Signed-off-by: Sairam Venugopal <vsai...@vmware.com> >--- > build-aux/extract-odp-netlink-h | 1 + > datapath-windows/automake.mk | 1 + > datapath-windows/include/OvsDpInterfaceCtExt.h | 423 >+++++++++++++++++++++ > datapath-windows/ovsext/ovsext.vcxproj | 1 + > datapath-windows/ovsext/precomp.h | 1 + > include/windows/automake.mk | 6 + > .../windows/linux/netfilter/nf_conntrack_common.h | 0 > include/windows/linux/netfilter/nf_conntrack_ftp.h | 0 > .../windows/linux/netfilter/nf_conntrack_sctp.h | 0 > include/windows/linux/netfilter/nf_conntrack_tcp.h | 0 > include/windows/linux/netfilter/nfnetlink.h | 0 > .../windows/linux/netfilter/nfnetlink_conntrack.h | 0 > 12 files changed, 433 insertions(+) > create mode 100644 datapath-windows/include/OvsDpInterfaceCtExt.h > create mode 100644 include/windows/linux/netfilter/nf_conntrack_common.h > create mode 100644 include/windows/linux/netfilter/nf_conntrack_ftp.h > create mode 100644 include/windows/linux/netfilter/nf_conntrack_sctp.h > create mode 100644 include/windows/linux/netfilter/nf_conntrack_tcp.h > create mode 100644 include/windows/linux/netfilter/nfnetlink.h > create mode 100644 include/windows/linux/netfilter/nfnetlink_conntrack.h > >diff --git a/build-aux/extract-odp-netlink-h >b/build-aux/extract-odp-netlink-h >index aafe69a..111c5cb 100755 >--- a/build-aux/extract-odp-netlink-h >+++ b/build-aux/extract-odp-netlink-h >@@ -18,6 +18,7 @@ s/_LINUX_OPENVSWITCH_H/ODP_NETLINK_H/ > $i\ > #ifdef _WIN32\ > #include "OvsDpInterfaceExt.h"\ >+#include "OvsDpInterfaceCtExt.h"\ > #endif\ > > # Use OVS's own struct eth_addr instead of a 6-byte char array. >diff --git a/datapath-windows/automake.mk b/datapath-windows/automake.mk >index 668cf2c..c34934b 100644 >--- a/datapath-windows/automake.mk >+++ b/datapath-windows/automake.mk >@@ -4,6 +4,7 @@ EXTRA_DIST += \ > datapath-windows/Package/package.VcxProj \ > datapath-windows/Package/package.VcxProj.user \ > datapath-windows/include/OvsDpInterfaceExt.h \ >+ datapath-windows/include/OvsDpInterfaceCtExt.h \ > datapath-windows/misc/OVS.psm1 \ > datapath-windows/misc/install.cmd \ > datapath-windows/misc/uninstall.cmd \ >diff --git a/datapath-windows/include/OvsDpInterfaceCtExt.h >b/datapath-windows/include/OvsDpInterfaceCtExt.h >new file mode 100644 >index 0000000..2795edc >--- /dev/null >+++ b/datapath-windows/include/OvsDpInterfaceCtExt.h >@@ -0,0 +1,423 @@ >+/* >+ * Copyright (c) 2016 VMware, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at: >+ * >+ * >https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_license >s_LICENSE-2D2.0&d=CwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=p >NHQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=1pUfCWy4l0NuhIqJSNKiI4fLJGLXq >rlJ9N1QEIxd9mk&s=pnCUJGnWFBH4mx0yAcuM-X4vygzcG4NVBp9TKV1sADE&e= >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ */ >+ >+#ifndef __OVS_DP_INTERFACE_CT_EXT_H_ >+#define __OVS_DP_INTERFACE_CT_EXT_H_ 1 >+ >+/* Conntrack Netlink headers */ >+#define NFNL_TYPE_CT_GET (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_CT_GET) >+#define NFNL_TYPE_CT_DEL (NFNL_SUBSYS_CTNETLINK << 8 | >IPCTNL_MSG_CT_DELETE) >+#define IS_NFNL_CMD(nlmsgType) ((nlmsgType == NFNL_TYPE_CT_GET) \ >+ || (nlmsgType == NFNL_TYPE_CT_DEL)) >+#define OVS_NL_CT_ATTR_MAX (IPCTNL_MSG_MAX - 1) >+ >+#define OVS_CT_FAMILY "ovs_ct" >+#define OVS_CT_MCGROUP "ovs_ct" >+#define OVS_CT_VERSION 1 >+ >+/* File: nfnetlink.h */ >+enum nfnetlink_groups { >+ NFNLGRP_NONE, >+#define NFNLGRP_NONE NFNLGRP_NONE >+ NFNLGRP_CONNTRACK_NEW, >+#define NFNLGRP_CONNTRACK_NEW NFNLGRP_CONNTRACK_NEW >+ NFNLGRP_CONNTRACK_UPDATE, >+#define NFNLGRP_CONNTRACK_UPDATE NFNLGRP_CONNTRACK_UPDATE >+ NFNLGRP_CONNTRACK_DESTROY, >+#define NFNLGRP_CONNTRACK_DESTROY NFNLGRP_CONNTRACK_DESTROY >+ NFNLGRP_CONNTRACK_EXP_NEW, >+#define NFNLGRP_CONNTRACK_EXP_NEW NFNLGRP_CONNTRACK_EXP_NEW >+ NFNLGRP_CONNTRACK_EXP_UPDATE, >+#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE >+ NFNLGRP_CONNTRACK_EXP_DESTROY, >+#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY >+ NFNLGRP_NFTABLES, >+#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES >+ __NFNLGRP_MAX, >+}; >+#define NFNLGRP_MAX (__NFNLGRP_MAX - 1) >+ >+struct nfgenmsg { >+ UINT8 nfgen_family; /* AF_xxx (AF_UNSPEC/AF_INET/AF_INET6) */ >+ UINT8 version; /* nfnetlink version (currently set to >v0) */ >+ UINT16 res_id; /* resource id (unused in Windows) */ >+ struct ovs_header ovsHdr; /* Pad this for Windows */ >+}; >+ >+#define NFNETLINK_V0 0 >+#define NFNL_SUBSYS_ID(x) ((x & 0xff00) >> 8) >+#define NFNL_MSG_TYPE(x) (x & 0x00ff) >+ >+#define NFNL_SUBSYS_NONE 0 >+#define NFNL_SUBSYS_CTNETLINK 1 >+#define NFNL_SUBSYS_CTNETLINK_EXP 2 >+#define NFNL_SUBSYS_QUEUE 3 >+#define NFNL_SUBSYS_ULOG 4 >+#define NFNL_SUBSYS_OSF 5 >+#define NFNL_SUBSYS_IPSET 6 >+#define NFNL_SUBSYS_ACCT 7 >+#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8 >+#define NFNL_SUBSYS_CTHELPER 9 >+#define NFNL_SUBSYS_NFTABLES 10 >+#define NFNL_SUBSYS_NFT_COMPAT 11 >+#define NFNL_SUBSYS_COUNT 12 >+ >+#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE >+#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1 >+ >+/* File: nf_conntrack_common.h */ >+enum ip_conntrack_info { >+ IP_CT_ESTABLISHED, >+ IP_CT_RELATED, >+ IP_CT_NEW, >+ IP_CT_IS_REPLY, >+ IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY, >+ IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY, >+ IP_CT_NEW_REPLY = IP_CT_NEW + IP_CT_IS_REPLY, >+ IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1 >+}; >+ >+enum ip_conntrack_status { >+ IPS_EXPECTED_BIT = 0, >+ IPS_EXPECTED = (1 << IPS_EXPECTED_BIT), >+ IPS_SEEN_REPLY_BIT = 1, >+ IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT), >+ IPS_ASSURED_BIT = 2, >+ IPS_ASSURED = (1 << IPS_ASSURED_BIT), >+ IPS_CONFIRMED_BIT = 3, >+ IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT), >+ IPS_SRC_NAT_BIT = 4, >+ IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT), >+ IPS_DST_NAT_BIT = 5, >+ IPS_DST_NAT = (1 << IPS_DST_NAT_BIT), >+ IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT), >+ IPS_SEQ_ADJUST_BIT = 6, >+ IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT), >+ IPS_SRC_NAT_DONE_BIT = 7, >+ IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT), >+ IPS_DST_NAT_DONE_BIT = 8, >+ IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT), >+ IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE), >+ IPS_DYING_BIT = 9, >+ IPS_DYING = (1 << IPS_DYING_BIT), >+ IPS_FIXED_TIMEOUT_BIT = 10, >+ IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), >+ IPS_TEMPLATE_BIT = 11, >+ IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT), >+ IPS_UNTRACKED_BIT = 12, >+ IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT), >+}; >+ >+enum ip_conntrack_events { >+ IPCT_NEW, >+ IPCT_RELATED, >+ IPCT_DESTROY, >+ IPCT_REPLY, >+ IPCT_ASSURED, >+ IPCT_PROTOINFO, >+ IPCT_HELPER, >+ IPCT_MARK, >+ IPCT_NATSEQADJ, >+ IPCT_SECMARK, >+}; >+ >+enum ip_conntrack_expect_events { >+ IPEXP_NEW, >+ IPEXP_DESTROY, >+}; >+ >+#define NF_CT_EXPECT_PERMANENT 0x1 >+#define NF_CT_EXPECT_INACTIVE 0x2 >+#define NF_CT_EXPECT_USERSPACE 0x4 >+ >+/* File: nfnetlink_conntrack.h */ >+enum cntl_msg_types { >+ IPCTNL_MSG_CT_NEW, >+ IPCTNL_MSG_CT_GET, >+ IPCTNL_MSG_CT_DELETE, >+ IPCTNL_MSG_CT_GET_CTRZERO, >+ IPCTNL_MSG_CT_GET_STATS_CPU, >+ IPCTNL_MSG_CT_GET_STATS, >+ IPCTNL_MSG_CT_GET_DYING, >+ IPCTNL_MSG_CT_GET_UNCONFIRMED, >+ IPCTNL_MSG_MAX >+}; >+ >+enum ctnl_exp_msg_types { >+ IPCTNL_MSG_EXP_NEW, >+ IPCTNL_MSG_EXP_GET, >+ IPCTNL_MSG_EXP_DELETE, >+ IPCTNL_MSG_EXP_GET_STATS_CPU, >+ IPCTNL_MSG_EXP_MAX >+}; >+ >+enum ctattr_type { >+ CTA_UNSPEC, >+ CTA_TUPLE_ORIG, >+ CTA_TUPLE_REPLY, >+ CTA_STATUS, >+ CTA_PROTOINFO, >+ CTA_HELP, >+ CTA_NAT_SRC, >+#define CTA_NAT CTA_NAT_SRC >+ CTA_TIMEOUT, >+ CTA_MARK, >+ CTA_COUNTERS_ORIG, >+ CTA_COUNTERS_REPLY, >+ CTA_USE, >+ CTA_ID, >+ CTA_NAT_DST, >+ CTA_TUPLE_MASTER, >+ CTA_NAT_SEQ_ADJ_ORIG, >+ CTA_NAT_SEQ_ADJ_REPLY, >+ CTA_SECMARK, >+ CTA_ZONE, >+ CTA_SECCTX, >+ CTA_TIMESTAMP, >+ CTA_MARK_MASK, >+ CTA_LABELS, >+ CTA_LABELS_MASK, >+ __CTA_MAX >+}; >+#define CTA_MAX (__CTA_MAX - 1) >+ >+enum ctattr_tuple { >+ CTA_TUPLE_UNSPEC, >+ CTA_TUPLE_IP, >+ CTA_TUPLE_PROTO, >+ __CTA_TUPLE_MAX >+}; >+#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) >+ >+enum ctattr_ip { >+ CTA_IP_UNSPEC, >+ CTA_IP_V4_SRC, >+ CTA_IP_V4_DST, >+ CTA_IP_V6_SRC, >+ CTA_IP_V6_DST, >+ __CTA_IP_MAX >+}; >+#define CTA_IP_MAX (__CTA_IP_MAX - 1) >+ >+enum ctattr_l4proto { >+ CTA_PROTO_UNSPEC, >+ CTA_PROTO_NUM, >+ CTA_PROTO_SRC_PORT, >+ CTA_PROTO_DST_PORT, >+ CTA_PROTO_ICMP_ID, >+ CTA_PROTO_ICMP_TYPE, >+ CTA_PROTO_ICMP_CODE, >+ CTA_PROTO_ICMPV6_ID, >+ CTA_PROTO_ICMPV6_TYPE, >+ CTA_PROTO_ICMPV6_CODE, >+ __CTA_PROTO_MAX >+}; >+#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1) >+ >+enum ctattr_protoinfo { >+ CTA_PROTOINFO_UNSPEC, >+ CTA_PROTOINFO_TCP, >+ CTA_PROTOINFO_DCCP, >+ CTA_PROTOINFO_SCTP, >+ __CTA_PROTOINFO_MAX >+}; >+#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1) >+ >+enum ctattr_protoinfo_tcp { >+ CTA_PROTOINFO_TCP_UNSPEC, >+ CTA_PROTOINFO_TCP_STATE, >+ CTA_PROTOINFO_TCP_WSCALE_ORIGINAL, >+ CTA_PROTOINFO_TCP_WSCALE_REPLY, >+ CTA_PROTOINFO_TCP_FLAGS_ORIGINAL, >+ CTA_PROTOINFO_TCP_FLAGS_REPLY, >+ __CTA_PROTOINFO_TCP_MAX >+}; >+#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1) >+ >+enum ctattr_protoinfo_dccp { >+ CTA_PROTOINFO_DCCP_UNSPEC, >+ CTA_PROTOINFO_DCCP_STATE, >+ CTA_PROTOINFO_DCCP_ROLE, >+ CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ, >+ __CTA_PROTOINFO_DCCP_MAX, >+}; >+#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1) >+ >+enum ctattr_protoinfo_sctp { >+ CTA_PROTOINFO_SCTP_UNSPEC, >+ CTA_PROTOINFO_SCTP_STATE, >+ CTA_PROTOINFO_SCTP_VTAG_ORIGINAL, >+ CTA_PROTOINFO_SCTP_VTAG_REPLY, >+ __CTA_PROTOINFO_SCTP_MAX >+}; >+#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1) >+ >+enum ctattr_counters { >+ CTA_COUNTERS_UNSPEC, >+ CTA_COUNTERS_PACKETS, >+ CTA_COUNTERS_BYTES, >+ CTA_COUNTERS32_PACKETS, >+ CTA_COUNTERS32_BYTES, >+ __CTA_COUNTERS_MAX >+}; >+#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) >+ >+enum ctattr_tstamp { >+ CTA_TIMESTAMP_UNSPEC, >+ CTA_TIMESTAMP_START, >+ CTA_TIMESTAMP_STOP, >+ __CTA_TIMESTAMP_MAX >+}; >+#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1) >+ >+enum ctattr_nat { >+ CTA_NAT_UNSPEC, >+ CTA_NAT_V4_MINIP, >+#define CTA_NAT_MINIP CTA_NAT_V4_MINIP >+ CTA_NAT_V4_MAXIP, >+#define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP >+ CTA_NAT_PROTO, >+ CTA_NAT_V6_MINIP, >+ CTA_NAT_V6_MAXIP, >+ __CTA_NAT_MAX >+}; >+#define CTA_NAT_MAX (__CTA_NAT_MAX - 1) >+ >+enum ctattr_protonat { >+ CTA_PROTONAT_UNSPEC, >+ CTA_PROTONAT_PORT_MIN, >+ CTA_PROTONAT_PORT_MAX, >+ __CTA_PROTONAT_MAX >+}; >+#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) >+ >+enum ctattr_natseq { >+ CTA_NAT_SEQ_UNSPEC, >+ CTA_NAT_SEQ_CORRECTION_POS, >+ CTA_NAT_SEQ_OFFSET_BEFORE, >+ CTA_NAT_SEQ_OFFSET_AFTER, >+ __CTA_NAT_SEQ_MAX >+}; >+#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1) >+ >+enum ctattr_expect { >+ CTA_EXPECT_UNSPEC, >+ CTA_EXPECT_MASTER, >+ CTA_EXPECT_TUPLE, >+ CTA_EXPECT_MASK, >+ CTA_EXPECT_TIMEOUT, >+ CTA_EXPECT_ID, >+ CTA_EXPECT_HELP_NAME, >+ CTA_EXPECT_ZONE, >+ CTA_EXPECT_FLAGS, >+ CTA_EXPECT_CLASS, >+ CTA_EXPECT_NAT, >+ CTA_EXPECT_FN, >+ __CTA_EXPECT_MAX >+}; >+#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1) >+ >+enum ctattr_expect_nat { >+ CTA_EXPECT_NAT_UNSPEC, >+ CTA_EXPECT_NAT_DIR, >+ CTA_EXPECT_NAT_TUPLE, >+ __CTA_EXPECT_NAT_MAX >+}; >+#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1) >+ >+enum ctattr_help { >+ CTA_HELP_UNSPEC, >+ CTA_HELP_NAME, >+ CTA_HELP_INFO, >+ __CTA_HELP_MAX >+}; >+#define CTA_HELP_MAX (__CTA_HELP_MAX - 1) >+ >+enum ctattr_secctx { >+ CTA_SECCTX_UNSPEC, >+ CTA_SECCTX_NAME, >+ __CTA_SECCTX_MAX >+}; >+#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1) >+ >+enum ctattr_stats_cpu { >+ CTA_STATS_UNSPEC, >+ CTA_STATS_SEARCHED, >+ CTA_STATS_FOUND, >+ CTA_STATS_NEW, >+ CTA_STATS_INVALID, >+ CTA_STATS_IGNORE, >+ CTA_STATS_DELETE, >+ CTA_STATS_DELETE_LIST, >+ CTA_STATS_INSERT, >+ CTA_STATS_INSERT_FAILED, >+ CTA_STATS_DROP, >+ CTA_STATS_EARLY_DROP, >+ CTA_STATS_ERROR, >+ CTA_STATS_SEARCH_RESTART, >+ __CTA_STATS_MAX, >+}; >+#define CTA_STATS_MAX (__CTA_STATS_MAX - 1) >+ >+enum ctattr_stats_global { >+ CTA_STATS_GLOBAL_UNSPEC, >+ CTA_STATS_GLOBAL_ENTRIES, >+ __CTA_STATS_GLOBAL_MAX, >+}; >+#define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1) >+ >+enum ctattr_expect_stats { >+ CTA_STATS_EXP_UNSPEC, >+ CTA_STATS_EXP_NEW, >+ CTA_STATS_EXP_CREATE, >+ CTA_STATS_EXP_DELETE, >+ __CTA_STATS_EXP_MAX, >+}; >+#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1) >+ >+/* File: nf_conntrack_tcp.h */ >+enum tcp_conntrack { >+ TCP_CONNTRACK_NONE, >+ TCP_CONNTRACK_SYN_SENT, >+ TCP_CONNTRACK_SYN_RECV, >+ TCP_CONNTRACK_ESTABLISHED, >+ TCP_CONNTRACK_FIN_WAIT, >+ TCP_CONNTRACK_CLOSE_WAIT, >+ TCP_CONNTRACK_LAST_ACK, >+ TCP_CONNTRACK_TIME_WAIT, >+ TCP_CONNTRACK_CLOSE, >+ TCP_CONNTRACK_LISTEN, >+#define TCP_CONNTRACK_SYN_SENT2 TCP_CONNTRACK_LISTEN >+ TCP_CONNTRACK_MAX, >+ TCP_CONNTRACK_IGNORE, >+ TCP_CONNTRACK_RETRANS, >+ TCP_CONNTRACK_UNACK, >+ TCP_CONNTRACK_TIMEOUT_MAX >+}; >+ >+#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01 >+#define IP_CT_TCP_FLAG_SACK_PERM 0x02 >+#define IP_CT_TCP_FLAG_CLOSE_INIT 0x04 >+#define IP_CT_TCP_FLAG_BE_LIBERAL 0x08 >+#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 >+#define IP_CT_TCP_FLAG_MAXACK_SET 0x20 >+ >+struct nf_ct_tcp_flags { >+ UINT8 flags; >+ UINT8 mask; >+}; >+ >+#endif /* __OVS_DP_INTERFACE_CT_EXT_H_ */ >diff --git a/datapath-windows/ovsext/ovsext.vcxproj >b/datapath-windows/ovsext/ovsext.vcxproj >index 0ad4c58..e0d764b 100644 >--- a/datapath-windows/ovsext/ovsext.vcxproj >+++ b/datapath-windows/ovsext/ovsext.vcxproj >@@ -70,6 +70,7 @@ > <Import >Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" >Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" >/> > </ImportGroup> > <ItemGroup Label="WrappedTaskItems"> >+ <ClInclude Include="..\include\OvsDpInterfaceCtExt.h" /> > <ClInclude Include="..\include\OvsDpInterfaceExt.h" /> > <ClInclude Include="Actions.h" /> > <ClInclude Include="Atomic.h" /> >diff --git a/datapath-windows/ovsext/precomp.h >b/datapath-windows/ovsext/precomp.h >index aaa3d51..a152582 100644 >--- a/datapath-windows/ovsext/precomp.h >+++ b/datapath-windows/ovsext/precomp.h >@@ -30,4 +30,5 @@ > #include "Netlink/Netlink.h" > #include "Netlink/NetlinkProto.h" > #include "..\include\OvsDpInterfaceExt.h" >+#include "..\include\OvsDpInterfaceCtExt.h" > #include "DpInternal.h" >diff --git a/include/windows/automake.mk b/include/windows/automake.mk >index 58b52f1..382627b 100644 >--- a/include/windows/automake.mk >+++ b/include/windows/automake.mk >@@ -9,6 +9,12 @@ noinst_HEADERS += \ > include/windows/arpa/inet.h \ > include/windows/dirent.h \ > include/windows/getopt.h \ >+ include/windows/linux/netfilter/nf_conntrack_common.h \ >+ include/windows/linux/netfilter/nf_conntrack_ftp.h \ >+ include/windows/linux/netfilter/nf_conntrack_sctp.h \ >+ include/windows/linux/netfilter/nf_conntrack_tcp.h \ >+ include/windows/linux/netfilter/nfnetlink.h \ >+ include/windows/linux/netfilter/nfnetlink_conntrack.h \ > include/windows/linux/pkt_sched.h \ > include/windows/linux/types.h \ > include/windows/net/if.h \ >diff --git a/include/windows/linux/netfilter/nf_conntrack_common.h >b/include/windows/linux/netfilter/nf_conntrack_common.h >new file mode 100644 >index 0000000..e69de29 >diff --git a/include/windows/linux/netfilter/nf_conntrack_ftp.h >b/include/windows/linux/netfilter/nf_conntrack_ftp.h >new file mode 100644 >index 0000000..e69de29 >diff --git a/include/windows/linux/netfilter/nf_conntrack_sctp.h >b/include/windows/linux/netfilter/nf_conntrack_sctp.h >new file mode 100644 >index 0000000..e69de29 >diff --git a/include/windows/linux/netfilter/nf_conntrack_tcp.h >b/include/windows/linux/netfilter/nf_conntrack_tcp.h >new file mode 100644 >index 0000000..e69de29 >diff --git a/include/windows/linux/netfilter/nfnetlink.h >b/include/windows/linux/netfilter/nfnetlink.h >new file mode 100644 >index 0000000..e69de29 >diff --git a/include/windows/linux/netfilter/nfnetlink_conntrack.h >b/include/windows/linux/netfilter/nfnetlink_conntrack.h >new file mode 100644 >index 0000000..e69de29 >-- >2.5.0.windows.1 > >_______________________________________________ >dev mailing list >dev@openvswitch.org >https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma >n_listinfo_dev&d=CwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pN >HQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=1pUfCWy4l0NuhIqJSNKiI4fLJGLXqr >lJ9N1QEIxd9mk&s=aKTfhIRDRQV8If7ebA_V5TtL3k6tMW12daguvYvEEIU&e= _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev