aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
author8litz <8litz@users.noreply.github.com>2019-01-25 15:42:44 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-01-25 15:42:43 +0100
commit6fde58c61bdd29262e5e1af69b65d3d3d4edf644 (patch)
treea4a837aeb00c2c5aa89329d1432b514867604b7c /sys/linux
parentb5d78bce088100d3b203dda43df81f2a7293d6f3 (diff)
sys/linux: add Multipath TCP description
https://tools.ietf.org/html/rfc6824
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/gen/386.go83
-rw-r--r--sys/linux/gen/amd64.go92
-rw-r--r--sys/linux/gen/arm.go83
-rw-r--r--sys/linux/gen/arm64.go83
-rw-r--r--sys/linux/gen/ppc64le.go83
-rw-r--r--sys/linux/mptcp.txt103
-rw-r--r--sys/linux/mptcp_amd64.const10
-rw-r--r--sys/linux/vnet.txt4
8 files changed, 536 insertions, 5 deletions
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 1d47cc6d5..8acb88295 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -9766,6 +9766,75 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "ipv6"},
&StructType{Key: StructKey{Name: "llc_packet"}, FldName: "llc"},
}}},
+ {Key: StructKey{Name: "mptcp_ack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_ack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 20},
+ }}},
+ {Key: StructKey{Name: "mptcp_add_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_add_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "address"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "port", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mptcp_capable_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_capable_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "sender", TypeSize: 8}, ArgFormat: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "receiver", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", TypeSize: 8}, ArgFormat: 1}}, Kind: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "mptcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mptcp_sub_types", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_fclose_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_fclose_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "key", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_join_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_join_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ }}},
+ {Key: StructKey{Name: "mptcp_remove_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_remove_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "reserved", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrs_id", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "mptcp_syn_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_syn_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "token", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_synack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_synack_option", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mac", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "mq_attr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mq_attr", TypeSize: 32}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "flags", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxmsg", TypeSize: 4}}},
@@ -21233,6 +21302,17 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_mptcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mptcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "mptcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "mptcp_syn_option"}, FldName: "syn"},
+ &StructType{Key: StructKey{Name: "mptcp_synack_option"}, FldName: "synack"},
+ &StructType{Key: StructKey{Name: "mptcp_ack_option"}, FldName: "ack"},
+ &StructType{Key: StructKey{Name: "mptcp_capable_option"}, FldName: "capable"},
+ &StructType{Key: StructKey{Name: "mptcp_add_addr_option"}, FldName: "add_addr"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_join_option"}, FldName: "mp_join"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_fclose_option"}, FldName: "mp_fclose"},
+ &StructType{Key: StructKey{Name: "mptcp_remove_addr_option"}, FldName: "remove_addr"},
+ }}},
{Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -21254,6 +21334,7 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_fastopen_option"}, FldName: "exp_fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_smc_option"}, FldName: "exp_smc"},
+ &UnionType{Key: StructKey{Name: "tcp_mptcp_option"}, FldName: "mptcp"},
}}},
{Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
@@ -47343,4 +47424,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "e2cd1f43d09c5a628a5966e538a2ec56f660a7f9"
+const revision_386 = "8fe750501d06ba83645ca97013c3b5701de882e8"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index a772a61e4..af2132f68 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -9875,6 +9875,75 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "ipv6"},
&StructType{Key: StructKey{Name: "llc_packet"}, FldName: "llc"},
}}},
+ {Key: StructKey{Name: "mptcp_ack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_ack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}, Val: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 20},
+ }}},
+ {Key: StructKey{Name: "mptcp_add_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_add_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Val: 32},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "address"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "port", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mptcp_capable_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_capable_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 8},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "sender", TypeSize: 8}, ArgFormat: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "receiver", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", TypeSize: 8}, ArgFormat: 1}}, Kind: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "mptcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mptcp_sub_types", FldName: "type", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8, 32, 64, 128, 256}, BitMask: true},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_fclose_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_fclose_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}, Val: 128},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "key", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_join_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_join_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 64},
+ }}},
+ {Key: StructKey{Name: "mptcp_remove_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_remove_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "reserved", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 256},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrs_id", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "mptcp_syn_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_syn_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "token", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_synack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_synack_option", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 30},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mac", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "mq_attr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mq_attr", TypeSize: 64}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "flags", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxmsg", TypeSize: 8}}},
@@ -21545,6 +21614,17 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_mptcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mptcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "mptcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "mptcp_syn_option"}, FldName: "syn"},
+ &StructType{Key: StructKey{Name: "mptcp_synack_option"}, FldName: "synack"},
+ &StructType{Key: StructKey{Name: "mptcp_ack_option"}, FldName: "ack"},
+ &StructType{Key: StructKey{Name: "mptcp_capable_option"}, FldName: "capable"},
+ &StructType{Key: StructKey{Name: "mptcp_add_addr_option"}, FldName: "add_addr"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_join_option"}, FldName: "mp_join"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_fclose_option"}, FldName: "mp_fclose"},
+ &StructType{Key: StructKey{Name: "mptcp_remove_addr_option"}, FldName: "remove_addr"},
+ }}},
{Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -21566,6 +21646,7 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_fastopen_option"}, FldName: "exp_fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_smc_option"}, FldName: "exp_smc"},
+ &UnionType{Key: StructKey{Name: "tcp_mptcp_option"}, FldName: "mptcp"},
}}},
{Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
@@ -43887,6 +43968,14 @@ var consts_amd64 = []ConstValue{
{Name: "N_NULL", Value: 27},
{Name: "N_TTY"},
{Name: "OMAGIC", Value: 263},
+ {Name: "OPTION_ADD_ADDR", Value: 32},
+ {Name: "OPTION_MP_CAPABLE", Value: 8},
+ {Name: "OPTION_MP_FCLOSE", Value: 128},
+ {Name: "OPTION_MP_JOIN", Value: 64},
+ {Name: "OPTION_REMOVE_ADDR", Value: 256},
+ {Name: "OPTION_TYPE_ACK", Value: 4},
+ {Name: "OPTION_TYPE_SYN", Value: 1},
+ {Name: "OPTION_TYPE_SYNACK", Value: 2},
{Name: "OVL_FH_FLAG_ANY_ENDIAN", Value: 2},
{Name: "OVL_FH_FLAG_BIG_ENDIAN", Value: 1},
{Name: "OVL_FH_FLAG_PATH_UPPER", Value: 4},
@@ -45739,6 +45828,7 @@ var consts_amd64 = []ConstValue{
{Name: "TCPOPT_FASTOPEN", Value: 34},
{Name: "TCPOPT_FASTOPEN_MAGIC", Value: 63881},
{Name: "TCPOPT_MD5SIG", Value: 19},
+ {Name: "TCPOPT_MPTCP", Value: 30},
{Name: "TCPOPT_MSS", Value: 2},
{Name: "TCPOPT_NOP", Value: 1},
{Name: "TCPOPT_SACK", Value: 5},
@@ -47870,4 +47960,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "fbf7ab2ec40b3c027db6120b4c432a5da79b67c0"
+const revision_amd64 = "d2efaf232fd23ce4c5158000b4644d50c9375db0"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index 107e99d99..e9885189a 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -9583,6 +9583,75 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "ipv6"},
&StructType{Key: StructKey{Name: "llc_packet"}, FldName: "llc"},
}}},
+ {Key: StructKey{Name: "mptcp_ack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_ack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 20},
+ }}},
+ {Key: StructKey{Name: "mptcp_add_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_add_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "address"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "port", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mptcp_capable_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_capable_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "sender", TypeSize: 8}, ArgFormat: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "receiver", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", TypeSize: 8}, ArgFormat: 1}}, Kind: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "mptcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mptcp_sub_types", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_fclose_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_fclose_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "key", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_join_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_join_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ }}},
+ {Key: StructKey{Name: "mptcp_remove_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_remove_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "reserved", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrs_id", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "mptcp_syn_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_syn_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "token", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_synack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_synack_option", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mac", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "mq_attr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mq_attr", TypeSize: 32}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "flags", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxmsg", TypeSize: 4}}},
@@ -21055,6 +21124,17 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_mptcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mptcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "mptcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "mptcp_syn_option"}, FldName: "syn"},
+ &StructType{Key: StructKey{Name: "mptcp_synack_option"}, FldName: "synack"},
+ &StructType{Key: StructKey{Name: "mptcp_ack_option"}, FldName: "ack"},
+ &StructType{Key: StructKey{Name: "mptcp_capable_option"}, FldName: "capable"},
+ &StructType{Key: StructKey{Name: "mptcp_add_addr_option"}, FldName: "add_addr"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_join_option"}, FldName: "mp_join"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_fclose_option"}, FldName: "mp_fclose"},
+ &StructType{Key: StructKey{Name: "mptcp_remove_addr_option"}, FldName: "remove_addr"},
+ }}},
{Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -21076,6 +21156,7 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_fastopen_option"}, FldName: "exp_fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_smc_option"}, FldName: "exp_smc"},
+ &UnionType{Key: StructKey{Name: "tcp_mptcp_option"}, FldName: "mptcp"},
}}},
{Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
@@ -46926,4 +47007,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "6c28fc5023ac53895a6bb9e02473e0eb22383acc"
+const revision_arm = "aff7ac2133fd3d4e7bcfc917ab5b065eea6b513d"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index afb8a8056..a8005d6a6 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -9692,6 +9692,75 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "ipv6"},
&StructType{Key: StructKey{Name: "llc_packet"}, FldName: "llc"},
}}},
+ {Key: StructKey{Name: "mptcp_ack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_ack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 20},
+ }}},
+ {Key: StructKey{Name: "mptcp_add_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_add_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "address"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "port", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mptcp_capable_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_capable_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "sender", TypeSize: 8}, ArgFormat: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "receiver", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", TypeSize: 8}, ArgFormat: 1}}, Kind: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "mptcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mptcp_sub_types", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_fclose_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_fclose_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "key", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_join_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_join_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ }}},
+ {Key: StructKey{Name: "mptcp_remove_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_remove_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "reserved", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrs_id", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "mptcp_syn_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_syn_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "token", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_synack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_synack_option", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mac", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "mq_attr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mq_attr", TypeSize: 64}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "flags", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxmsg", TypeSize: 8}}},
@@ -21362,6 +21431,17 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_mptcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mptcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "mptcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "mptcp_syn_option"}, FldName: "syn"},
+ &StructType{Key: StructKey{Name: "mptcp_synack_option"}, FldName: "synack"},
+ &StructType{Key: StructKey{Name: "mptcp_ack_option"}, FldName: "ack"},
+ &StructType{Key: StructKey{Name: "mptcp_capable_option"}, FldName: "capable"},
+ &StructType{Key: StructKey{Name: "mptcp_add_addr_option"}, FldName: "add_addr"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_join_option"}, FldName: "mp_join"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_fclose_option"}, FldName: "mp_fclose"},
+ &StructType{Key: StructKey{Name: "mptcp_remove_addr_option"}, FldName: "remove_addr"},
+ }}},
{Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -21383,6 +21463,7 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_fastopen_option"}, FldName: "exp_fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_smc_option"}, FldName: "exp_smc"},
+ &UnionType{Key: StructKey{Name: "tcp_mptcp_option"}, FldName: "mptcp"},
}}},
{Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
@@ -47228,4 +47309,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "d10af2095c921a9c406ee34f4a7181a707def499"
+const revision_arm64 = "2022fabcab0feeeca459359f414b551e8bac296b"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 5f7608ef3..0d17cfe6a 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -9641,6 +9641,75 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "ipv6_packet"}, FldName: "ipv6"},
&StructType{Key: StructKey{Name: "llc_packet"}, FldName: "llc"},
}}},
+ {Key: StructKey{Name: "mptcp_ack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_ack_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 20},
+ }}},
+ {Key: StructKey{Name: "mptcp_add_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_add_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "version", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &UnionType{Key: StructKey{Name: "ipv4_addr"}, FldName: "address"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "port", TypeSize: 2}, ArgFormat: 1}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac", IsVarlen: true}, Kind: 1, RangeEnd: 8},
+ }}},
+ {Key: StructKey{Name: "mptcp_capable_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_capable_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", FldName: "sender", TypeSize: 8}, ArgFormat: 1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "receiver", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64be", TypeSize: 8}, ArgFormat: 1}}, Kind: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "mptcp_generic_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_generic_option", IsVarlen: true}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mptcp_sub_types", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_fclose_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_fclose_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "reserved", TypeSize: 2}, BitfieldLen: 12, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BitfieldOff: 12, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "key", TypeSize: 8}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_mp_join_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_mp_join_option", TypeSize: 3}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ }}},
+ {Key: StructKey{Name: "mptcp_remove_addr_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_remove_addr_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "reserved", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrs_id", IsVarlen: true}},
+ }}},
+ {Key: StructKey{Name: "mptcp_syn_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_syn_option", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "token", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
+ {Key: StructKey{Name: "mptcp_synack_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mptcp_synack_option", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_id", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "mac", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "nonce", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "mq_attr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "mq_attr", TypeSize: 64}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "flags", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "maxmsg", TypeSize: 8}}},
@@ -21311,6 +21380,17 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "md5", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
}}},
+ {Key: StructKey{Name: "tcp_mptcp_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mptcp_option", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "mptcp_generic_option"}, FldName: "generic"},
+ &StructType{Key: StructKey{Name: "mptcp_syn_option"}, FldName: "syn"},
+ &StructType{Key: StructKey{Name: "mptcp_synack_option"}, FldName: "synack"},
+ &StructType{Key: StructKey{Name: "mptcp_ack_option"}, FldName: "ack"},
+ &StructType{Key: StructKey{Name: "mptcp_capable_option"}, FldName: "capable"},
+ &StructType{Key: StructKey{Name: "mptcp_add_addr_option"}, FldName: "add_addr"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_join_option"}, FldName: "mp_join"},
+ &StructType{Key: StructKey{Name: "mptcp_mp_fclose_option"}, FldName: "mp_fclose"},
+ &StructType{Key: StructKey{Name: "mptcp_remove_addr_option"}, FldName: "remove_addr"},
+ }}},
{Key: StructKey{Name: "tcp_mss_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_mss_option", TypeSize: 4}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -21332,6 +21412,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_fastopen_option"}, FldName: "fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_fastopen_option"}, FldName: "exp_fastopen"},
&StructType{Key: StructKey{Name: "tcp_exp_smc_option"}, FldName: "exp_smc"},
+ &UnionType{Key: StructKey{Name: "tcp_mptcp_option"}, FldName: "mptcp"},
}}},
{Key: StructKey{Name: "tcp_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_options", IsVarlen: true}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "tcp_option"}}},
@@ -44864,4 +44945,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "1823389ca46deba8778ddcde70c648239c98e2f1"
+const revision_ppc64le = "421a9db9289bfe689537f0fa2015677bfdc9a42a"
diff --git a/sys/linux/mptcp.txt b/sys/linux/mptcp.txt
new file mode 100644
index 000000000..ef5a81527
--- /dev/null
+++ b/sys/linux/mptcp.txt
@@ -0,0 +1,103 @@
+# 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.
+
+# Constants for this descriptions were generated on the following tree:
+# https://github.com/multipath-tcp/mptcp_net-next
+
+include <net/tcp.h>
+include <net/mptcp.h>
+include <net/mptcp_v4.h>
+include <net/mptcp_v6.h>
+include <uapi/linux/tcp.h>
+
+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]
diff --git a/sys/linux/mptcp_amd64.const b/sys/linux/mptcp_amd64.const
new file mode 100644
index 000000000..a0c26da46
--- /dev/null
+++ b/sys/linux/mptcp_amd64.const
@@ -0,0 +1,10 @@
+# AUTOGENERATED FILE
+OPTION_ADD_ADDR = 32
+OPTION_MP_CAPABLE = 8
+OPTION_MP_FCLOSE = 128
+OPTION_MP_JOIN = 64
+OPTION_REMOVE_ADDR = 256
+OPTION_TYPE_ACK = 4
+OPTION_TYPE_SYN = 1
+OPTION_TYPE_SYNACK = 2
+TCPOPT_MPTCP = 30
diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt
index f26235a30..3db43fbac 100644
--- a/sys/linux/vnet.txt
+++ b/sys/linux/vnet.txt
@@ -736,6 +736,9 @@ ipv6_payload [
# http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml
include <net/tcp.h>
+include <net/mptcp.h>
+include <net/mptcp_v4.h>
+include <net/mptcp_v6.h>
include <uapi/linux/tcp.h>
tcp_option [
@@ -751,6 +754,7 @@ tcp_option [
fastopen tcp_fastopen_option
exp_fastopen tcp_exp_fastopen_option
exp_smc tcp_exp_smc_option
+ mptcp tcp_mptcp_option
] [varlen]
tcp_option_types = TCPOPT_NOP, TCPOPT_EOL, TCPOPT_MSS, TCPOPT_WINDOW, TCPOPT_SACK_PERM, TCPOPT_SACK, TCPOPT_TIMESTAMP, TCPOPT_MD5SIG, TCPOPT_FASTOPEN, TCPOPT_EXP