Acked-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com>

> -----Original Message-----
> From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Sairam
> Venugopal
> Sent: Tuesday, June 21, 2016 4:23 AM
> To: dev@openvswitch.org
> Subject: [ovs-dev] [PATCH 1/9] Windows: Add netfilter-conntrack header files
> to Include folder
> 
> Include netfilter-conntrack header files in user-space. This will be used
> by Windows userspace for adding debugging support in Conntrack. Some of
> these files
> are intentionally left blank and will be updated once relevant support is
> added in Windows datapath.
> 
> Signed-off-by: Sairam Venugopal <vsai...@vmware.com>
> ---
>  include/windows/automake.mk                        |   6 +
>  .../windows/linux/netfilter/nf_conntrack_common.h  | 113 ++++++++++
>  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 |  49 ++++
>  include/windows/linux/netfilter/nfnetlink.h        |  63 ++++++
>  .../windows/linux/netfilter/nfnetlink_conntrack.h  | 249
> +++++++++++++++++++++
>  7 files changed, 480 insertions(+)
>  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/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..9904003
> --- /dev/null
> +++ b/include/windows/linux/netfilter/nf_conntrack_common.h
> @@ -0,0 +1,113 @@
> +#ifndef _NF_CONNTRACK_COMMON_H
> +#define _NF_CONNTRACK_COMMON_H
> +/* Connection state tracking for netfilter.  This is separated from,
> +   but required by, the NAT layer; it can also be used by an iptables
> +   extension. */
> +enum ip_conntrack_info {
> +    /* Part of an established connection (either direction). */
> +    IP_CT_ESTABLISHED,
> +
> +    /* Like NEW, but related to an existing connection, or ICMP error
> +       (in either direction). */
> +    IP_CT_RELATED,
> +
> +    /* Started a new connection to track (only
> +           IP_CT_DIR_ORIGINAL); may be a retransmission. */
> +    IP_CT_NEW,
> +
> +    /* >= this indicates reply direction */
> +    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,
> +    /* Number of distinct IP_CT types (no NEW in reply dirn). */
> +    IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1
> +};
> +
> +/* Bitset representing status of connection. */
> +enum ip_conntrack_status {
> +    /* It's an expected connection: bit 0 set.  This bit never changed */
> +    IPS_EXPECTED_BIT = 0,
> +    IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
> +
> +    /* We've seen packets both ways: bit 1 set.  Can be set, not unset. */
> +    IPS_SEEN_REPLY_BIT = 1,
> +    IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
> +
> +    /* Conntrack should never be early-expired. */
> +    IPS_ASSURED_BIT = 2,
> +    IPS_ASSURED = (1 << IPS_ASSURED_BIT),
> +
> +    /* Connection is confirmed: originating packet has left box */
> +    IPS_CONFIRMED_BIT = 3,
> +    IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
> +
> +    /* Connection needs src nat in orig dir.  This bit never changed. */
> +    IPS_SRC_NAT_BIT = 4,
> +    IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
> +
> +    /* Connection needs dst nat in orig dir.  This bit never changed. */
> +    IPS_DST_NAT_BIT = 5,
> +    IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
> +
> +    /* Both together. */
> +    IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
> +
> +    /* Connection needs TCP sequence adjusted. */
> +    IPS_SEQ_ADJUST_BIT = 6,
> +    IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
> +
> +    /* NAT initialization bits. */
> +    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),
> +
> +    /* Both together */
> +    IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
> +
> +    /* Connection is dying (removed from lists), can not be unset. */
> +    IPS_DYING_BIT = 9,
> +    IPS_DYING = (1 << IPS_DYING_BIT),
> +
> +    /* Connection has fixed timeout. */
> +    IPS_FIXED_TIMEOUT_BIT = 10,
> +    IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
> +
> +    /* Conntrack is a template */
> +    IPS_TEMPLATE_BIT = 11,
> +    IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT),
> +
> +    /* Conntrack is a fake untracked entry */
> +    IPS_UNTRACKED_BIT = 12,
> +    IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
> +};
> +
> +/* Connection tracking event types */
> +enum ip_conntrack_events {
> +    IPCT_NEW,       /* new conntrack */
> +    IPCT_RELATED,   /* related conntrack */
> +    IPCT_DESTROY,   /* destroyed conntrack */
> +    IPCT_REPLY,     /* connection has seen two-way traffic */
> +    IPCT_ASSURED,   /* connection status has changed to assured */
> +    IPCT_PROTOINFO, /* protocol information has changed */
> +    IPCT_HELPER,    /* new helper has been set */
> +    IPCT_MARK,      /* new mark has been set */
> +    IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */
> +    IPCT_SECMARK,   /* new security mark has been set */
> +};
> +
> +enum ip_conntrack_expect_events {
> +    IPEXP_NEW,      /* new expectation */
> +    IPEXP_DESTROY,  /* destroyed expectation */
> +};
> +
> +/* expectation flags */
> +#define NF_CT_EXPECT_PERMANENT  0x1
> +#define NF_CT_EXPECT_INACTIVE   0x2
> +#define NF_CT_EXPECT_USERSPACE  0x4
> +
> +
> +#endif /* _NF_CONNTRACK_COMMON_H */
> 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..9ed9471
> --- /dev/null
> +++ b/include/windows/linux/netfilter/nf_conntrack_tcp.h
> @@ -0,0 +1,49 @@
> +#ifndef _UAPI_NF_CONNTRACK_TCP_H
> +#define _UAPI_NF_CONNTRACK_TCP_H
> +/* TCP tracking. */
> +
> +/* This is exposed to userspace (ctnetlink) */
> +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,   /* obsolete */
> +#define TCP_CONNTRACK_SYN_SENT2 TCP_CONNTRACK_LISTEN
> +    TCP_CONNTRACK_MAX,
> +    TCP_CONNTRACK_IGNORE,
> +    TCP_CONNTRACK_RETRANS,
> +    TCP_CONNTRACK_UNACK,
> +    TCP_CONNTRACK_TIMEOUT_MAX
> +};
> +
> +/* Window scaling is advertised by the sender */
> +#define IP_CT_TCP_FLAG_WINDOW_SCALE     0x01
> +
> +/* SACK is permitted by the sender */
> +#define IP_CT_TCP_FLAG_SACK_PERM        0x02
> +
> +/* This sender sent FIN first */
> +#define IP_CT_TCP_FLAG_CLOSE_INIT       0x04
> +
> +/* Be liberal in window checking */
> +#define IP_CT_TCP_FLAG_BE_LIBERAL       0x08
> +
> +/* Has unacknowledged data */
> +#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED  0x10
> +
> +/* The field td_maxack has been set */
> +#define IP_CT_TCP_FLAG_MAXACK_SET       0x20
> +
> +struct nf_ct_tcp_flags {
> +    u_int8_t flags;
> +    u_int8_t mask;
> +};
> +
> +
> +#endif /* _UAPI_NF_CONNTRACK_TCP_H */
> diff --git a/include/windows/linux/netfilter/nfnetlink.h
> b/include/windows/linux/netfilter/nfnetlink.h
> new file mode 100644
> index 0000000..c76a47c
> --- /dev/null
> +++ b/include/windows/linux/netfilter/nfnetlink.h
> @@ -0,0 +1,63 @@
> +#ifndef _NFNETLINK_H
> +#define _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)
> +
> +/* General form of address family dependent message.
> + */
> +struct nfgenmsg {
> +    UINT8  nfgen_family;        /* AF_xxx */
> +    UINT8  version;             /* nfnetlink version */
> +    UINT16    res_id;           /* resource id */
> +    struct ovs_header ovsHdr;   /* Pad this for Windows */
> +};
> +
> +#define NFNETLINK_V0    0
> +
> +/* netfilter netlink message types are split in two pieces:
> + * 8 bit subsystem, 8bit operation.
> + */
> +
> +#define NFNL_SUBSYS_ID(x)   ((x & 0xff00) >> 8)
> +#define NFNL_MSG_TYPE(x)    (x & 0x00ff)
> +
> +/* No enum here, otherwise __stringify() trick of
> MODULE_ALIAS_NFNL_SUBSYS()
> + * won't work anymore */
> +#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
> +
> +/* Reserved control nfnetlink messages */
> +#define NFNL_MSG_BATCH_BEGIN    NLMSG_MIN_TYPE
> +#define NFNL_MSG_BATCH_END      NLMSG_MIN_TYPE+1
> +
> +#endif /* _NFNETLINK_H */
> diff --git a/include/windows/linux/netfilter/nfnetlink_conntrack.h
> b/include/windows/linux/netfilter/nfnetlink_conntrack.h
> new file mode 100644
> index 0000000..d30eba9
> --- /dev/null
> +++ b/include/windows/linux/netfilter/nfnetlink_conntrack.h
> @@ -0,0 +1,249 @@
> +#ifndef _IPCONNTRACK_NETLINK_H
> +#define _IPCONNTRACK_NETLINK_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  /* backwards compatibility */
> +    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,              /* obsolete */
> +    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,       /* 64bit counters */
> +    CTA_COUNTERS_BYTES,         /* 64bit counters */
> +    CTA_COUNTERS32_PACKETS,     /* old 32bit counters, unused */
> +    CTA_COUNTERS32_BYTES,       /* old 32bit counters, unused */
> +    __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)
> +
> +#endif /* _IPCONNTRACK_NETLINK_H */
> --
> 2.5.0.windows.1
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to