#include <netinet/mptcp_var.h>

netinet/mptcp_var.h Kernel.framework

includes: netinet/in.h, Kernel/netinet/tcp.h, netinet/tcp_private.h, Kernel/sys/_types/_uuid_t.h
12 macros · 6 structs · 3 typedefs

structmptcp_flow

size 720, align 8
uint64_tflow_len
uint64_tflow_tcpci_offset
uint32_tflow_flags
sae_connid_tflow_cid
struct sockaddr_storageflow_src
struct sockaddr_storageflow_dst
uint32_tflow_relseqlast subflow rel seq#
int32_tflow_soerrorsubflow level error
uint32_tflow_probecntnumber of probes sent
conninfo_tcp_tflow_cimust be the last field

typedefmptcp_flow_t

typedef struct mptcp_flow mptcp_flow_t;

structconninfo_mptcp

size 832, align 8
uint64_tmptcpci_len
uint64_tmptcpci_flow_offsetoffsetof first flow
uint64_tmptcpci_nflowsnumber of subflows
uint32_tmptcpci_stateMPTCP level state
uint32_tmptcpci_mpte_flagsSession flags
uint32_tmptcpci_flagsMPTCB flags
uint32_tmptcpci_ltokenlocal token
uint32_tmptcpci_rtokenremote token
uint32_tmptcpci_notsent_lowatNOTSENT_LOWAT
uint64_tmptcpci_sndunaSend side DSN of last unacked byte
uint64_tmptcpci_sndnxtDSN of next byte to send
uint64_tmptcpci_sndmaxDSN of max byte sent
uint64_tmptcpci_lidsnLocal IDSN
uint32_tmptcpci_sndwndSend window snapshot
uint64_tmptcpci_rcvnxtReceive side Next expected DSN
uint64_tmptcpci_ridsnPeer's IDSN
uint32_tmptcpci_rcvwndReceive window
uint8_tmptcpci_mpte_addridlast addr id
mptcp_flow_t[1]mptcpci_flows

typedefconninfo_mptcp_t

typedef struct conninfo_mptcp conninfo_mptcp_t;

macroMPTCP_KERN_CTL_NAME

Use SymptomsD notifications of wifi and cell status in subflow selection
#define MPTCP_KERN_CTL_NAME "com.apple.network.advisory"

structsymptoms_advisory

size 4, align 4

typedefsymptoms_advisory_t

typedef struct symptoms_advisory symptoms_advisory_t;

macroSYMPTOMS_ADVISORY_NOCOMMENT

#define SYMPTOMS_ADVISORY_NOCOMMENT 0x0000

macroSYMPTOMS_ADVISORY_USEAPP

#define SYMPTOMS_ADVISORY_USEAPP 0xFFFF
Very ugly workaround to avoid breaking backwards compatibility - ToDo: Fix it in +1

macroSYMPTOMS_ADVISORY_WIFI_BAD

#define SYMPTOMS_ADVISORY_WIFI_BAD 0x01

macroSYMPTOMS_ADVISORY_WIFI_OK

#define SYMPTOMS_ADVISORY_WIFI_OK 0x02

macroSYMPTOMS_ADVISORY_CELL_BAD

#define SYMPTOMS_ADVISORY_CELL_BAD 0x01

macroSYMPTOMS_ADVISORY_CELL_OK

#define SYMPTOMS_ADVISORY_CELL_OK 0x02

macroMPTCP_TARGET_BASED_RSSI_THRESHOLD

#define MPTCP_TARGET_BASED_RSSI_THRESHOLD -75

structmptcp_symptoms_answer

size 24, align 4
struct symptoms_advisoryadvisory
uuid_tuuid
int32_trssi

structmptcp_symptoms_ask_uuid

size 24, align 4
uint32_tcmd
uuid_tuuid
uint32_tpriority

macroMPTCP_SYMPTOMS_ASK_UUID

#define MPTCP_SYMPTOMS_ASK_UUID 1

macroMPTCP_SYMPTOMS_UNKNOWN

#define MPTCP_SYMPTOMS_UNKNOWN 0

macroMPTCP_SYMPTOMS_BACKGROUND

#define MPTCP_SYMPTOMS_BACKGROUND 1

macroMPTCP_SYMPTOMS_FOREGROUND

#define MPTCP_SYMPTOMS_FOREGROUND 2

structkev_mptcp_data

size 4, align 4
intvalue