/* automatically generated by rust-bindgen 0.56.0 */

#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, unused)]
use libc::*;
type __be16 = u16;
type __be32 = u32;
type __be64 = u64;

pub const __BITS_PER_LONG: u32 = 64;
pub const __FD_SETSIZE: u32 = 1024;
pub const NF_NETLINK_CONNTRACK_NEW: u32 = 1;
pub const NF_NETLINK_CONNTRACK_UPDATE: u32 = 2;
pub const NF_NETLINK_CONNTRACK_DESTROY: u32 = 4;
pub const NF_NETLINK_CONNTRACK_EXP_NEW: u32 = 8;
pub const NF_NETLINK_CONNTRACK_EXP_UPDATE: u32 = 16;
pub const NF_NETLINK_CONNTRACK_EXP_DESTROY: u32 = 32;
pub const NFNL_NFA_NEST: u32 = 32768;
pub const NFA_ALIGNTO: u32 = 4;
pub const NFNETLINK_V0: u32 = 0;
pub const NFNL_SUBSYS_NONE: u32 = 0;
pub const NFNL_SUBSYS_CTNETLINK: u32 = 1;
pub const NFNL_SUBSYS_CTNETLINK_EXP: u32 = 2;
pub const NFNL_SUBSYS_QUEUE: u32 = 3;
pub const NFNL_SUBSYS_ULOG: u32 = 4;
pub const NFNL_SUBSYS_OSF: u32 = 5;
pub const NFNL_SUBSYS_IPSET: u32 = 6;
pub const NFNL_SUBSYS_ACCT: u32 = 7;
pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: u32 = 8;
pub const NFNL_SUBSYS_CTHELPER: u32 = 9;
pub const NFNL_SUBSYS_NFTABLES: u32 = 10;
pub const NFNL_SUBSYS_NFT_COMPAT: u32 = 11;
pub const NFNL_SUBSYS_COUNT: u32 = 12;
pub const NFQA_CFG_F_FAIL_OPEN: u32 = 1;
pub const NFQA_CFG_F_CONNTRACK: u32 = 2;
pub const NFQA_CFG_F_GSO: u32 = 4;
pub const NFQA_CFG_F_UID_GID: u32 = 8;
pub const NFQA_CFG_F_SECCTX: u32 = 16;
pub const NFQA_CFG_F_MAX: u32 = 32;
pub const NFQA_SKB_CSUMNOTREADY: u32 = 1;
pub const NFQA_SKB_GSO: u32 = 2;
pub const NFQA_SKB_CSUM_NOTVERIFIED: u32 = 4;
pub const NF_CT_STATE_INVALID_BIT: u32 = 1;
pub const NF_CT_STATE_UNTRACKED_BIT: u32 = 64;
pub const NF_CT_EXPECT_PERMANENT: u32 = 1;
pub const NF_CT_EXPECT_INACTIVE: u32 = 2;
pub const NF_CT_EXPECT_USERSPACE: u32 = 4;
#[repr(C)]
pub struct nfattr {
    pub nfa_len: __u16,
    pub nfa_type: __u16,
}
#[test]
fn bindgen_test_layout_nfattr() {
    assert_eq!(
        ::core::mem::size_of::<nfattr>(),
        4usize,
        concat!("Size of: ", stringify!(nfattr))
    );
    assert_eq!(
        ::core::mem::align_of::<nfattr>(),
        2usize,
        concat!("Alignment of ", stringify!(nfattr))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfattr>())).nfa_len as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfattr),
            "::",
            stringify!(nfa_len)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfattr>())).nfa_type as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nfattr),
            "::",
            stringify!(nfa_type)
        )
    );
}
pub const NFNLGRP_NONE: nfnetlink_groups = 0;
pub const NFNLGRP_CONNTRACK_NEW: nfnetlink_groups = 1;
pub const NFNLGRP_CONNTRACK_UPDATE: nfnetlink_groups = 2;
pub const NFNLGRP_CONNTRACK_DESTROY: nfnetlink_groups = 3;
pub const NFNLGRP_CONNTRACK_EXP_NEW: nfnetlink_groups = 4;
pub const NFNLGRP_CONNTRACK_EXP_UPDATE: nfnetlink_groups = 5;
pub const NFNLGRP_CONNTRACK_EXP_DESTROY: nfnetlink_groups = 6;
pub const NFNLGRP_NFTABLES: nfnetlink_groups = 7;
pub const NFNLGRP_ACCT_QUOTA: nfnetlink_groups = 8;
pub const NFNLGRP_NFTRACE: nfnetlink_groups = 9;
pub const __NFNLGRP_MAX: nfnetlink_groups = 10;
pub type nfnetlink_groups = libc::c_uint;
#[repr(C)]
pub struct nfgenmsg {
    pub nfgen_family: __u8,
    pub version: __u8,
    pub res_id: __be16,
}
#[test]
fn bindgen_test_layout_nfgenmsg() {
    assert_eq!(
        ::core::mem::size_of::<nfgenmsg>(),
        4usize,
        concat!("Size of: ", stringify!(nfgenmsg))
    );
    assert_eq!(
        ::core::mem::align_of::<nfgenmsg>(),
        2usize,
        concat!("Alignment of ", stringify!(nfgenmsg))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfgenmsg>())).nfgen_family as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfgenmsg),
            "::",
            stringify!(nfgen_family)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfgenmsg>())).version as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(nfgenmsg),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfgenmsg>())).res_id as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nfgenmsg),
            "::",
            stringify!(res_id)
        )
    );
}
pub const NFNL_BATCH_UNSPEC: nfnl_batch_attributes = 0;
pub const NFNL_BATCH_GENID: nfnl_batch_attributes = 1;
pub const __NFNL_BATCH_MAX: nfnl_batch_attributes = 2;
pub type nfnl_batch_attributes = libc::c_uint;
pub const NFQNL_MSG_PACKET: nfqnl_msg_types = 0;
pub const NFQNL_MSG_VERDICT: nfqnl_msg_types = 1;
pub const NFQNL_MSG_CONFIG: nfqnl_msg_types = 2;
pub const NFQNL_MSG_VERDICT_BATCH: nfqnl_msg_types = 3;
pub const NFQNL_MSG_MAX: nfqnl_msg_types = 4;
pub type nfqnl_msg_types = libc::c_uint;
#[repr(C, packed)]
pub struct nfqnl_msg_packet_hdr {
    pub packet_id: __be32,
    pub hw_protocol: __be16,
    pub hook: __u8,
}
#[test]
fn bindgen_test_layout_nfqnl_msg_packet_hdr() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_packet_hdr>(),
        7usize,
        concat!("Size of: ", stringify!(nfqnl_msg_packet_hdr))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_packet_hdr>(),
        1usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_packet_hdr))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_hdr>())).packet_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hdr),
            "::",
            stringify!(packet_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::core::ptr::null::<nfqnl_msg_packet_hdr>())).hw_protocol as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hdr),
            "::",
            stringify!(hw_protocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_hdr>())).hook as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hdr),
            "::",
            stringify!(hook)
        )
    );
}
#[repr(C)]
pub struct nfqnl_msg_packet_hw {
    pub hw_addrlen: __be16,
    pub _pad: __u16,
    pub hw_addr: [__u8; 8usize],
}
#[test]
fn bindgen_test_layout_nfqnl_msg_packet_hw() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_packet_hw>(),
        12usize,
        concat!("Size of: ", stringify!(nfqnl_msg_packet_hw))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_packet_hw>(),
        2usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_packet_hw))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_hw>())).hw_addrlen as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hw),
            "::",
            stringify!(hw_addrlen)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_hw>()))._pad as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hw),
            "::",
            stringify!(_pad)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_hw>())).hw_addr as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_hw),
            "::",
            stringify!(hw_addr)
        )
    );
}
#[repr(C)]
pub struct nfqnl_msg_packet_timestamp {
    pub sec: __be64,
    pub usec: __be64,
}
#[test]
fn bindgen_test_layout_nfqnl_msg_packet_timestamp() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_packet_timestamp>(),
        16usize,
        concat!("Size of: ", stringify!(nfqnl_msg_packet_timestamp))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_packet_timestamp>(),
        8usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_packet_timestamp))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_packet_timestamp>())).sec as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_timestamp),
            "::",
            stringify!(sec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::core::ptr::null::<nfqnl_msg_packet_timestamp>())).usec as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_packet_timestamp),
            "::",
            stringify!(usec)
        )
    );
}
pub const NFQA_VLAN_UNSPEC: nfqnl_vlan_attr = 0;
pub const NFQA_VLAN_PROTO: nfqnl_vlan_attr = 1;
pub const NFQA_VLAN_TCI: nfqnl_vlan_attr = 2;
pub const __NFQA_VLAN_MAX: nfqnl_vlan_attr = 3;
pub type nfqnl_vlan_attr = libc::c_uint;
pub const NFQA_UNSPEC: nfqnl_attr_type = 0;
pub const NFQA_PACKET_HDR: nfqnl_attr_type = 1;
pub const NFQA_VERDICT_HDR: nfqnl_attr_type = 2;
pub const NFQA_MARK: nfqnl_attr_type = 3;
pub const NFQA_TIMESTAMP: nfqnl_attr_type = 4;
pub const NFQA_IFINDEX_INDEV: nfqnl_attr_type = 5;
pub const NFQA_IFINDEX_OUTDEV: nfqnl_attr_type = 6;
pub const NFQA_IFINDEX_PHYSINDEV: nfqnl_attr_type = 7;
pub const NFQA_IFINDEX_PHYSOUTDEV: nfqnl_attr_type = 8;
pub const NFQA_HWADDR: nfqnl_attr_type = 9;
pub const NFQA_PAYLOAD: nfqnl_attr_type = 10;
pub const NFQA_CT: nfqnl_attr_type = 11;
pub const NFQA_CT_INFO: nfqnl_attr_type = 12;
pub const NFQA_CAP_LEN: nfqnl_attr_type = 13;
pub const NFQA_SKB_INFO: nfqnl_attr_type = 14;
pub const NFQA_EXP: nfqnl_attr_type = 15;
pub const NFQA_UID: nfqnl_attr_type = 16;
pub const NFQA_GID: nfqnl_attr_type = 17;
pub const NFQA_SECCTX: nfqnl_attr_type = 18;
pub const NFQA_VLAN: nfqnl_attr_type = 19;
pub const NFQA_L2HDR: nfqnl_attr_type = 20;
pub const __NFQA_MAX: nfqnl_attr_type = 21;
pub type nfqnl_attr_type = libc::c_uint;
#[repr(C)]
pub struct nfqnl_msg_verdict_hdr {
    pub verdict: __be32,
    pub id: __be32,
}
#[test]
fn bindgen_test_layout_nfqnl_msg_verdict_hdr() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_verdict_hdr>(),
        8usize,
        concat!("Size of: ", stringify!(nfqnl_msg_verdict_hdr))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_verdict_hdr>(),
        4usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_verdict_hdr))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_verdict_hdr>())).verdict as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_verdict_hdr),
            "::",
            stringify!(verdict)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_verdict_hdr>())).id as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_verdict_hdr),
            "::",
            stringify!(id)
        )
    );
}
pub const NFQNL_CFG_CMD_NONE: nfqnl_msg_config_cmds = 0;
pub const NFQNL_CFG_CMD_BIND: nfqnl_msg_config_cmds = 1;
pub const NFQNL_CFG_CMD_UNBIND: nfqnl_msg_config_cmds = 2;
pub const NFQNL_CFG_CMD_PF_BIND: nfqnl_msg_config_cmds = 3;
pub const NFQNL_CFG_CMD_PF_UNBIND: nfqnl_msg_config_cmds = 4;
pub type nfqnl_msg_config_cmds = libc::c_uint;
#[repr(C)]
pub struct nfqnl_msg_config_cmd {
    pub command: __u8,
    pub _pad: __u8,
    pub pf: __be16,
}
#[test]
fn bindgen_test_layout_nfqnl_msg_config_cmd() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_config_cmd>(),
        4usize,
        concat!("Size of: ", stringify!(nfqnl_msg_config_cmd))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_config_cmd>(),
        2usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_config_cmd))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_config_cmd>())).command as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_config_cmd),
            "::",
            stringify!(command)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_config_cmd>()))._pad as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_config_cmd),
            "::",
            stringify!(_pad)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<nfqnl_msg_config_cmd>())).pf as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_config_cmd),
            "::",
            stringify!(pf)
        )
    );
}
pub const NFQNL_COPY_NONE: nfqnl_config_mode = 0;
pub const NFQNL_COPY_META: nfqnl_config_mode = 1;
pub const NFQNL_COPY_PACKET: nfqnl_config_mode = 2;
pub type nfqnl_config_mode = libc::c_uint;
#[repr(C, packed)]
pub struct nfqnl_msg_config_params {
    pub copy_range: __be32,
    pub copy_mode: __u8,
}
#[test]
fn bindgen_test_layout_nfqnl_msg_config_params() {
    assert_eq!(
        ::core::mem::size_of::<nfqnl_msg_config_params>(),
        5usize,
        concat!("Size of: ", stringify!(nfqnl_msg_config_params))
    );
    assert_eq!(
        ::core::mem::align_of::<nfqnl_msg_config_params>(),
        1usize,
        concat!("Alignment of ", stringify!(nfqnl_msg_config_params))
    );
    assert_eq!(
        unsafe {
            &(*(::core::ptr::null::<nfqnl_msg_config_params>())).copy_range as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_config_params),
            "::",
            stringify!(copy_range)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::core::ptr::null::<nfqnl_msg_config_params>())).copy_mode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nfqnl_msg_config_params),
            "::",
            stringify!(copy_mode)
        )
    );
}
pub const NFQA_CFG_UNSPEC: nfqnl_attr_config = 0;
pub const NFQA_CFG_CMD: nfqnl_attr_config = 1;
pub const NFQA_CFG_PARAMS: nfqnl_attr_config = 2;
pub const NFQA_CFG_QUEUE_MAXLEN: nfqnl_attr_config = 3;
pub const NFQA_CFG_MASK: nfqnl_attr_config = 4;
pub const NFQA_CFG_FLAGS: nfqnl_attr_config = 5;
pub const __NFQA_CFG_MAX: nfqnl_attr_config = 6;
pub type nfqnl_attr_config = libc::c_uint;
pub const IPCTNL_MSG_CT_NEW: cntl_msg_types = 0;
pub const IPCTNL_MSG_CT_GET: cntl_msg_types = 1;
pub const IPCTNL_MSG_CT_DELETE: cntl_msg_types = 2;
pub const IPCTNL_MSG_CT_GET_CTRZERO: cntl_msg_types = 3;
pub const IPCTNL_MSG_CT_GET_STATS_CPU: cntl_msg_types = 4;
pub const IPCTNL_MSG_CT_GET_STATS: cntl_msg_types = 5;
pub const IPCTNL_MSG_CT_GET_DYING: cntl_msg_types = 6;
pub const IPCTNL_MSG_CT_GET_UNCONFIRMED: cntl_msg_types = 7;
pub const IPCTNL_MSG_MAX: cntl_msg_types = 8;
pub type cntl_msg_types = libc::c_uint;
pub const IPCTNL_MSG_EXP_NEW: ctnl_exp_msg_types = 0;
pub const IPCTNL_MSG_EXP_GET: ctnl_exp_msg_types = 1;
pub const IPCTNL_MSG_EXP_DELETE: ctnl_exp_msg_types = 2;
pub const IPCTNL_MSG_EXP_GET_STATS_CPU: ctnl_exp_msg_types = 3;
pub const IPCTNL_MSG_EXP_MAX: ctnl_exp_msg_types = 4;
pub type ctnl_exp_msg_types = libc::c_uint;
pub const CTA_UNSPEC: ctattr_type = 0;
pub const CTA_TUPLE_ORIG: ctattr_type = 1;
pub const CTA_TUPLE_REPLY: ctattr_type = 2;
pub const CTA_STATUS: ctattr_type = 3;
pub const CTA_PROTOINFO: ctattr_type = 4;
pub const CTA_HELP: ctattr_type = 5;
pub const CTA_NAT_SRC: ctattr_type = 6;
pub const CTA_TIMEOUT: ctattr_type = 7;
pub const CTA_MARK: ctattr_type = 8;
pub const CTA_COUNTERS_ORIG: ctattr_type = 9;
pub const CTA_COUNTERS_REPLY: ctattr_type = 10;
pub const CTA_USE: ctattr_type = 11;
pub const CTA_ID: ctattr_type = 12;
pub const CTA_NAT_DST: ctattr_type = 13;
pub const CTA_TUPLE_MASTER: ctattr_type = 14;
pub const CTA_SEQ_ADJ_ORIG: ctattr_type = 15;
pub const CTA_NAT_SEQ_ADJ_ORIG: ctattr_type = 15;
pub const CTA_SEQ_ADJ_REPLY: ctattr_type = 16;
pub const CTA_NAT_SEQ_ADJ_REPLY: ctattr_type = 16;
pub const CTA_SECMARK: ctattr_type = 17;
pub const CTA_ZONE: ctattr_type = 18;
pub const CTA_SECCTX: ctattr_type = 19;
pub const CTA_TIMESTAMP: ctattr_type = 20;
pub const CTA_MARK_MASK: ctattr_type = 21;
pub const CTA_LABELS: ctattr_type = 22;
pub const CTA_LABELS_MASK: ctattr_type = 23;
pub const CTA_SYNPROXY: ctattr_type = 24;
pub const __CTA_MAX: ctattr_type = 25;
pub type ctattr_type = libc::c_uint;
pub const CTA_TUPLE_UNSPEC: ctattr_tuple = 0;
pub const CTA_TUPLE_IP: ctattr_tuple = 1;
pub const CTA_TUPLE_PROTO: ctattr_tuple = 2;
pub const CTA_TUPLE_ZONE: ctattr_tuple = 3;
pub const __CTA_TUPLE_MAX: ctattr_tuple = 4;
pub type ctattr_tuple = libc::c_uint;
pub const CTA_IP_UNSPEC: ctattr_ip = 0;
pub const CTA_IP_V4_SRC: ctattr_ip = 1;
pub const CTA_IP_V4_DST: ctattr_ip = 2;
pub const CTA_IP_V6_SRC: ctattr_ip = 3;
pub const CTA_IP_V6_DST: ctattr_ip = 4;
pub const __CTA_IP_MAX: ctattr_ip = 5;
pub type ctattr_ip = libc::c_uint;
pub const CTA_PROTO_UNSPEC: ctattr_l4proto = 0;
pub const CTA_PROTO_NUM: ctattr_l4proto = 1;
pub const CTA_PROTO_SRC_PORT: ctattr_l4proto = 2;
pub const CTA_PROTO_DST_PORT: ctattr_l4proto = 3;
pub const CTA_PROTO_ICMP_ID: ctattr_l4proto = 4;
pub const CTA_PROTO_ICMP_TYPE: ctattr_l4proto = 5;
pub const CTA_PROTO_ICMP_CODE: ctattr_l4proto = 6;
pub const CTA_PROTO_ICMPV6_ID: ctattr_l4proto = 7;
pub const CTA_PROTO_ICMPV6_TYPE: ctattr_l4proto = 8;
pub const CTA_PROTO_ICMPV6_CODE: ctattr_l4proto = 9;
pub const __CTA_PROTO_MAX: ctattr_l4proto = 10;
pub type ctattr_l4proto = libc::c_uint;
pub const CTA_PROTOINFO_UNSPEC: ctattr_protoinfo = 0;
pub const CTA_PROTOINFO_TCP: ctattr_protoinfo = 1;
pub const CTA_PROTOINFO_DCCP: ctattr_protoinfo = 2;
pub const CTA_PROTOINFO_SCTP: ctattr_protoinfo = 3;
pub const __CTA_PROTOINFO_MAX: ctattr_protoinfo = 4;
pub type ctattr_protoinfo = libc::c_uint;
pub const CTA_PROTOINFO_TCP_UNSPEC: ctattr_protoinfo_tcp = 0;
pub const CTA_PROTOINFO_TCP_STATE: ctattr_protoinfo_tcp = 1;
pub const CTA_PROTOINFO_TCP_WSCALE_ORIGINAL: ctattr_protoinfo_tcp = 2;
pub const CTA_PROTOINFO_TCP_WSCALE_REPLY: ctattr_protoinfo_tcp = 3;
pub const CTA_PROTOINFO_TCP_FLAGS_ORIGINAL: ctattr_protoinfo_tcp = 4;
pub const CTA_PROTOINFO_TCP_FLAGS_REPLY: ctattr_protoinfo_tcp = 5;
pub const __CTA_PROTOINFO_TCP_MAX: ctattr_protoinfo_tcp = 6;
pub type ctattr_protoinfo_tcp = libc::c_uint;
pub const CTA_PROTOINFO_DCCP_UNSPEC: ctattr_protoinfo_dccp = 0;
pub const CTA_PROTOINFO_DCCP_STATE: ctattr_protoinfo_dccp = 1;
pub const CTA_PROTOINFO_DCCP_ROLE: ctattr_protoinfo_dccp = 2;
pub const CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ: ctattr_protoinfo_dccp = 3;
pub const CTA_PROTOINFO_DCCP_PAD: ctattr_protoinfo_dccp = 4;
pub const __CTA_PROTOINFO_DCCP_MAX: ctattr_protoinfo_dccp = 5;
pub type ctattr_protoinfo_dccp = libc::c_uint;
pub const CTA_PROTOINFO_SCTP_UNSPEC: ctattr_protoinfo_sctp = 0;
pub const CTA_PROTOINFO_SCTP_STATE: ctattr_protoinfo_sctp = 1;
pub const CTA_PROTOINFO_SCTP_VTAG_ORIGINAL: ctattr_protoinfo_sctp = 2;
pub const CTA_PROTOINFO_SCTP_VTAG_REPLY: ctattr_protoinfo_sctp = 3;
pub const __CTA_PROTOINFO_SCTP_MAX: ctattr_protoinfo_sctp = 4;
pub type ctattr_protoinfo_sctp = libc::c_uint;
pub const CTA_COUNTERS_UNSPEC: ctattr_counters = 0;
pub const CTA_COUNTERS_PACKETS: ctattr_counters = 1;
pub const CTA_COUNTERS_BYTES: ctattr_counters = 2;
pub const CTA_COUNTERS32_PACKETS: ctattr_counters = 3;
pub const CTA_COUNTERS32_BYTES: ctattr_counters = 4;
pub const CTA_COUNTERS_PAD: ctattr_counters = 5;
pub const __CTA_COUNTERS_MAX: ctattr_counters = 6;
pub type ctattr_counters = libc::c_uint;
pub const CTA_TIMESTAMP_UNSPEC: ctattr_tstamp = 0;
pub const CTA_TIMESTAMP_START: ctattr_tstamp = 1;
pub const CTA_TIMESTAMP_STOP: ctattr_tstamp = 2;
pub const CTA_TIMESTAMP_PAD: ctattr_tstamp = 3;
pub const __CTA_TIMESTAMP_MAX: ctattr_tstamp = 4;
pub type ctattr_tstamp = libc::c_uint;
pub const CTA_NAT_UNSPEC: ctattr_nat = 0;
pub const CTA_NAT_V4_MINIP: ctattr_nat = 1;
pub const CTA_NAT_V4_MAXIP: ctattr_nat = 2;
pub const CTA_NAT_PROTO: ctattr_nat = 3;
pub const CTA_NAT_V6_MINIP: ctattr_nat = 4;
pub const CTA_NAT_V6_MAXIP: ctattr_nat = 5;
pub const __CTA_NAT_MAX: ctattr_nat = 6;
pub type ctattr_nat = libc::c_uint;
pub const CTA_PROTONAT_UNSPEC: ctattr_protonat = 0;
pub const CTA_PROTONAT_PORT_MIN: ctattr_protonat = 1;
pub const CTA_PROTONAT_PORT_MAX: ctattr_protonat = 2;
pub const __CTA_PROTONAT_MAX: ctattr_protonat = 3;
pub type ctattr_protonat = libc::c_uint;
pub const CTA_SEQADJ_UNSPEC: ctattr_seqadj = 0;
pub const CTA_SEQADJ_CORRECTION_POS: ctattr_seqadj = 1;
pub const CTA_SEQADJ_OFFSET_BEFORE: ctattr_seqadj = 2;
pub const CTA_SEQADJ_OFFSET_AFTER: ctattr_seqadj = 3;
pub const __CTA_SEQADJ_MAX: ctattr_seqadj = 4;
pub type ctattr_seqadj = libc::c_uint;
pub const CTA_NAT_SEQ_UNSPEC: ctattr_natseq = 0;
pub const CTA_NAT_SEQ_CORRECTION_POS: ctattr_natseq = 1;
pub const CTA_NAT_SEQ_OFFSET_BEFORE: ctattr_natseq = 2;
pub const CTA_NAT_SEQ_OFFSET_AFTER: ctattr_natseq = 3;
pub const __CTA_NAT_SEQ_MAX: ctattr_natseq = 4;
pub type ctattr_natseq = libc::c_uint;
pub const CTA_SYNPROXY_UNSPEC: ctattr_synproxy = 0;
pub const CTA_SYNPROXY_ISN: ctattr_synproxy = 1;
pub const CTA_SYNPROXY_ITS: ctattr_synproxy = 2;
pub const CTA_SYNPROXY_TSOFF: ctattr_synproxy = 3;
pub const __CTA_SYNPROXY_MAX: ctattr_synproxy = 4;
pub type ctattr_synproxy = libc::c_uint;
pub const CTA_EXPECT_UNSPEC: ctattr_expect = 0;
pub const CTA_EXPECT_MASTER: ctattr_expect = 1;
pub const CTA_EXPECT_TUPLE: ctattr_expect = 2;
pub const CTA_EXPECT_MASK: ctattr_expect = 3;
pub const CTA_EXPECT_TIMEOUT: ctattr_expect = 4;
pub const CTA_EXPECT_ID: ctattr_expect = 5;
pub const CTA_EXPECT_HELP_NAME: ctattr_expect = 6;
pub const CTA_EXPECT_ZONE: ctattr_expect = 7;
pub const CTA_EXPECT_FLAGS: ctattr_expect = 8;
pub const CTA_EXPECT_CLASS: ctattr_expect = 9;
pub const CTA_EXPECT_NAT: ctattr_expect = 10;
pub const CTA_EXPECT_FN: ctattr_expect = 11;
pub const __CTA_EXPECT_MAX: ctattr_expect = 12;
pub type ctattr_expect = libc::c_uint;
pub const CTA_EXPECT_NAT_UNSPEC: ctattr_expect_nat = 0;
pub const CTA_EXPECT_NAT_DIR: ctattr_expect_nat = 1;
pub const CTA_EXPECT_NAT_TUPLE: ctattr_expect_nat = 2;
pub const __CTA_EXPECT_NAT_MAX: ctattr_expect_nat = 3;
pub type ctattr_expect_nat = libc::c_uint;
pub const CTA_HELP_UNSPEC: ctattr_help = 0;
pub const CTA_HELP_NAME: ctattr_help = 1;
pub const CTA_HELP_INFO: ctattr_help = 2;
pub const __CTA_HELP_MAX: ctattr_help = 3;
pub type ctattr_help = libc::c_uint;
pub const CTA_SECCTX_UNSPEC: ctattr_secctx = 0;
pub const CTA_SECCTX_NAME: ctattr_secctx = 1;
pub const __CTA_SECCTX_MAX: ctattr_secctx = 2;
pub type ctattr_secctx = libc::c_uint;
pub const CTA_STATS_UNSPEC: ctattr_stats_cpu = 0;
pub const CTA_STATS_SEARCHED: ctattr_stats_cpu = 1;
pub const CTA_STATS_FOUND: ctattr_stats_cpu = 2;
pub const CTA_STATS_NEW: ctattr_stats_cpu = 3;
pub const CTA_STATS_INVALID: ctattr_stats_cpu = 4;
pub const CTA_STATS_IGNORE: ctattr_stats_cpu = 5;
pub const CTA_STATS_DELETE: ctattr_stats_cpu = 6;
pub const CTA_STATS_DELETE_LIST: ctattr_stats_cpu = 7;
pub const CTA_STATS_INSERT: ctattr_stats_cpu = 8;
pub const CTA_STATS_INSERT_FAILED: ctattr_stats_cpu = 9;
pub const CTA_STATS_DROP: ctattr_stats_cpu = 10;
pub const CTA_STATS_EARLY_DROP: ctattr_stats_cpu = 11;
pub const CTA_STATS_ERROR: ctattr_stats_cpu = 12;
pub const CTA_STATS_SEARCH_RESTART: ctattr_stats_cpu = 13;
pub const __CTA_STATS_MAX: ctattr_stats_cpu = 14;
pub type ctattr_stats_cpu = libc::c_uint;
pub const CTA_STATS_GLOBAL_UNSPEC: ctattr_stats_global = 0;
pub const CTA_STATS_GLOBAL_ENTRIES: ctattr_stats_global = 1;
pub const CTA_STATS_GLOBAL_MAX_ENTRIES: ctattr_stats_global = 2;
pub const __CTA_STATS_GLOBAL_MAX: ctattr_stats_global = 3;
pub type ctattr_stats_global = libc::c_uint;
pub const CTA_STATS_EXP_UNSPEC: ctattr_expect_stats = 0;
pub const CTA_STATS_EXP_NEW: ctattr_expect_stats = 1;
pub const CTA_STATS_EXP_CREATE: ctattr_expect_stats = 2;
pub const CTA_STATS_EXP_DELETE: ctattr_expect_stats = 3;
pub const __CTA_STATS_EXP_MAX: ctattr_expect_stats = 4;
pub type ctattr_expect_stats = libc::c_uint;
pub const IP_CT_ESTABLISHED: ip_conntrack_info = 0;
pub const IP_CT_RELATED: ip_conntrack_info = 1;
pub const IP_CT_NEW: ip_conntrack_info = 2;
pub const IP_CT_IS_REPLY: ip_conntrack_info = 3;
pub const IP_CT_ESTABLISHED_REPLY: ip_conntrack_info = 3;
pub const IP_CT_RELATED_REPLY: ip_conntrack_info = 4;
pub const IP_CT_NUMBER: ip_conntrack_info = 5;
pub const IP_CT_NEW_REPLY: ip_conntrack_info = 5;
pub type ip_conntrack_info = libc::c_uint;
pub const IPS_EXPECTED_BIT: ip_conntrack_status = 0;
pub const IPS_EXPECTED: ip_conntrack_status = 1;
pub const IPS_SEEN_REPLY_BIT: ip_conntrack_status = 1;
pub const IPS_SEEN_REPLY: ip_conntrack_status = 2;
pub const IPS_ASSURED_BIT: ip_conntrack_status = 2;
pub const IPS_ASSURED: ip_conntrack_status = 4;
pub const IPS_CONFIRMED_BIT: ip_conntrack_status = 3;
pub const IPS_CONFIRMED: ip_conntrack_status = 8;
pub const IPS_SRC_NAT_BIT: ip_conntrack_status = 4;
pub const IPS_SRC_NAT: ip_conntrack_status = 16;
pub const IPS_DST_NAT_BIT: ip_conntrack_status = 5;
pub const IPS_DST_NAT: ip_conntrack_status = 32;
pub const IPS_NAT_MASK: ip_conntrack_status = 48;
pub const IPS_SEQ_ADJUST_BIT: ip_conntrack_status = 6;
pub const IPS_SEQ_ADJUST: ip_conntrack_status = 64;
pub const IPS_SRC_NAT_DONE_BIT: ip_conntrack_status = 7;
pub const IPS_SRC_NAT_DONE: ip_conntrack_status = 128;
pub const IPS_DST_NAT_DONE_BIT: ip_conntrack_status = 8;
pub const IPS_DST_NAT_DONE: ip_conntrack_status = 256;
pub const IPS_NAT_DONE_MASK: ip_conntrack_status = 384;
pub const IPS_DYING_BIT: ip_conntrack_status = 9;
pub const IPS_DYING: ip_conntrack_status = 512;
pub const IPS_FIXED_TIMEOUT_BIT: ip_conntrack_status = 10;
pub const IPS_FIXED_TIMEOUT: ip_conntrack_status = 1024;
pub const IPS_TEMPLATE_BIT: ip_conntrack_status = 11;
pub const IPS_TEMPLATE: ip_conntrack_status = 2048;
pub const IPS_UNTRACKED_BIT: ip_conntrack_status = 12;
pub const IPS_UNTRACKED: ip_conntrack_status = 4096;
pub const IPS_HELPER_BIT: ip_conntrack_status = 13;
pub const IPS_HELPER: ip_conntrack_status = 8192;
pub const IPS_OFFLOAD_BIT: ip_conntrack_status = 14;
pub const IPS_OFFLOAD: ip_conntrack_status = 16384;
pub const IPS_UNCHANGEABLE_MASK: ip_conntrack_status = 19449;
pub const __IPS_MAX_BIT: ip_conntrack_status = 15;
pub type ip_conntrack_status = libc::c_uint;
pub const IPCT_NEW: ip_conntrack_events = 0;
pub const IPCT_RELATED: ip_conntrack_events = 1;
pub const IPCT_DESTROY: ip_conntrack_events = 2;
pub const IPCT_REPLY: ip_conntrack_events = 3;
pub const IPCT_ASSURED: ip_conntrack_events = 4;
pub const IPCT_PROTOINFO: ip_conntrack_events = 5;
pub const IPCT_HELPER: ip_conntrack_events = 6;
pub const IPCT_MARK: ip_conntrack_events = 7;
pub const IPCT_SEQADJ: ip_conntrack_events = 8;
pub const IPCT_NATSEQADJ: ip_conntrack_events = 8;
pub const IPCT_SECMARK: ip_conntrack_events = 9;
pub const IPCT_LABEL: ip_conntrack_events = 10;
pub const IPCT_SYNPROXY: ip_conntrack_events = 11;
pub type ip_conntrack_events = libc::c_uint;
pub const IPEXP_NEW: ip_conntrack_expect_events = 0;
pub const IPEXP_DESTROY: ip_conntrack_expect_events = 1;
pub type ip_conntrack_expect_events = libc::c_uint;
