blob: 2313af51c5f4a95cdd2a998cdd0a8c6e3ad7d607 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _LINUX_TIPC_H_
8#define _LINUX_TIPC_H_
9#include <linux/types.h>
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070010#include <linux/sockios.h>
Christopher Ferris76a1d452018-06-27 14:12:29 -070011struct tipc_socket_addr {
Tao Baod7db5942015-01-28 10:07:51 -080012 __u32 ref;
13 __u32 node;
Ben Cheng655a7c02013-10-16 16:09:24 -070014};
Christopher Ferris76a1d452018-06-27 14:12:29 -070015struct tipc_service_addr {
Tao Baod7db5942015-01-28 10:07:51 -080016 __u32 type;
17 __u32 instance;
Ben Cheng655a7c02013-10-16 16:09:24 -070018};
Christopher Ferris76a1d452018-06-27 14:12:29 -070019struct tipc_service_range {
Tao Baod7db5942015-01-28 10:07:51 -080020 __u32 type;
21 __u32 lower;
22 __u32 upper;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070023};
Christopher Ferris76a1d452018-06-27 14:12:29 -070024#define TIPC_NODE_STATE 0
Ben Cheng655a7c02013-10-16 16:09:24 -070025#define TIPC_TOP_SRV 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080026#define TIPC_LINK_STATE 2
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define TIPC_RESERVED_TYPES 64
Christopher Ferris76a1d452018-06-27 14:12:29 -070028enum tipc_scope {
29 TIPC_CLUSTER_SCOPE = 2,
30 TIPC_NODE_SCOPE = 3
31};
Ben Cheng655a7c02013-10-16 16:09:24 -070032#define TIPC_MAX_USER_MSG_SIZE 66000U
33#define TIPC_LOW_IMPORTANCE 0
Ben Cheng655a7c02013-10-16 16:09:24 -070034#define TIPC_MEDIUM_IMPORTANCE 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080035#define TIPC_HIGH_IMPORTANCE 2
Ben Cheng655a7c02013-10-16 16:09:24 -070036#define TIPC_CRITICAL_IMPORTANCE 3
37#define TIPC_OK 0
Ben Cheng655a7c02013-10-16 16:09:24 -070038#define TIPC_ERR_NO_NAME 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080039#define TIPC_ERR_NO_PORT 2
Ben Cheng655a7c02013-10-16 16:09:24 -070040#define TIPC_ERR_NO_NODE 3
41#define TIPC_ERR_OVERLOAD 4
Ben Cheng655a7c02013-10-16 16:09:24 -070042#define TIPC_CONN_SHUTDOWN 5
Christopher Ferris49f525c2016-12-12 14:55:36 -080043#define TIPC_SUB_PORTS 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070044#define TIPC_SUB_SERVICE 0x02
45#define TIPC_SUB_CANCEL 0x04
Ben Cheng655a7c02013-10-16 16:09:24 -070046#define TIPC_WAIT_FOREVER (~0)
Christopher Ferris49f525c2016-12-12 14:55:36 -080047struct tipc_subscr {
Christopher Ferris76a1d452018-06-27 14:12:29 -070048 struct tipc_service_range seq;
Tao Baod7db5942015-01-28 10:07:51 -080049 __u32 timeout;
50 __u32 filter;
Christopher Ferris49f525c2016-12-12 14:55:36 -080051 char usr_handle[8];
Ben Cheng655a7c02013-10-16 16:09:24 -070052};
53#define TIPC_PUBLISHED 1
Ben Cheng655a7c02013-10-16 16:09:24 -070054#define TIPC_WITHDRAWN 2
Christopher Ferris49f525c2016-12-12 14:55:36 -080055#define TIPC_SUBSCR_TIMEOUT 3
Ben Cheng655a7c02013-10-16 16:09:24 -070056struct tipc_event {
Tao Baod7db5942015-01-28 10:07:51 -080057 __u32 event;
58 __u32 found_lower;
Christopher Ferris49f525c2016-12-12 14:55:36 -080059 __u32 found_upper;
Christopher Ferris76a1d452018-06-27 14:12:29 -070060 struct tipc_socket_addr port;
Tao Baod7db5942015-01-28 10:07:51 -080061 struct tipc_subscr s;
Ben Cheng655a7c02013-10-16 16:09:24 -070062};
Christopher Ferris49f525c2016-12-12 14:55:36 -080063#ifndef AF_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070064#define AF_TIPC 30
65#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070066#ifndef PF_TIPC
Christopher Ferris49f525c2016-12-12 14:55:36 -080067#define PF_TIPC AF_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070068#endif
69#ifndef SOL_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070070#define SOL_TIPC 271
Christopher Ferris49f525c2016-12-12 14:55:36 -080071#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070072#define TIPC_ADDR_MCAST 1
Christopher Ferris76a1d452018-06-27 14:12:29 -070073#define TIPC_SERVICE_RANGE 1
74#define TIPC_SERVICE_ADDR 2
75#define TIPC_SOCKET_ADDR 3
Ben Cheng655a7c02013-10-16 16:09:24 -070076struct sockaddr_tipc {
Tao Baod7db5942015-01-28 10:07:51 -080077 unsigned short family;
78 unsigned char addrtype;
Christopher Ferris49f525c2016-12-12 14:55:36 -080079 signed char scope;
Tao Baod7db5942015-01-28 10:07:51 -080080 union {
Christopher Ferris76a1d452018-06-27 14:12:29 -070081 struct tipc_socket_addr id;
82 struct tipc_service_range nameseq;
Christopher Ferris49f525c2016-12-12 14:55:36 -080083 struct {
Christopher Ferris76a1d452018-06-27 14:12:29 -070084 struct tipc_service_addr name;
Tao Baod7db5942015-01-28 10:07:51 -080085 __u32 domain;
86 } name;
Christopher Ferris49f525c2016-12-12 14:55:36 -080087 } addr;
Ben Cheng655a7c02013-10-16 16:09:24 -070088};
89#define TIPC_ERRINFO 1
Ben Cheng655a7c02013-10-16 16:09:24 -070090#define TIPC_RETDATA 2
Christopher Ferris49f525c2016-12-12 14:55:36 -080091#define TIPC_DESTNAME 3
Ben Cheng655a7c02013-10-16 16:09:24 -070092#define TIPC_IMPORTANCE 127
93#define TIPC_SRC_DROPPABLE 128
Ben Cheng655a7c02013-10-16 16:09:24 -070094#define TIPC_DEST_DROPPABLE 129
Christopher Ferris49f525c2016-12-12 14:55:36 -080095#define TIPC_CONN_TIMEOUT 130
Ben Cheng655a7c02013-10-16 16:09:24 -070096#define TIPC_NODE_RECVQ_DEPTH 131
97#define TIPC_SOCK_RECVQ_DEPTH 132
Christopher Ferris525ce912017-07-26 13:12:53 -070098#define TIPC_MCAST_BROADCAST 133
99#define TIPC_MCAST_REPLICAST 134
Christopher Ferris934ec942018-01-31 15:29:16 -0800100#define TIPC_GROUP_JOIN 135
101#define TIPC_GROUP_LEAVE 136
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700102#define TIPC_SOCK_RECVQ_USED 137
Christopher Ferrisd32ca142020-02-04 16:16:51 -0800103#define TIPC_NODELAY 138
Christopher Ferris934ec942018-01-31 15:29:16 -0800104#define TIPC_GROUP_LOOPBACK 0x1
105#define TIPC_GROUP_MEMBER_EVTS 0x2
106struct tipc_group_req {
107 __u32 type;
108 __u32 instance;
109 __u32 scope;
110 __u32 flags;
111};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700112#define TIPC_NODEID_LEN 16
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700113#define TIPC_MAX_MEDIA_NAME 16
Christopher Ferris49f525c2016-12-12 14:55:36 -0800114#define TIPC_MAX_IF_NAME 16
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700115#define TIPC_MAX_BEARER_NAME 32
Christopher Ferris76a1d452018-06-27 14:12:29 -0700116#define TIPC_MAX_LINK_NAME 68
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700117#define SIOCGETLINKNAME SIOCPROTOPRIVATE
Christopher Ferris9ce28842018-10-25 12:11:39 -0700118#define SIOCGETNODEID (SIOCPROTOPRIVATE + 1)
Christopher Ferris49f525c2016-12-12 14:55:36 -0800119struct tipc_sioc_ln_req {
Tao Baod7db5942015-01-28 10:07:51 -0800120 __u32 peer;
121 __u32 bearer_id;
122 char linkname[TIPC_MAX_LINK_NAME];
Christopher Ferris49f525c2016-12-12 14:55:36 -0800123};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700124struct tipc_sioc_nodeid_req {
125 __u32 peer;
126 char node_id[TIPC_NODEID_LEN];
127};
Christopher Ferrisd32ca142020-02-04 16:16:51 -0800128#define TIPC_AEAD_ALG_NAME (32)
129struct tipc_aead_key {
130 char alg_name[TIPC_AEAD_ALG_NAME];
131 unsigned int keylen;
132 char key[];
133};
134#define TIPC_AEAD_KEYLEN_MIN (16 + 4)
135#define TIPC_AEAD_KEYLEN_MAX (32 + 4)
136#define TIPC_AEAD_KEY_SIZE_MAX (sizeof(struct tipc_aead_key) + TIPC_AEAD_KEYLEN_MAX)
Christopher Ferris32ff3f82020-12-14 13:10:04 -0800137#define TIPC_REKEYING_NOW (~0U)
Christopher Ferris76a1d452018-06-27 14:12:29 -0700138#define TIPC_CFG_SRV 0
139#define TIPC_ZONE_SCOPE 1
140#define TIPC_ADDR_NAMESEQ 1
141#define TIPC_ADDR_NAME 2
142#define TIPC_ADDR_ID 3
143#define TIPC_NODE_BITS 12
144#define TIPC_CLUSTER_BITS 12
145#define TIPC_ZONE_BITS 8
146#define TIPC_NODE_OFFSET 0
147#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
148#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
149#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
150#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
151#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
152#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
153#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
154#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
155#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
156#define tipc_portid tipc_socket_addr
157#define tipc_name tipc_service_addr
158#define tipc_name_seq tipc_service_range
Ben Cheng655a7c02013-10-16 16:09:24 -0700159#endif