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