# Copyright 2018 syzkaller project authors. All rights reserved. # # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. # TCP Extensions for Multipath Operation with Multiple Addresses # https://tools.ietf.org/html/rfc6824 # This is not upstream yes, constants for this descriptions were generated on the following tree: # https://github.com/multipath-tcp/mptcp_net-next.git # Once this is upstream we need to move this to vnet.txt include include include include include tcp_mptcp_option [ generic mptcp_generic_option syn mptcp_syn_option synack mptcp_synack_option ack mptcp_ack_option capable mptcp_capable_option add_addr mptcp_add_addr_option mp_join mptcp_mp_join_option mp_fclose mptcp_mp_fclose_option remove_addr mptcp_remove_addr_option ] [varlen] mptcp_sub_types = OPTION_TYPE_SYN, OPTION_TYPE_SYNACK, OPTION_TYPE_ACK, OPTION_MP_CAPABLE, OPTION_ADD_ADDR, OPTION_MP_JOIN, OPTION_MP_FCLOSE, OPTION_REMOVE_ADDR mptcp_generic_option { type flags[mptcp_sub_types, int8] length len[parent, int8] data array[int8, 0:16] } [packed] mptcp_capable_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] version int8:4 subtype const[OPTION_MP_CAPABLE, int8:4] flags int8 sender int64be receiver array[int64be, 0:1] } [packed] mptcp_add_addr_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] subtype const[OPTION_ADD_ADDR, int8:4] version len[parent, int8:4] addr_id int8 address ipv4_addr port int16be mac array[int8, 0:8] } [packed] mptcp_mp_join_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] flags int8:4 subtype const[OPTION_MP_JOIN, int8:4] } [packed] mptcp_syn_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] flags int8:4 subtype const[OPTION_TYPE_SYN, int8:4] addr_id int8 token int32 nonce int32 } [packed] mptcp_synack_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] flags int8:4 subtype const[OPTION_TYPE_SYNACK, int8:4] addr_id int8 mac int64 nonce int32 } [packed] mptcp_ack_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] reserved int16:12 subtype const[OPTION_TYPE_ACK, int16:4] mac array[int8, 0:20] } [packed] mptcp_mp_fclose_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] reserved int16:12 subtype const[OPTION_MP_FCLOSE, int16:4] key int64 } [packed] mptcp_remove_addr_option { type const[TCPOPT_MPTCP, int8] length len[parent, int8] reserved int8:4 subtype const[OPTION_REMOVE_ADDR, int8:4] addrs_id array[int8] } [packed]