1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 2 /* Do not edit directly, auto-generated from: */ 3 /* Documentation/netlink/specs/mptcp_pm.yaml */ 4 /* YNL-GEN uapi header */ 5 6 #ifndef _UAPI_LINUX_MPTCP_PM_H 7 #define _UAPI_LINUX_MPTCP_PM_H 8 9 #define MPTCP_PM_NAME "mptcp_pm" 10 #define MPTCP_PM_VER 1 11 12 /** 13 * enum mptcp_event_type 14 * @MPTCP_EVENT_UNSPEC: unused event 15 * @MPTCP_EVENT_CREATED: A new MPTCP connection has been created. It is the 16 * good time to allocate memory and send ADD_ADDR if needed. Depending on the 17 * traffic-patterns it can take a long time until the MPTCP_EVENT_ESTABLISHED 18 * is sent. Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, 19 * sport, dport, server-side. 20 * @MPTCP_EVENT_ESTABLISHED: A MPTCP connection is established (can start new 21 * subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, 22 * sport, dport, server-side. 23 * @MPTCP_EVENT_CLOSED: A MPTCP connection has stopped. Attribute: token. 24 * @MPTCP_EVENT_ANNOUNCED: A new address has been announced by the peer. 25 * Attributes: token, rem_id, family, daddr4 | daddr6 [, dport]. 26 * @MPTCP_EVENT_REMOVED: An address has been lost by the peer. Attributes: 27 * token, rem_id. 28 * @MPTCP_EVENT_SUB_ESTABLISHED: A new subflow has been established. 'error' 29 * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | 30 * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. 31 * @MPTCP_EVENT_SUB_CLOSED: A subflow has been closed. An error (copy of 32 * sk_err) could be set if an error has been detected for this subflow. 33 * Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | 34 * daddr6, sport, dport, backup, if_idx [, error]. 35 * @MPTCP_EVENT_SUB_PRIORITY: The priority of a subflow has changed. 'error' 36 * should not be set. Attributes: token, family, loc_id, rem_id, saddr4 | 37 * saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error]. 38 * @MPTCP_EVENT_LISTENER_CREATED: A new PM listener is created. Attributes: 39 * family, sport, saddr4 | saddr6. 40 * @MPTCP_EVENT_LISTENER_CLOSED: A PM listener is closed. Attributes: family, 41 * sport, saddr4 | saddr6. 42 */ 43 enum mptcp_event_type { 44 MPTCP_EVENT_UNSPEC, 45 MPTCP_EVENT_CREATED, 46 MPTCP_EVENT_ESTABLISHED, 47 MPTCP_EVENT_CLOSED, 48 MPTCP_EVENT_ANNOUNCED = 6, 49 MPTCP_EVENT_REMOVED, 50 MPTCP_EVENT_SUB_ESTABLISHED = 10, 51 MPTCP_EVENT_SUB_CLOSED, 52 MPTCP_EVENT_SUB_PRIORITY = 13, 53 MPTCP_EVENT_LISTENER_CREATED = 15, 54 MPTCP_EVENT_LISTENER_CLOSED, 55 }; 56 57 enum { 58 MPTCP_PM_ADDR_ATTR_UNSPEC, 59 MPTCP_PM_ADDR_ATTR_FAMILY, 60 MPTCP_PM_ADDR_ATTR_ID, 61 MPTCP_PM_ADDR_ATTR_ADDR4, 62 MPTCP_PM_ADDR_ATTR_ADDR6, 63 MPTCP_PM_ADDR_ATTR_PORT, 64 MPTCP_PM_ADDR_ATTR_FLAGS, 65 MPTCP_PM_ADDR_ATTR_IF_IDX, 66 67 __MPTCP_PM_ADDR_ATTR_MAX 68 }; 69 #define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1) 70 71 enum { 72 MPTCP_SUBFLOW_ATTR_UNSPEC, 73 MPTCP_SUBFLOW_ATTR_TOKEN_REM, 74 MPTCP_SUBFLOW_ATTR_TOKEN_LOC, 75 MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ, 76 MPTCP_SUBFLOW_ATTR_MAP_SEQ, 77 MPTCP_SUBFLOW_ATTR_MAP_SFSEQ, 78 MPTCP_SUBFLOW_ATTR_SSN_OFFSET, 79 MPTCP_SUBFLOW_ATTR_MAP_DATALEN, 80 MPTCP_SUBFLOW_ATTR_FLAGS, 81 MPTCP_SUBFLOW_ATTR_ID_REM, 82 MPTCP_SUBFLOW_ATTR_ID_LOC, 83 MPTCP_SUBFLOW_ATTR_PAD, 84 85 __MPTCP_SUBFLOW_ATTR_MAX 86 }; 87 #define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1) 88 89 enum { 90 MPTCP_PM_ENDPOINT_ADDR = 1, 91 92 __MPTCP_PM_ENDPOINT_MAX 93 }; 94 #define MPTCP_PM_ENDPOINT_MAX (__MPTCP_PM_ENDPOINT_MAX - 1) 95 96 enum { 97 MPTCP_PM_ATTR_UNSPEC, 98 MPTCP_PM_ATTR_ADDR, 99 MPTCP_PM_ATTR_RCV_ADD_ADDRS, 100 MPTCP_PM_ATTR_SUBFLOWS, 101 MPTCP_PM_ATTR_TOKEN, 102 MPTCP_PM_ATTR_LOC_ID, 103 MPTCP_PM_ATTR_ADDR_REMOTE, 104 105 __MPTCP_ATTR_AFTER_LAST 106 }; 107 #define MPTCP_PM_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1) 108 109 enum mptcp_event_attr { 110 MPTCP_ATTR_UNSPEC, 111 MPTCP_ATTR_TOKEN, 112 MPTCP_ATTR_FAMILY, 113 MPTCP_ATTR_LOC_ID, 114 MPTCP_ATTR_REM_ID, 115 MPTCP_ATTR_SADDR4, 116 MPTCP_ATTR_SADDR6, 117 MPTCP_ATTR_DADDR4, 118 MPTCP_ATTR_DADDR6, 119 MPTCP_ATTR_SPORT, 120 MPTCP_ATTR_DPORT, 121 MPTCP_ATTR_BACKUP, 122 MPTCP_ATTR_ERROR, 123 MPTCP_ATTR_FLAGS, 124 MPTCP_ATTR_TIMEOUT, 125 MPTCP_ATTR_IF_IDX, 126 MPTCP_ATTR_RESET_REASON, 127 MPTCP_ATTR_RESET_FLAGS, 128 MPTCP_ATTR_SERVER_SIDE, 129 130 __MPTCP_ATTR_MAX 131 }; 132 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_MAX - 1) 133 134 enum { 135 MPTCP_PM_CMD_UNSPEC, 136 MPTCP_PM_CMD_ADD_ADDR, 137 MPTCP_PM_CMD_DEL_ADDR, 138 MPTCP_PM_CMD_GET_ADDR, 139 MPTCP_PM_CMD_FLUSH_ADDRS, 140 MPTCP_PM_CMD_SET_LIMITS, 141 MPTCP_PM_CMD_GET_LIMITS, 142 MPTCP_PM_CMD_SET_FLAGS, 143 MPTCP_PM_CMD_ANNOUNCE, 144 MPTCP_PM_CMD_REMOVE, 145 MPTCP_PM_CMD_SUBFLOW_CREATE, 146 MPTCP_PM_CMD_SUBFLOW_DESTROY, 147 148 __MPTCP_PM_CMD_AFTER_LAST 149 }; 150 #define MPTCP_PM_CMD_MAX (__MPTCP_PM_CMD_AFTER_LAST - 1) 151 152 #endif /* _UAPI_LINUX_MPTCP_PM_H */ 153