linux/include/uapi/linux/mptcp.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
#ifndef _UAPI_MPTCP_H
#define _UAPI_MPTCP_H

#ifndef __KERNEL__
#include <netinet/in.h>		/* for sockaddr_in and sockaddr_in6	*/
#include <sys/socket.h>		/* for struct sockaddr			*/
#endif

#include <linux/const.h>
#include <linux/types.h>
#include <linux/in.h>		/* for sockaddr_in			*/
#include <linux/in6.h>		/* for sockaddr_in6			*/
#include <linux/socket.h>	/* for sockaddr_storage and sa_family	*/

#define MPTCP_SUBFLOW_FLAG_MCAP_REM
#define MPTCP_SUBFLOW_FLAG_MCAP_LOC
#define MPTCP_SUBFLOW_FLAG_JOIN_REM
#define MPTCP_SUBFLOW_FLAG_JOIN_LOC
#define MPTCP_SUBFLOW_FLAG_BKUP_REM
#define MPTCP_SUBFLOW_FLAG_BKUP_LOC
#define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED
#define MPTCP_SUBFLOW_FLAG_CONNECTED
#define MPTCP_SUBFLOW_FLAG_MAPVALID

#define MPTCP_PM_CMD_GRP_NAME
#define MPTCP_PM_EV_GRP_NAME

#include <linux/mptcp_pm.h>

#define MPTCP_INFO_FLAG_FALLBACK
#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED

#define MPTCP_PM_ADDR_FLAG_SIGNAL
#define MPTCP_PM_ADDR_FLAG_SUBFLOW
#define MPTCP_PM_ADDR_FLAG_BACKUP
#define MPTCP_PM_ADDR_FLAG_FULLMESH
#define MPTCP_PM_ADDR_FLAG_IMPLICIT

struct mptcp_info {};

/* MPTCP Reset reason codes, rfc8684 */
#define MPTCP_RST_EUNSPEC
#define MPTCP_RST_EMPTCP
#define MPTCP_RST_ERESOURCE
#define MPTCP_RST_EPROHIBIT
#define MPTCP_RST_EWQ2BIG
#define MPTCP_RST_EBADPERF
#define MPTCP_RST_EMIDDLEBOX

struct mptcp_subflow_data {} __attribute__((aligned));

struct mptcp_subflow_addrs {};

struct mptcp_subflow_info {};

struct mptcp_full_info {};

/* MPTCP socket options */
#define MPTCP_INFO
#define MPTCP_TCPINFO
#define MPTCP_SUBFLOW_ADDRS
#define MPTCP_FULL_INFO

#endif /* _UAPI_MPTCP_H */