1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _LINUX_TIPC_CONFIG_H_
20#define _LINUX_TIPC_CONFIG_H_
21#include <linux/types.h>
22#include <linux/string.h>
23#include <linux/tipc.h>
24#include <asm/byteorder.h>
25#include <arpa/inet.h>
26#define TIPC_CMD_NOOP 0x0000
27#define TIPC_CMD_GET_NODES 0x0001
28#define TIPC_CMD_GET_MEDIA_NAMES 0x0002
29#define TIPC_CMD_GET_BEARER_NAMES 0x0003
30#define TIPC_CMD_GET_LINKS 0x0004
31#define TIPC_CMD_SHOW_NAME_TABLE 0x0005
32#define TIPC_CMD_SHOW_PORTS 0x0006
33#define TIPC_CMD_SHOW_LINK_STATS 0x000B
34#define TIPC_CMD_SHOW_STATS 0x000F
35#define TIPC_CMD_GET_REMOTE_MNG 0x4003
36#define TIPC_CMD_GET_MAX_PORTS 0x4004
37#define TIPC_CMD_GET_MAX_PUBL 0x4005
38#define TIPC_CMD_GET_MAX_SUBSCR 0x4006
39#define TIPC_CMD_GET_MAX_ZONES 0x4007
40#define TIPC_CMD_GET_MAX_CLUSTERS 0x4008
41#define TIPC_CMD_GET_MAX_NODES 0x4009
42#define TIPC_CMD_GET_MAX_SLAVES 0x400A
43#define TIPC_CMD_GET_NETID 0x400B
44#define TIPC_CMD_ENABLE_BEARER 0x4101
45#define TIPC_CMD_DISABLE_BEARER 0x4102
46#define TIPC_CMD_SET_LINK_TOL 0x4107
47#define TIPC_CMD_SET_LINK_PRI 0x4108
48#define TIPC_CMD_SET_LINK_WINDOW 0x4109
49#define TIPC_CMD_SET_LOG_SIZE 0x410A
50#define TIPC_CMD_DUMP_LOG 0x410B
51#define TIPC_CMD_RESET_LINK_STATS 0x410C
52#define TIPC_CMD_SET_NODE_ADDR 0x8001
53#define TIPC_CMD_SET_REMOTE_MNG 0x8003
54#define TIPC_CMD_SET_MAX_PORTS 0x8004
55#define TIPC_CMD_SET_MAX_PUBL 0x8005
56#define TIPC_CMD_SET_MAX_SUBSCR 0x8006
57#define TIPC_CMD_SET_MAX_ZONES 0x8007
58#define TIPC_CMD_SET_MAX_CLUSTERS 0x8008
59#define TIPC_CMD_SET_MAX_NODES 0x8009
60#define TIPC_CMD_SET_MAX_SLAVES 0x800A
61#define TIPC_CMD_SET_NETID 0x800B
62#define TIPC_CMD_NOT_NET_ADMIN 0xC001
63#define TIPC_TLV_NONE 0
64#define TIPC_TLV_VOID 1
65#define TIPC_TLV_UNSIGNED 2
66#define TIPC_TLV_STRING 3
67#define TIPC_TLV_LARGE_STRING 4
68#define TIPC_TLV_ULTRA_STRING 5
69#define TIPC_TLV_ERROR_STRING 16
70#define TIPC_TLV_NET_ADDR 17
71#define TIPC_TLV_MEDIA_NAME 18
72#define TIPC_TLV_BEARER_NAME 19
73#define TIPC_TLV_LINK_NAME 20
74#define TIPC_TLV_NODE_INFO 21
75#define TIPC_TLV_LINK_INFO 22
76#define TIPC_TLV_BEARER_CONFIG 23
77#define TIPC_TLV_LINK_CONFIG 24
78#define TIPC_TLV_NAME_TBL_QUERY 25
79#define TIPC_TLV_PORT_REF 26
80#define TIPC_MIN_LINK_PRI 0
81#define TIPC_DEF_LINK_PRI 10
82#define TIPC_MAX_LINK_PRI 31
83#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1)
84#define TIPC_MIN_LINK_TOL 50
85#define TIPC_DEF_LINK_TOL 1500
86#define TIPC_MAX_LINK_TOL 30000
87#if TIPC_MIN_LINK_TOL < 16
88#error "TIPC_MIN_LINK_TOL is too small (abort limit may be NaN)"
89#endif
90#define TIPC_MIN_LINK_WIN 16
91#define TIPC_DEF_LINK_WIN 50
92#define TIPC_MAX_LINK_WIN 8191
93struct tipc_node_info {
94  __be32 addr;
95  __be32 up;
96};
97struct tipc_link_info {
98  __be32 dest;
99  __be32 up;
100  char str[TIPC_MAX_LINK_NAME];
101};
102struct tipc_bearer_config {
103  __be32 priority;
104  __be32 disc_domain;
105  char name[TIPC_MAX_BEARER_NAME];
106};
107struct tipc_link_config {
108  __be32 value;
109  char name[TIPC_MAX_LINK_NAME];
110};
111#define TIPC_NTQ_ALLTYPES 0x80000000
112struct tipc_name_table_query {
113  __be32 depth;
114  __be32 type;
115  __be32 lowbound;
116  __be32 upbound;
117};
118#define TIPC_CFG_TLV_ERROR "\x80"
119#define TIPC_CFG_NOT_NET_ADMIN "\x81"
120#define TIPC_CFG_NOT_ZONE_MSTR "\x82"
121#define TIPC_CFG_NO_REMOTE "\x83"
122#define TIPC_CFG_NOT_SUPPORTED "\x84"
123#define TIPC_CFG_INVALID_VALUE "\x85"
124struct tlv_desc {
125  __be16 tlv_len;
126  __be16 tlv_type;
127};
128#define TLV_ALIGNTO 4
129#define TLV_ALIGN(datalen) (((datalen) + (TLV_ALIGNTO - 1)) & ~(TLV_ALIGNTO - 1))
130#define TLV_LENGTH(datalen) (sizeof(struct tlv_desc) + (datalen))
131#define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen)))
132#define TLV_DATA(tlv) ((void *) ((char *) (tlv) + TLV_LENGTH(0)))
133struct tlv_list_desc {
134  struct tlv_desc * tlv_ptr;
135  __u32 tlv_space;
136};
137#define TIPC_GENL_NAME "TIPC"
138#define TIPC_GENL_VERSION 0x1
139#define TIPC_GENL_CMD 0x1
140struct tipc_genlmsghdr {
141  __u32 dest;
142  __u16 cmd;
143  __u16 reserved;
144};
145#define TIPC_GENL_HDRLEN NLMSG_ALIGN(sizeof(struct tipc_genlmsghdr))
146struct tipc_cfg_msg_hdr {
147  __be32 tcm_len;
148  __be16 tcm_type;
149  __be16 tcm_flags;
150  char tcm_reserved[8];
151};
152#define TCM_F_REQUEST 0x1
153#define TCM_F_MORE 0x2
154#define TCM_ALIGN(datalen) (((datalen) + 3) & ~3)
155#define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen)
156#define TCM_SPACE(datalen) (TCM_ALIGN(TCM_LENGTH(datalen)))
157#define TCM_DATA(tcm_hdr) ((void *) ((char *) (tcm_hdr) + TCM_LENGTH(0)))
158#endif
159