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 _UAPI_MPTCP_H
20 #define _UAPI_MPTCP_H
21 #include <linux/const.h>
22 #include <linux/types.h>
23 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
24 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
25 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
26 #define MPTCP_SUBFLOW_FLAG_JOIN_LOC _BITUL(3)
27 #define MPTCP_SUBFLOW_FLAG_BKUP_REM _BITUL(4)
28 #define MPTCP_SUBFLOW_FLAG_BKUP_LOC _BITUL(5)
29 #define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6)
30 #define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7)
31 #define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8)
32 enum {
33   MPTCP_SUBFLOW_ATTR_UNSPEC,
34   MPTCP_SUBFLOW_ATTR_TOKEN_REM,
35   MPTCP_SUBFLOW_ATTR_TOKEN_LOC,
36   MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ,
37   MPTCP_SUBFLOW_ATTR_MAP_SEQ,
38   MPTCP_SUBFLOW_ATTR_MAP_SFSEQ,
39   MPTCP_SUBFLOW_ATTR_SSN_OFFSET,
40   MPTCP_SUBFLOW_ATTR_MAP_DATALEN,
41   MPTCP_SUBFLOW_ATTR_FLAGS,
42   MPTCP_SUBFLOW_ATTR_ID_REM,
43   MPTCP_SUBFLOW_ATTR_ID_LOC,
44   MPTCP_SUBFLOW_ATTR_PAD,
45   __MPTCP_SUBFLOW_ATTR_MAX
46 };
47 #define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1)
48 #define MPTCP_PM_NAME "mptcp_pm"
49 #define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds"
50 #define MPTCP_PM_VER 0x1
51 enum {
52   MPTCP_PM_ATTR_UNSPEC,
53   MPTCP_PM_ATTR_ADDR,
54   MPTCP_PM_ATTR_RCV_ADD_ADDRS,
55   MPTCP_PM_ATTR_SUBFLOWS,
56   __MPTCP_PM_ATTR_MAX
57 };
58 #define MPTCP_PM_ATTR_MAX (__MPTCP_PM_ATTR_MAX - 1)
59 enum {
60   MPTCP_PM_ADDR_ATTR_UNSPEC,
61   MPTCP_PM_ADDR_ATTR_FAMILY,
62   MPTCP_PM_ADDR_ATTR_ID,
63   MPTCP_PM_ADDR_ATTR_ADDR4,
64   MPTCP_PM_ADDR_ATTR_ADDR6,
65   MPTCP_PM_ADDR_ATTR_PORT,
66   MPTCP_PM_ADDR_ATTR_FLAGS,
67   MPTCP_PM_ADDR_ATTR_IF_IDX,
68   __MPTCP_PM_ADDR_ATTR_MAX
69 };
70 #define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1)
71 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
72 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
73 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
74 enum {
75   MPTCP_PM_CMD_UNSPEC,
76   MPTCP_PM_CMD_ADD_ADDR,
77   MPTCP_PM_CMD_DEL_ADDR,
78   MPTCP_PM_CMD_GET_ADDR,
79   MPTCP_PM_CMD_FLUSH_ADDRS,
80   MPTCP_PM_CMD_SET_LIMITS,
81   MPTCP_PM_CMD_GET_LIMITS,
82   __MPTCP_PM_CMD_AFTER_LAST
83 };
84 #endif
85