Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _UAPI_NFNETLINK_H
0003 #define _UAPI_NFNETLINK_H
0004 #include <linux/types.h>
0005 #include <linux/netfilter/nfnetlink_compat.h>
0006 
0007 enum nfnetlink_groups {
0008     NFNLGRP_NONE,
0009 #define NFNLGRP_NONE            NFNLGRP_NONE
0010     NFNLGRP_CONNTRACK_NEW,
0011 #define NFNLGRP_CONNTRACK_NEW       NFNLGRP_CONNTRACK_NEW
0012     NFNLGRP_CONNTRACK_UPDATE,
0013 #define NFNLGRP_CONNTRACK_UPDATE    NFNLGRP_CONNTRACK_UPDATE
0014     NFNLGRP_CONNTRACK_DESTROY,
0015 #define NFNLGRP_CONNTRACK_DESTROY   NFNLGRP_CONNTRACK_DESTROY
0016     NFNLGRP_CONNTRACK_EXP_NEW,
0017 #define NFNLGRP_CONNTRACK_EXP_NEW   NFNLGRP_CONNTRACK_EXP_NEW
0018     NFNLGRP_CONNTRACK_EXP_UPDATE,
0019 #define NFNLGRP_CONNTRACK_EXP_UPDATE    NFNLGRP_CONNTRACK_EXP_UPDATE
0020     NFNLGRP_CONNTRACK_EXP_DESTROY,
0021 #define NFNLGRP_CONNTRACK_EXP_DESTROY   NFNLGRP_CONNTRACK_EXP_DESTROY
0022     NFNLGRP_NFTABLES,
0023 #define NFNLGRP_NFTABLES                NFNLGRP_NFTABLES
0024     NFNLGRP_ACCT_QUOTA,
0025 #define NFNLGRP_ACCT_QUOTA      NFNLGRP_ACCT_QUOTA
0026     NFNLGRP_NFTRACE,
0027 #define NFNLGRP_NFTRACE         NFNLGRP_NFTRACE
0028     __NFNLGRP_MAX,
0029 };
0030 #define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
0031 
0032 /* General form of address family dependent message.
0033  */
0034 struct nfgenmsg {
0035     __u8  nfgen_family;     /* AF_xxx */
0036     __u8  version;      /* nfnetlink version */
0037     __be16    res_id;       /* resource id */
0038 };
0039 
0040 #define NFNETLINK_V0    0
0041 
0042 /* netfilter netlink message types are split in two pieces:
0043  * 8 bit subsystem, 8bit operation.
0044  */
0045 
0046 #define NFNL_SUBSYS_ID(x)   ((x & 0xff00) >> 8)
0047 #define NFNL_MSG_TYPE(x)    (x & 0x00ff)
0048 
0049 /* No enum here, otherwise __stringify() trick of MODULE_ALIAS_NFNL_SUBSYS()
0050  * won't work anymore */
0051 #define NFNL_SUBSYS_NONE        0
0052 #define NFNL_SUBSYS_CTNETLINK       1
0053 #define NFNL_SUBSYS_CTNETLINK_EXP   2
0054 #define NFNL_SUBSYS_QUEUE       3
0055 #define NFNL_SUBSYS_ULOG        4
0056 #define NFNL_SUBSYS_OSF         5
0057 #define NFNL_SUBSYS_IPSET       6
0058 #define NFNL_SUBSYS_ACCT        7
0059 #define NFNL_SUBSYS_CTNETLINK_TIMEOUT   8
0060 #define NFNL_SUBSYS_CTHELPER        9
0061 #define NFNL_SUBSYS_NFTABLES        10
0062 #define NFNL_SUBSYS_NFT_COMPAT      11
0063 #define NFNL_SUBSYS_HOOK        12
0064 #define NFNL_SUBSYS_COUNT       13
0065 
0066 /* Reserved control nfnetlink messages */
0067 #define NFNL_MSG_BATCH_BEGIN        NLMSG_MIN_TYPE
0068 #define NFNL_MSG_BATCH_END      NLMSG_MIN_TYPE+1
0069 
0070 /**
0071  * enum nfnl_batch_attributes - nfnetlink batch netlink attributes
0072  *
0073  * @NFNL_BATCH_GENID: generation ID for this changeset (NLA_U32)
0074  */
0075 enum nfnl_batch_attributes {
0076         NFNL_BATCH_UNSPEC,
0077         NFNL_BATCH_GENID,
0078         __NFNL_BATCH_MAX
0079 };
0080 #define NFNL_BATCH_MAX          (__NFNL_BATCH_MAX - 1)
0081 
0082 #endif /* _UAPI_NFNETLINK_H */