From 6fde58c61bdd29262e5e1af69b65d3d3d4edf644 Mon Sep 17 00:00:00 2001 From: 8litz <8litz@users.noreply.github.com> Date: Fri, 25 Jan 2019 15:42:44 +0100 Subject: sys/linux: add Multipath TCP description https://tools.ietf.org/html/rfc6824 --- sys/linux/gen/386.go | 83 ++++++++++++++++++++++++++++++++++- sys/linux/gen/amd64.go | 92 ++++++++++++++++++++++++++++++++++++++- sys/linux/gen/arm.go | 83 ++++++++++++++++++++++++++++++++++- sys/linux/gen/arm64.go | 83 ++++++++++++++++++++++++++++++++++- sys/linux/gen/ppc64le.go | 83 ++++++++++++++++++++++++++++++++++- sys/linux/mptcp.txt | 103 ++++++++++++++++++++++++++++++++++++++++++++ sys/linux/mptcp_amd64.const | 10 +++++ sys/linux/vnet.txt | 4 ++ 8 files changed, 536 insertions(+), 5 deletions(-) create mode 100644 sys/linux/mptcp.txt create mode 100644 sys/linux/mptcp_amd64.const (limited to 'sys/linux') 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 +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] 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 +include +include +include include 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 -- cgit mrf-deployment