Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
0002 /*
0003  * Copyright (c) 2014, Ericsson AB
0004  * All rights reserved.
0005  *
0006  * Redistribution and use in source and binary forms, with or without
0007  * modification, are permitted provided that the following conditions are met:
0008  *
0009  * 1. Redistributions of source code must retain the above copyright
0010  *    notice, this list of conditions and the following disclaimer.
0011  * 2. Redistributions in binary form must reproduce the above copyright
0012  *    notice, this list of conditions and the following disclaimer in the
0013  *    documentation and/or other materials provided with the distribution.
0014  * 3. Neither the names of the copyright holders nor the names of its
0015  *    contributors may be used to endorse or promote products derived from
0016  *    this software without specific prior written permission.
0017  *
0018  * Alternatively, this software may be distributed under the terms of the
0019  * GNU General Public License ("GPL") version 2 as published by the Free
0020  * Software Foundation.
0021  *
0022  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0023  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0024  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0025  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0026  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0027  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0028  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0029  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0030  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0031  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0032  * POSSIBILITY OF SUCH DAMAGE.
0033  */
0034 
0035 #ifndef _LINUX_TIPC_NETLINK_H_
0036 #define _LINUX_TIPC_NETLINK_H_
0037 
0038 #define TIPC_GENL_V2_NAME      "TIPCv2"
0039 #define TIPC_GENL_V2_VERSION   0x1
0040 
0041 /* Netlink commands */
0042 enum {
0043     TIPC_NL_UNSPEC,
0044     TIPC_NL_LEGACY,
0045     TIPC_NL_BEARER_DISABLE,
0046     TIPC_NL_BEARER_ENABLE,
0047     TIPC_NL_BEARER_GET,
0048     TIPC_NL_BEARER_SET,
0049     TIPC_NL_SOCK_GET,
0050     TIPC_NL_PUBL_GET,
0051     TIPC_NL_LINK_GET,
0052     TIPC_NL_LINK_SET,
0053     TIPC_NL_LINK_RESET_STATS,
0054     TIPC_NL_MEDIA_GET,
0055     TIPC_NL_MEDIA_SET,
0056     TIPC_NL_NODE_GET,
0057     TIPC_NL_NET_GET,
0058     TIPC_NL_NET_SET,
0059     TIPC_NL_NAME_TABLE_GET,
0060     TIPC_NL_MON_SET,
0061     TIPC_NL_MON_GET,
0062     TIPC_NL_MON_PEER_GET,
0063     TIPC_NL_PEER_REMOVE,
0064     TIPC_NL_BEARER_ADD,
0065     TIPC_NL_UDP_GET_REMOTEIP,
0066     TIPC_NL_KEY_SET,
0067     TIPC_NL_KEY_FLUSH,
0068     TIPC_NL_ADDR_LEGACY_GET,
0069 
0070     __TIPC_NL_CMD_MAX,
0071     TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
0072 };
0073 
0074 /* Top level netlink attributes */
0075 enum {
0076     TIPC_NLA_UNSPEC,
0077     TIPC_NLA_BEARER,        /* nest */
0078     TIPC_NLA_SOCK,          /* nest */
0079     TIPC_NLA_PUBL,          /* nest */
0080     TIPC_NLA_LINK,          /* nest */
0081     TIPC_NLA_MEDIA,         /* nest */
0082     TIPC_NLA_NODE,          /* nest */
0083     TIPC_NLA_NET,           /* nest */
0084     TIPC_NLA_NAME_TABLE,        /* nest */
0085     TIPC_NLA_MON,           /* nest */
0086     TIPC_NLA_MON_PEER,      /* nest */
0087 
0088     __TIPC_NLA_MAX,
0089     TIPC_NLA_MAX = __TIPC_NLA_MAX - 1
0090 };
0091 
0092 /* Bearer info */
0093 enum {
0094     TIPC_NLA_BEARER_UNSPEC,
0095     TIPC_NLA_BEARER_NAME,       /* string */
0096     TIPC_NLA_BEARER_PROP,       /* nest */
0097     TIPC_NLA_BEARER_DOMAIN,     /* u32 */
0098     TIPC_NLA_BEARER_UDP_OPTS,   /* nest */
0099 
0100     __TIPC_NLA_BEARER_MAX,
0101     TIPC_NLA_BEARER_MAX = __TIPC_NLA_BEARER_MAX - 1
0102 };
0103 
0104 enum {
0105     TIPC_NLA_UDP_UNSPEC,
0106     TIPC_NLA_UDP_LOCAL,     /* sockaddr_storage */
0107     TIPC_NLA_UDP_REMOTE,        /* sockaddr_storage */
0108     TIPC_NLA_UDP_MULTI_REMOTEIP,    /* flag */
0109 
0110     __TIPC_NLA_UDP_MAX,
0111     TIPC_NLA_UDP_MAX = __TIPC_NLA_UDP_MAX - 1
0112 };
0113 /* Socket info */
0114 enum {
0115     TIPC_NLA_SOCK_UNSPEC,
0116     TIPC_NLA_SOCK_ADDR,     /* u32 */
0117     TIPC_NLA_SOCK_REF,      /* u32 */
0118     TIPC_NLA_SOCK_CON,      /* nest */
0119     TIPC_NLA_SOCK_HAS_PUBL,     /* flag */
0120     TIPC_NLA_SOCK_STAT,     /* nest */
0121     TIPC_NLA_SOCK_TYPE,     /* u32 */
0122     TIPC_NLA_SOCK_INO,      /* u32 */
0123     TIPC_NLA_SOCK_UID,      /* u32 */
0124     TIPC_NLA_SOCK_TIPC_STATE,   /* u32 */
0125     TIPC_NLA_SOCK_COOKIE,       /* u64 */
0126     TIPC_NLA_SOCK_PAD,      /* flag */
0127     TIPC_NLA_SOCK_GROUP,        /* nest */
0128 
0129     __TIPC_NLA_SOCK_MAX,
0130     TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
0131 };
0132 
0133 /* Link info */
0134 enum {
0135     TIPC_NLA_LINK_UNSPEC,
0136     TIPC_NLA_LINK_NAME,     /* string */
0137     TIPC_NLA_LINK_DEST,     /* u32 */
0138     TIPC_NLA_LINK_MTU,      /* u32 */
0139     TIPC_NLA_LINK_BROADCAST,    /* flag */
0140     TIPC_NLA_LINK_UP,       /* flag */
0141     TIPC_NLA_LINK_ACTIVE,       /* flag */
0142     TIPC_NLA_LINK_PROP,     /* nest */
0143     TIPC_NLA_LINK_STATS,        /* nest */
0144     TIPC_NLA_LINK_RX,       /* u32 */
0145     TIPC_NLA_LINK_TX,       /* u32 */
0146 
0147     __TIPC_NLA_LINK_MAX,
0148     TIPC_NLA_LINK_MAX = __TIPC_NLA_LINK_MAX - 1
0149 };
0150 
0151 /* Media info */
0152 enum {
0153     TIPC_NLA_MEDIA_UNSPEC,
0154     TIPC_NLA_MEDIA_NAME,        /* string */
0155     TIPC_NLA_MEDIA_PROP,        /* nest */
0156 
0157     __TIPC_NLA_MEDIA_MAX,
0158     TIPC_NLA_MEDIA_MAX = __TIPC_NLA_MEDIA_MAX - 1
0159 };
0160 
0161 /* Node info */
0162 enum {
0163     TIPC_NLA_NODE_UNSPEC,
0164     TIPC_NLA_NODE_ADDR,     /* u32 */
0165     TIPC_NLA_NODE_UP,       /* flag */
0166     TIPC_NLA_NODE_ID,       /* data */
0167     TIPC_NLA_NODE_KEY,      /* data */
0168     TIPC_NLA_NODE_KEY_MASTER,   /* flag */
0169     TIPC_NLA_NODE_REKEYING,     /* u32 */
0170 
0171     __TIPC_NLA_NODE_MAX,
0172     TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
0173 };
0174 
0175 /* Net info */
0176 enum {
0177     TIPC_NLA_NET_UNSPEC,
0178     TIPC_NLA_NET_ID,        /* u32 */
0179     TIPC_NLA_NET_ADDR,      /* u32 */
0180     TIPC_NLA_NET_NODEID,        /* u64 */
0181     TIPC_NLA_NET_NODEID_W1,     /* u64 */
0182     TIPC_NLA_NET_ADDR_LEGACY,   /* flag */
0183 
0184     __TIPC_NLA_NET_MAX,
0185     TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
0186 };
0187 
0188 /* Name table info */
0189 enum {
0190     TIPC_NLA_NAME_TABLE_UNSPEC,
0191     TIPC_NLA_NAME_TABLE_PUBL,   /* nest */
0192 
0193     __TIPC_NLA_NAME_TABLE_MAX,
0194     TIPC_NLA_NAME_TABLE_MAX = __TIPC_NLA_NAME_TABLE_MAX - 1
0195 };
0196 
0197 /* Monitor info */
0198 enum {
0199     TIPC_NLA_MON_UNSPEC,
0200     TIPC_NLA_MON_ACTIVATION_THRESHOLD,  /* u32 */
0201     TIPC_NLA_MON_REF,           /* u32 */
0202     TIPC_NLA_MON_ACTIVE,            /* flag */
0203     TIPC_NLA_MON_BEARER_NAME,       /* string */
0204     TIPC_NLA_MON_PEERCNT,           /* u32 */
0205     TIPC_NLA_MON_LISTGEN,           /* u32 */
0206 
0207     __TIPC_NLA_MON_MAX,
0208     TIPC_NLA_MON_MAX = __TIPC_NLA_MON_MAX - 1
0209 };
0210 
0211 /* Publication info */
0212 enum {
0213     TIPC_NLA_PUBL_UNSPEC,
0214 
0215     TIPC_NLA_PUBL_TYPE,     /* u32 */
0216     TIPC_NLA_PUBL_LOWER,        /* u32 */
0217     TIPC_NLA_PUBL_UPPER,        /* u32 */
0218     TIPC_NLA_PUBL_SCOPE,        /* u32 */
0219     TIPC_NLA_PUBL_NODE,     /* u32 */
0220     TIPC_NLA_PUBL_REF,      /* u32 */
0221     TIPC_NLA_PUBL_KEY,      /* u32 */
0222 
0223     __TIPC_NLA_PUBL_MAX,
0224     TIPC_NLA_PUBL_MAX = __TIPC_NLA_PUBL_MAX - 1
0225 };
0226 
0227 /* Monitor peer info */
0228 enum {
0229     TIPC_NLA_MON_PEER_UNSPEC,
0230 
0231     TIPC_NLA_MON_PEER_ADDR,         /* u32 */
0232     TIPC_NLA_MON_PEER_DOMGEN,       /* u32 */
0233     TIPC_NLA_MON_PEER_APPLIED,      /* u32 */
0234     TIPC_NLA_MON_PEER_UPMAP,        /* u64 */
0235     TIPC_NLA_MON_PEER_MEMBERS,      /* tlv */
0236     TIPC_NLA_MON_PEER_UP,           /* flag */
0237     TIPC_NLA_MON_PEER_HEAD,         /* flag */
0238     TIPC_NLA_MON_PEER_LOCAL,        /* flag */
0239     TIPC_NLA_MON_PEER_PAD,          /* flag */
0240 
0241     __TIPC_NLA_MON_PEER_MAX,
0242     TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
0243 };
0244 
0245 /* Nest, socket group info */
0246 enum {
0247     TIPC_NLA_SOCK_GROUP_ID,         /* u32 */
0248     TIPC_NLA_SOCK_GROUP_OPEN,       /* flag */
0249     TIPC_NLA_SOCK_GROUP_NODE_SCOPE,     /* flag */
0250     TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE,  /* flag */
0251     TIPC_NLA_SOCK_GROUP_INSTANCE,       /* u32 */
0252     TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT,   /* u32 */
0253 
0254     __TIPC_NLA_SOCK_GROUP_MAX,
0255     TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1
0256 };
0257 
0258 /* Nest, connection info */
0259 enum {
0260     TIPC_NLA_CON_UNSPEC,
0261 
0262     TIPC_NLA_CON_FLAG,      /* flag */
0263     TIPC_NLA_CON_NODE,      /* u32 */
0264     TIPC_NLA_CON_SOCK,      /* u32 */
0265     TIPC_NLA_CON_TYPE,      /* u32 */
0266     TIPC_NLA_CON_INST,      /* u32 */
0267 
0268     __TIPC_NLA_CON_MAX,
0269     TIPC_NLA_CON_MAX = __TIPC_NLA_CON_MAX - 1
0270 };
0271 
0272 /* Nest, socket statistics info */
0273 enum {
0274     TIPC_NLA_SOCK_STAT_RCVQ,    /* u32 */
0275     TIPC_NLA_SOCK_STAT_SENDQ,   /* u32 */
0276     TIPC_NLA_SOCK_STAT_LINK_CONG,   /* flag */
0277     TIPC_NLA_SOCK_STAT_CONN_CONG,   /* flag */
0278     TIPC_NLA_SOCK_STAT_DROP,    /* u32 */
0279 
0280     __TIPC_NLA_SOCK_STAT_MAX,
0281     TIPC_NLA_SOCK_STAT_MAX = __TIPC_NLA_SOCK_STAT_MAX - 1
0282 };
0283 
0284 /* Nest, link propreties. Valid for link, media and bearer */
0285 enum {
0286     TIPC_NLA_PROP_UNSPEC,
0287 
0288     TIPC_NLA_PROP_PRIO,     /* u32 */
0289     TIPC_NLA_PROP_TOL,      /* u32 */
0290     TIPC_NLA_PROP_WIN,      /* u32 */
0291     TIPC_NLA_PROP_MTU,      /* u32 */
0292     TIPC_NLA_PROP_BROADCAST,    /* u32 */
0293     TIPC_NLA_PROP_BROADCAST_RATIO,  /* u32 */
0294 
0295     __TIPC_NLA_PROP_MAX,
0296     TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1
0297 };
0298 
0299 /* Nest, statistics info */
0300 enum {
0301     TIPC_NLA_STATS_UNSPEC,
0302 
0303     TIPC_NLA_STATS_RX_INFO,     /* u32 */
0304     TIPC_NLA_STATS_RX_FRAGMENTS,    /* u32 */
0305     TIPC_NLA_STATS_RX_FRAGMENTED,   /* u32 */
0306     TIPC_NLA_STATS_RX_BUNDLES,  /* u32 */
0307     TIPC_NLA_STATS_RX_BUNDLED,  /* u32 */
0308     TIPC_NLA_STATS_TX_INFO,     /* u32 */
0309     TIPC_NLA_STATS_TX_FRAGMENTS,    /* u32 */
0310     TIPC_NLA_STATS_TX_FRAGMENTED,   /* u32 */
0311     TIPC_NLA_STATS_TX_BUNDLES,  /* u32 */
0312     TIPC_NLA_STATS_TX_BUNDLED,  /* u32 */
0313     TIPC_NLA_STATS_MSG_PROF_TOT,    /* u32 */
0314     TIPC_NLA_STATS_MSG_LEN_CNT, /* u32 */
0315     TIPC_NLA_STATS_MSG_LEN_TOT, /* u32 */
0316     TIPC_NLA_STATS_MSG_LEN_P0,  /* u32 */
0317     TIPC_NLA_STATS_MSG_LEN_P1,  /* u32 */
0318     TIPC_NLA_STATS_MSG_LEN_P2,  /* u32 */
0319     TIPC_NLA_STATS_MSG_LEN_P3,  /* u32 */
0320     TIPC_NLA_STATS_MSG_LEN_P4,  /* u32 */
0321     TIPC_NLA_STATS_MSG_LEN_P5,  /* u32 */
0322     TIPC_NLA_STATS_MSG_LEN_P6,  /* u32 */
0323     TIPC_NLA_STATS_RX_STATES,   /* u32 */
0324     TIPC_NLA_STATS_RX_PROBES,   /* u32 */
0325     TIPC_NLA_STATS_RX_NACKS,    /* u32 */
0326     TIPC_NLA_STATS_RX_DEFERRED, /* u32 */
0327     TIPC_NLA_STATS_TX_STATES,   /* u32 */
0328     TIPC_NLA_STATS_TX_PROBES,   /* u32 */
0329     TIPC_NLA_STATS_TX_NACKS,    /* u32 */
0330     TIPC_NLA_STATS_TX_ACKS,     /* u32 */
0331     TIPC_NLA_STATS_RETRANSMITTED,   /* u32 */
0332     TIPC_NLA_STATS_DUPLICATES,  /* u32 */
0333     TIPC_NLA_STATS_LINK_CONGS,  /* u32 */
0334     TIPC_NLA_STATS_MAX_QUEUE,   /* u32 */
0335     TIPC_NLA_STATS_AVG_QUEUE,   /* u32 */
0336 
0337     __TIPC_NLA_STATS_MAX,
0338     TIPC_NLA_STATS_MAX = __TIPC_NLA_STATS_MAX - 1
0339 };
0340 
0341 #endif