xref: /aosp_15_r20/prebuilts/build-tools/sysroots/aarch64-unknown-linux-musl/include/linux/mptcp.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_MPTCP_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_MPTCP_H
9*cda5da8dSAndroid Build Coastguard Worker #include <netinet/in.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <sys/socket.h>
11*cda5da8dSAndroid Build Coastguard Worker #include <linux/const.h>
12*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
13*cda5da8dSAndroid Build Coastguard Worker #include <linux/in.h>
14*cda5da8dSAndroid Build Coastguard Worker #include <linux/in6.h>
15*cda5da8dSAndroid Build Coastguard Worker #include <linux/socket.h>
16*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
17*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
18*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
19*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_JOIN_LOC _BITUL(3)
20*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_BKUP_REM _BITUL(4)
21*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_BKUP_LOC _BITUL(5)
22*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6)
23*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7)
24*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8)
25*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds"
26*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_EV_GRP_NAME "mptcp_pm_events"
27*cda5da8dSAndroid Build Coastguard Worker #include <linux/mptcp_pm.h>
28*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_INFO_FLAG_FALLBACK _BITUL(0)
29*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1)
30*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
31*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
32*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
33*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
34*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_PM_ADDR_FLAG_IMPLICIT (1 << 4)
35*cda5da8dSAndroid Build Coastguard Worker struct mptcp_info {
36*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_subflows;
37*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_add_addr_signal;
38*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_add_addr_accepted;
39*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_subflows_max;
40*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_add_addr_signal_max;
41*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_add_addr_accepted_max;
42*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_flags;
43*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_token;
44*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_write_seq;
45*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_snd_una;
46*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_rcv_nxt;
47*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_local_addr_used;
48*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_local_addr_max;
49*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_csum_enabled;
50*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_retransmits;
51*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_bytes_retrans;
52*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_bytes_sent;
53*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_bytes_received;
54*cda5da8dSAndroid Build Coastguard Worker   __u64 mptcpi_bytes_acked;
55*cda5da8dSAndroid Build Coastguard Worker   __u8 mptcpi_subflows_total;
56*cda5da8dSAndroid Build Coastguard Worker   __u8 reserved[3];
57*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_last_data_sent;
58*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_last_data_recv;
59*cda5da8dSAndroid Build Coastguard Worker   __u32 mptcpi_last_ack_recv;
60*cda5da8dSAndroid Build Coastguard Worker };
61*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EUNSPEC 0
62*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EMPTCP 1
63*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_ERESOURCE 2
64*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EPROHIBIT 3
65*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EWQ2BIG 4
66*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EBADPERF 5
67*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_RST_EMIDDLEBOX 6
68*cda5da8dSAndroid Build Coastguard Worker struct mptcp_subflow_data {
69*cda5da8dSAndroid Build Coastguard Worker   __u32 size_subflow_data;
70*cda5da8dSAndroid Build Coastguard Worker   __u32 num_subflows;
71*cda5da8dSAndroid Build Coastguard Worker   __u32 size_kernel;
72*cda5da8dSAndroid Build Coastguard Worker   __u32 size_user;
73*cda5da8dSAndroid Build Coastguard Worker } __attribute__((aligned(8)));
74*cda5da8dSAndroid Build Coastguard Worker struct mptcp_subflow_addrs {
75*cda5da8dSAndroid Build Coastguard Worker   union {
76*cda5da8dSAndroid Build Coastguard Worker     __kernel_sa_family_t sa_family;
77*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr sa_local;
78*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_in sin_local;
79*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_in6 sin6_local;
80*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_storage ss_local;
81*cda5da8dSAndroid Build Coastguard Worker   };
82*cda5da8dSAndroid Build Coastguard Worker   union {
83*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr sa_remote;
84*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_in sin_remote;
85*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_in6 sin6_remote;
86*cda5da8dSAndroid Build Coastguard Worker     struct sockaddr_storage ss_remote;
87*cda5da8dSAndroid Build Coastguard Worker   };
88*cda5da8dSAndroid Build Coastguard Worker };
89*cda5da8dSAndroid Build Coastguard Worker struct mptcp_subflow_info {
90*cda5da8dSAndroid Build Coastguard Worker   __u32 id;
91*cda5da8dSAndroid Build Coastguard Worker   struct mptcp_subflow_addrs addrs;
92*cda5da8dSAndroid Build Coastguard Worker };
93*cda5da8dSAndroid Build Coastguard Worker struct mptcp_full_info {
94*cda5da8dSAndroid Build Coastguard Worker   __u32 size_tcpinfo_kernel;
95*cda5da8dSAndroid Build Coastguard Worker   __u32 size_tcpinfo_user;
96*cda5da8dSAndroid Build Coastguard Worker   __u32 size_sfinfo_kernel;
97*cda5da8dSAndroid Build Coastguard Worker   __u32 size_sfinfo_user;
98*cda5da8dSAndroid Build Coastguard Worker   __u32 num_subflows;
99*cda5da8dSAndroid Build Coastguard Worker   __u32 size_arrays_user;
100*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 subflow_info;
101*cda5da8dSAndroid Build Coastguard Worker   __aligned_u64 tcp_info;
102*cda5da8dSAndroid Build Coastguard Worker   struct mptcp_info mptcp_info;
103*cda5da8dSAndroid Build Coastguard Worker };
104*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_INFO 1
105*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_TCPINFO 2
106*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_SUBFLOW_ADDRS 3
107*cda5da8dSAndroid Build Coastguard Worker #define MPTCP_FULL_INFO 4
108*cda5da8dSAndroid Build Coastguard Worker #endif
109