xref: /aosp_15_r20/prebuilts/build-tools/sysroots/aarch64-unknown-linux-musl/include/linux/mroute6.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI__LINUX_MROUTE6_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI__LINUX_MROUTE6_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/const.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
11*cda5da8dSAndroid Build Coastguard Worker #include <linux/sockios.h>
12*cda5da8dSAndroid Build Coastguard Worker #include <linux/in6.h>
13*cda5da8dSAndroid Build Coastguard Worker #define MRT6_BASE 200
14*cda5da8dSAndroid Build Coastguard Worker #define MRT6_INIT (MRT6_BASE)
15*cda5da8dSAndroid Build Coastguard Worker #define MRT6_DONE (MRT6_BASE + 1)
16*cda5da8dSAndroid Build Coastguard Worker #define MRT6_ADD_MIF (MRT6_BASE + 2)
17*cda5da8dSAndroid Build Coastguard Worker #define MRT6_DEL_MIF (MRT6_BASE + 3)
18*cda5da8dSAndroid Build Coastguard Worker #define MRT6_ADD_MFC (MRT6_BASE + 4)
19*cda5da8dSAndroid Build Coastguard Worker #define MRT6_DEL_MFC (MRT6_BASE + 5)
20*cda5da8dSAndroid Build Coastguard Worker #define MRT6_VERSION (MRT6_BASE + 6)
21*cda5da8dSAndroid Build Coastguard Worker #define MRT6_ASSERT (MRT6_BASE + 7)
22*cda5da8dSAndroid Build Coastguard Worker #define MRT6_PIM (MRT6_BASE + 8)
23*cda5da8dSAndroid Build Coastguard Worker #define MRT6_TABLE (MRT6_BASE + 9)
24*cda5da8dSAndroid Build Coastguard Worker #define MRT6_ADD_MFC_PROXY (MRT6_BASE + 10)
25*cda5da8dSAndroid Build Coastguard Worker #define MRT6_DEL_MFC_PROXY (MRT6_BASE + 11)
26*cda5da8dSAndroid Build Coastguard Worker #define MRT6_FLUSH (MRT6_BASE + 12)
27*cda5da8dSAndroid Build Coastguard Worker #define MRT6_MAX (MRT6_BASE + 12)
28*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE
29*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE + 1)
30*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETRPF (SIOCPROTOPRIVATE + 2)
31*cda5da8dSAndroid Build Coastguard Worker #define MRT6_FLUSH_MFC 1
32*cda5da8dSAndroid Build Coastguard Worker #define MRT6_FLUSH_MFC_STATIC 2
33*cda5da8dSAndroid Build Coastguard Worker #define MRT6_FLUSH_MIFS 4
34*cda5da8dSAndroid Build Coastguard Worker #define MRT6_FLUSH_MIFS_STATIC 8
35*cda5da8dSAndroid Build Coastguard Worker #define MAXMIFS 32
36*cda5da8dSAndroid Build Coastguard Worker typedef unsigned long mifbitmap_t;
37*cda5da8dSAndroid Build Coastguard Worker typedef unsigned short mifi_t;
38*cda5da8dSAndroid Build Coastguard Worker #define ALL_MIFS ((mifi_t) (- 1))
39*cda5da8dSAndroid Build Coastguard Worker #ifndef IF_SETSIZE
40*cda5da8dSAndroid Build Coastguard Worker #define IF_SETSIZE 256
41*cda5da8dSAndroid Build Coastguard Worker #endif
42*cda5da8dSAndroid Build Coastguard Worker typedef __u32 if_mask;
43*cda5da8dSAndroid Build Coastguard Worker #define NIFBITS (sizeof(if_mask) * 8)
44*cda5da8dSAndroid Build Coastguard Worker typedef struct if_set {
45*cda5da8dSAndroid Build Coastguard Worker   if_mask ifs_bits[__KERNEL_DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
46*cda5da8dSAndroid Build Coastguard Worker } if_set;
47*cda5da8dSAndroid Build Coastguard Worker #define IF_SET(n,p) ((p)->ifs_bits[(n) / NIFBITS] |= (1 << ((n) % NIFBITS)))
48*cda5da8dSAndroid Build Coastguard Worker #define IF_CLR(n,p) ((p)->ifs_bits[(n) / NIFBITS] &= ~(1 << ((n) % NIFBITS)))
49*cda5da8dSAndroid Build Coastguard Worker #define IF_ISSET(n,p) ((p)->ifs_bits[(n) / NIFBITS] & (1 << ((n) % NIFBITS)))
50*cda5da8dSAndroid Build Coastguard Worker #define IF_COPY(f,t) bcopy(f, t, sizeof(* (f)))
51*cda5da8dSAndroid Build Coastguard Worker #define IF_ZERO(p) bzero(p, sizeof(* (p)))
52*cda5da8dSAndroid Build Coastguard Worker struct mif6ctl {
53*cda5da8dSAndroid Build Coastguard Worker   mifi_t mif6c_mifi;
54*cda5da8dSAndroid Build Coastguard Worker   unsigned char mif6c_flags;
55*cda5da8dSAndroid Build Coastguard Worker   unsigned char vifc_threshold;
56*cda5da8dSAndroid Build Coastguard Worker   __u16 mif6c_pifi;
57*cda5da8dSAndroid Build Coastguard Worker   unsigned int vifc_rate_limit;
58*cda5da8dSAndroid Build Coastguard Worker };
59*cda5da8dSAndroid Build Coastguard Worker #define MIFF_REGISTER 0x1
60*cda5da8dSAndroid Build Coastguard Worker struct mf6cctl {
61*cda5da8dSAndroid Build Coastguard Worker   struct sockaddr_in6 mf6cc_origin;
62*cda5da8dSAndroid Build Coastguard Worker   struct sockaddr_in6 mf6cc_mcastgrp;
63*cda5da8dSAndroid Build Coastguard Worker   mifi_t mf6cc_parent;
64*cda5da8dSAndroid Build Coastguard Worker   struct if_set mf6cc_ifset;
65*cda5da8dSAndroid Build Coastguard Worker };
66*cda5da8dSAndroid Build Coastguard Worker struct sioc_sg_req6 {
67*cda5da8dSAndroid Build Coastguard Worker   struct sockaddr_in6 src;
68*cda5da8dSAndroid Build Coastguard Worker   struct sockaddr_in6 grp;
69*cda5da8dSAndroid Build Coastguard Worker   unsigned long pktcnt;
70*cda5da8dSAndroid Build Coastguard Worker   unsigned long bytecnt;
71*cda5da8dSAndroid Build Coastguard Worker   unsigned long wrong_if;
72*cda5da8dSAndroid Build Coastguard Worker };
73*cda5da8dSAndroid Build Coastguard Worker struct sioc_mif_req6 {
74*cda5da8dSAndroid Build Coastguard Worker   mifi_t mifi;
75*cda5da8dSAndroid Build Coastguard Worker   unsigned long icount;
76*cda5da8dSAndroid Build Coastguard Worker   unsigned long ocount;
77*cda5da8dSAndroid Build Coastguard Worker   unsigned long ibytes;
78*cda5da8dSAndroid Build Coastguard Worker   unsigned long obytes;
79*cda5da8dSAndroid Build Coastguard Worker };
80*cda5da8dSAndroid Build Coastguard Worker struct mrt6msg {
81*cda5da8dSAndroid Build Coastguard Worker #define MRT6MSG_NOCACHE 1
82*cda5da8dSAndroid Build Coastguard Worker #define MRT6MSG_WRONGMIF 2
83*cda5da8dSAndroid Build Coastguard Worker #define MRT6MSG_WHOLEPKT 3
84*cda5da8dSAndroid Build Coastguard Worker #define MRT6MSG_WRMIFWHOLE 4
85*cda5da8dSAndroid Build Coastguard Worker   __u8 im6_mbz;
86*cda5da8dSAndroid Build Coastguard Worker   __u8 im6_msgtype;
87*cda5da8dSAndroid Build Coastguard Worker   __u16 im6_mif;
88*cda5da8dSAndroid Build Coastguard Worker   __u32 im6_pad;
89*cda5da8dSAndroid Build Coastguard Worker   struct in6_addr im6_src, im6_dst;
90*cda5da8dSAndroid Build Coastguard Worker };
91*cda5da8dSAndroid Build Coastguard Worker enum {
92*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_UNSPEC,
93*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_MSGTYPE,
94*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_MIF_ID,
95*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_SRC_ADDR,
96*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_DST_ADDR,
97*cda5da8dSAndroid Build Coastguard Worker   IP6MRA_CREPORT_PKT,
98*cda5da8dSAndroid Build Coastguard Worker   __IP6MRA_CREPORT_MAX
99*cda5da8dSAndroid Build Coastguard Worker };
100*cda5da8dSAndroid Build Coastguard Worker #define IP6MRA_CREPORT_MAX (__IP6MRA_CREPORT_MAX - 1)
101*cda5da8dSAndroid Build Coastguard Worker #endif
102