aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-02-22 20:14:36 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-02-22 20:14:36 +0100
commit907d649fc3b6465bf58a79766a267006e0da453c (patch)
treedc46605d0dee2082f5d68e731df6bd3df47038bb /sys/linux
parent02fb42327bab6660d6852481aa89f63d98f4ea39 (diff)
sys/linux: add few ip and tcp options
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/386.go44
-rw-r--r--sys/linux/amd64.go44
-rw-r--r--sys/linux/arm.go37
-rw-r--r--sys/linux/arm64.go44
-rw-r--r--sys/linux/ppc64le.go44
-rw-r--r--sys/linux/vnet.txt48
-rw-r--r--sys/linux/vnet_386.const7
-rw-r--r--sys/linux/vnet_amd64.const7
-rw-r--r--sys/linux/vnet_arm64.const7
-rw-r--r--sys/linux/vnet_ppc64le.const7
10 files changed, 251 insertions, 38 deletions
diff --git a/sys/linux/386.go b/sys/linux/386.go
index a5ce6bc9f..bcafc2ab5 100644
--- a/sys/linux/386.go
+++ b/sys/linux/386.go
@@ -4392,14 +4392,15 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
- }}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
- &StructType{Key: StructKey{Name: "ipv6_routing_ext_header"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_sr_hdr"}, FldName: "srh"},
&StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
&StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
}}},
- {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 14}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
@@ -4407,7 +4408,8 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "identification", TypeSize: 4}}, ValuesStart: 100, ValuesPerProc: 4},
- }}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
@@ -4444,7 +4446,7 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "dccp_packet"}, FldName: "dccp"},
&StructType{Key: StructKey{Name: "gre_packet"}, FldName: "gre"},
}}},
- {Key: StructKey{Name: "ipv6_routing_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_routing_ext_header", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{1, 0, 2}},
@@ -4452,6 +4454,16 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_sr_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_sr_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "nexthdr", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "hdrlen", TypeSize: 1}}, BitSize: 64, Buf: "segments"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "segments_left", TypeSize: 1}}, Buf: "segments"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "first_segment", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "tag", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "segments", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_tlv_calipso"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_calipso", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 1}}, BitSize: 8, Buf: "payload"},
@@ -9501,6 +9513,17 @@ var structDescs_386 = []*KeyedStruct{
{Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "tcp_exp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BigEndian: true}, Val: 63881},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_exp_smc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_smc_option", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 4}, BigEndian: true}, Val: 3805594585},
+ }}},
{Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -9556,6 +9579,8 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
&StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
&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"},
}}},
{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"}}},
@@ -22312,6 +22337,7 @@ var consts_386 = []ConstValue{
{Name: "IPV6_SRCRT_STRICT", Value: 1},
{Name: "IPV6_SRCRT_TYPE_0"},
{Name: "IPV6_SRCRT_TYPE_2", Value: 2},
+ {Name: "IPV6_SRCRT_TYPE_4", Value: 4},
{Name: "IPV6_TCLASS", Value: 67},
{Name: "IPV6_TLV_CALIPSO", Value: 7},
{Name: "IPV6_TLV_HAO", Value: 201},
@@ -24095,6 +24121,10 @@ var consts_386 = []ConstValue{
{Name: "SPP_PMTUD_ENABLE", Value: 8},
{Name: "SPP_SACKDELAY_DISABLE", Value: 64},
{Name: "SPP_SACKDELAY_ENABLE", Value: 32},
+ {Name: "SR6_FLAG1_ALERT", Value: 16},
+ {Name: "SR6_FLAG1_HMAC", Value: 8},
+ {Name: "SR6_FLAG1_OAM", Value: 32},
+ {Name: "SR6_FLAG1_PROTECTED", Value: 64},
{Name: "STARTTIMER", Value: 2},
{Name: "STATX_ALL", Value: 4095},
{Name: "STATX_ATIME", Value: 32},
@@ -24155,11 +24185,13 @@ var consts_386 = []ConstValue{
{Name: "TCPOPT_EOL"},
{Name: "TCPOPT_EXP", Value: 254},
{Name: "TCPOPT_FASTOPEN", Value: 34},
+ {Name: "TCPOPT_FASTOPEN_MAGIC", Value: 63881},
{Name: "TCPOPT_MD5SIG", Value: 19},
{Name: "TCPOPT_MSS", Value: 2},
{Name: "TCPOPT_NOP", Value: 1},
{Name: "TCPOPT_SACK", Value: 5},
{Name: "TCPOPT_SACK_PERM", Value: 4},
+ {Name: "TCPOPT_SMC_MAGIC", Value: 3805594585},
{Name: "TCPOPT_TIMESTAMP", Value: 8},
{Name: "TCPOPT_WINDOW", Value: 3},
{Name: "TCP_CC_INFO", Value: 26},
@@ -24989,4 +25021,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "8fdb60d4bb97f8ba0a5c3013e9849cb604495f84"
+const revision_386 = "4885144f9fd0616a83b5aad174e502a97fef2579"
diff --git a/sys/linux/amd64.go b/sys/linux/amd64.go
index c14b13a31..4763f17a4 100644
--- a/sys/linux/amd64.go
+++ b/sys/linux/amd64.go
@@ -4483,14 +4483,15 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
- }}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
- &StructType{Key: StructKey{Name: "ipv6_routing_ext_header"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_sr_hdr"}, FldName: "srh"},
&StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
&StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
}}},
- {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 14}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
@@ -4498,7 +4499,8 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "identification", TypeSize: 4}}, ValuesStart: 100, ValuesPerProc: 4},
- }}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
@@ -4535,7 +4537,7 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "dccp_packet"}, FldName: "dccp"},
&StructType{Key: StructKey{Name: "gre_packet"}, FldName: "gre"},
}}},
- {Key: StructKey{Name: "ipv6_routing_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_routing_ext_header", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{1, 0, 2}},
@@ -4543,6 +4545,16 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_sr_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_sr_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "nexthdr", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "hdrlen", TypeSize: 1}}, BitSize: 64, Buf: "segments"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "segments_left", TypeSize: 1}}, Buf: "segments"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "first_segment", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "tag", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "segments", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_tlv_calipso"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_calipso", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 1}}, BitSize: 8, Buf: "payload"},
@@ -9685,6 +9697,17 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "tcp_exp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BigEndian: true}, Val: 63881},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_exp_smc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_smc_option", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 4}, BigEndian: true}, Val: 3805594585},
+ }}},
{Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -9740,6 +9763,8 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
&StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
&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"},
}}},
{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"}}},
@@ -22888,6 +22913,7 @@ var consts_amd64 = []ConstValue{
{Name: "IPV6_SRCRT_STRICT", Value: 1},
{Name: "IPV6_SRCRT_TYPE_0"},
{Name: "IPV6_SRCRT_TYPE_2", Value: 2},
+ {Name: "IPV6_SRCRT_TYPE_4", Value: 4},
{Name: "IPV6_TCLASS", Value: 67},
{Name: "IPV6_TLV_CALIPSO", Value: 7},
{Name: "IPV6_TLV_HAO", Value: 201},
@@ -24671,6 +24697,10 @@ var consts_amd64 = []ConstValue{
{Name: "SPP_PMTUD_ENABLE", Value: 8},
{Name: "SPP_SACKDELAY_DISABLE", Value: 64},
{Name: "SPP_SACKDELAY_ENABLE", Value: 32},
+ {Name: "SR6_FLAG1_ALERT", Value: 16},
+ {Name: "SR6_FLAG1_HMAC", Value: 8},
+ {Name: "SR6_FLAG1_OAM", Value: 32},
+ {Name: "SR6_FLAG1_PROTECTED", Value: 64},
{Name: "STARTTIMER", Value: 2},
{Name: "STATX_ALL", Value: 4095},
{Name: "STATX_ATIME", Value: 32},
@@ -24731,11 +24761,13 @@ var consts_amd64 = []ConstValue{
{Name: "TCPOPT_EOL"},
{Name: "TCPOPT_EXP", Value: 254},
{Name: "TCPOPT_FASTOPEN", Value: 34},
+ {Name: "TCPOPT_FASTOPEN_MAGIC", Value: 63881},
{Name: "TCPOPT_MD5SIG", Value: 19},
{Name: "TCPOPT_MSS", Value: 2},
{Name: "TCPOPT_NOP", Value: 1},
{Name: "TCPOPT_SACK", Value: 5},
{Name: "TCPOPT_SACK_PERM", Value: 4},
+ {Name: "TCPOPT_SMC_MAGIC", Value: 3805594585},
{Name: "TCPOPT_TIMESTAMP", Value: 8},
{Name: "TCPOPT_WINDOW", Value: 3},
{Name: "TCP_CC_INFO", Value: 26},
@@ -25590,4 +25622,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "1fe40e55c5ca8f426b4c56960dcd3d57c42ecfec"
+const revision_amd64 = "9b7d90db70a85ce4ca52fe31d459213bd0462e77"
diff --git a/sys/linux/arm.go b/sys/linux/arm.go
index ffeda8d6d..058f1048b 100644
--- a/sys/linux/arm.go
+++ b/sys/linux/arm.go
@@ -4409,14 +4409,15 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
- }}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
- &StructType{Key: StructKey{Name: "ipv6_routing_ext_header"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_sr_hdr"}, FldName: "srh"},
&StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
&StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
}}},
- {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 14}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
@@ -4424,7 +4425,8 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "identification", TypeSize: 4}}, ValuesStart: 100, ValuesPerProc: 4},
- }}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
@@ -4461,7 +4463,7 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "dccp_packet"}, FldName: "dccp"},
&StructType{Key: StructKey{Name: "gre_packet"}, FldName: "gre"},
}}},
- {Key: StructKey{Name: "ipv6_routing_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_routing_ext_header", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{1, 0, 2}},
@@ -4469,6 +4471,16 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_sr_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_sr_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "nexthdr", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "hdrlen", TypeSize: 1}}, BitSize: 64, Buf: "segments"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "segments_left", TypeSize: 1}}, Buf: "segments"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "first_segment", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "tag", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "segments", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_tlv_calipso"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_calipso", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 1}}, BitSize: 8, Buf: "payload"},
@@ -9370,6 +9382,17 @@ var structDescs_arm = []*KeyedStruct{
{Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "tcp_exp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BigEndian: true}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_exp_smc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_smc_option", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 4}, BigEndian: true}},
+ }}},
{Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -9425,6 +9448,8 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
&StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
&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"},
}}},
{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"}}},
@@ -24847,4 +24872,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "5067581bdfd488a8007c90cb8de984853d046ff2"
+const revision_arm = "220e335504887d2061cc543f218477c072ed099b"
diff --git a/sys/linux/arm64.go b/sys/linux/arm64.go
index f18698243..d7cae7c35 100644
--- a/sys/linux/arm64.go
+++ b/sys/linux/arm64.go
@@ -4483,14 +4483,15 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
- }}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
- &StructType{Key: StructKey{Name: "ipv6_routing_ext_header"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_sr_hdr"}, FldName: "srh"},
&StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
&StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
}}},
- {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 14}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
@@ -4498,7 +4499,8 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "identification", TypeSize: 4}}, ValuesStart: 100, ValuesPerProc: 4},
- }}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
@@ -4535,7 +4537,7 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "dccp_packet"}, FldName: "dccp"},
&StructType{Key: StructKey{Name: "gre_packet"}, FldName: "gre"},
}}},
- {Key: StructKey{Name: "ipv6_routing_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_routing_ext_header", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{1, 0, 2}},
@@ -4543,6 +4545,16 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_sr_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_sr_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "nexthdr", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "hdrlen", TypeSize: 1}}, BitSize: 64, Buf: "segments"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "segments_left", TypeSize: 1}}, Buf: "segments"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "first_segment", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "tag", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "segments", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_tlv_calipso"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_calipso", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 1}}, BitSize: 8, Buf: "payload"},
@@ -9490,6 +9502,17 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "tcp_exp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BigEndian: true}, Val: 63881},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_exp_smc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_smc_option", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 4}, BigEndian: true}, Val: 3805594585},
+ }}},
{Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -9545,6 +9568,8 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
&StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
&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"},
}}},
{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"}}},
@@ -22354,6 +22379,7 @@ var consts_arm64 = []ConstValue{
{Name: "IPV6_SRCRT_STRICT", Value: 1},
{Name: "IPV6_SRCRT_TYPE_0"},
{Name: "IPV6_SRCRT_TYPE_2", Value: 2},
+ {Name: "IPV6_SRCRT_TYPE_4", Value: 4},
{Name: "IPV6_TCLASS", Value: 67},
{Name: "IPV6_TLV_CALIPSO", Value: 7},
{Name: "IPV6_TLV_HAO", Value: 201},
@@ -24094,6 +24120,10 @@ var consts_arm64 = []ConstValue{
{Name: "SPP_PMTUD_ENABLE", Value: 8},
{Name: "SPP_SACKDELAY_DISABLE", Value: 64},
{Name: "SPP_SACKDELAY_ENABLE", Value: 32},
+ {Name: "SR6_FLAG1_ALERT", Value: 16},
+ {Name: "SR6_FLAG1_HMAC", Value: 8},
+ {Name: "SR6_FLAG1_OAM", Value: 32},
+ {Name: "SR6_FLAG1_PROTECTED", Value: 64},
{Name: "STARTTIMER", Value: 2},
{Name: "STATX_ALL", Value: 4095},
{Name: "STATX_ATIME", Value: 32},
@@ -24154,11 +24184,13 @@ var consts_arm64 = []ConstValue{
{Name: "TCPOPT_EOL"},
{Name: "TCPOPT_EXP", Value: 254},
{Name: "TCPOPT_FASTOPEN", Value: 34},
+ {Name: "TCPOPT_FASTOPEN_MAGIC", Value: 63881},
{Name: "TCPOPT_MD5SIG", Value: 19},
{Name: "TCPOPT_MSS", Value: 2},
{Name: "TCPOPT_NOP", Value: 1},
{Name: "TCPOPT_SACK", Value: 5},
{Name: "TCPOPT_SACK_PERM", Value: 4},
+ {Name: "TCPOPT_SMC_MAGIC", Value: 3805594585},
{Name: "TCPOPT_TIMESTAMP", Value: 8},
{Name: "TCPOPT_WINDOW", Value: 3},
{Name: "TCP_CC_INFO", Value: 26},
@@ -24972,4 +25004,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "1549416add43ab99966bf170357a517dd9a058c7"
+const revision_arm64 = "606f172e9cacbfdd4fff24e8e9841fe84ec872be"
diff --git a/sys/linux/ppc64le.go b/sys/linux/ppc64le.go
index 0e7409281..8f3e73d18 100644
--- a/sys/linux/ppc64le.go
+++ b/sys/linux/ppc64le.go
@@ -4464,14 +4464,15 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "pad", TypeSize: 6}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 6, RangeEnd: 6},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "options", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_tlv_option"}}},
- }}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_ext_header", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipv6_hopots_ext_header"}, FldName: "hopopts"},
- &StructType{Key: StructKey{Name: "ipv6_routing_ext_header"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_rt_hdr"}, FldName: "routing"},
+ &StructType{Key: StructKey{Name: "ipv6_sr_hdr"}, FldName: "srh"},
&StructType{Key: StructKey{Name: "ipv6_fragment_ext_header"}, FldName: "fragment"},
&StructType{Key: StructKey{Name: "ipv6_dstopts_ext_header"}, FldName: "dstopts"},
}}},
- {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 8}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_fragment_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_fragment_ext_header", TypeSize: 14}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved1", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_hi", TypeSize: 1}}},
@@ -4479,7 +4480,8 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved2", TypeSize: 1}, BitfieldOff: 1, BitfieldLen: 2, BitfieldMdl: true}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "fragment_off_lo", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 5}},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "identification", TypeSize: 4}}, ValuesStart: 100, ValuesPerProc: 4},
- }}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_hopots_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_hopots_ext_header", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "options"},
@@ -4516,7 +4518,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "dccp_packet"}, FldName: "dccp"},
&StructType{Key: StructKey{Name: "gre_packet"}, FldName: "gre"},
}}},
- {Key: StructKey{Name: "ipv6_routing_ext_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_routing_ext_header", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "ipv6_rt_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_rt_hdr", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "next_header", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "length", TypeSize: 1}}, BitSize: 64, Buf: "data"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_routing_types", FldName: "routing_type", TypeSize: 1}}, Vals: []uint64{1, 0, 2}},
@@ -4524,6 +4526,16 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
}, AlignAttr: 8}},
+ {Key: StructKey{Name: "ipv6_sr_hdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_sr_hdr", IsVarlen: true}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ipv6_types", FldName: "nexthdr", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 17, 22, 29, 33, 41, 46, 47, 50, 51, 92, 94, 98, 103, 108, 132, 136, 137, 255, 0, 43, 44, 58, 59, 60, 135, 0, 43, 44, 47, 50, 51, 58, 59, 60, 135, 115}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "hdrlen", TypeSize: 1}}, BitSize: 64, Buf: "segments"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 4},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "segments_left", TypeSize: 1}}, Buf: "segments"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "first_segment", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "flags", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "tag", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "segments", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "ipv6_addr"}}},
+ }, AlignAttr: 8}},
{Key: StructKey{Name: "ipv6_tlv_calipso"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ipv6_tlv_calipso", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 7},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 1}}, BitSize: 8, Buf: "payload"},
@@ -9417,6 +9429,17 @@ var structDescs_ppc64le = []*KeyedStruct{
{Key: StructKey{Name: "tcp_eol_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_eol_option", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "tcp_exp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_fastopen_option", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 2}, BigEndian: true}, Val: 63881},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "tcp_exp_smc_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_exp_smc_option", TypeSize: 6}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 254},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "subtype", TypeSize: 4}, BigEndian: true}, Val: 3805594585},
+ }}},
{Key: StructKey{Name: "tcp_fastopen_option"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tcp_fastopen_option", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 34},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 1}}, Buf: "parent"},
@@ -9472,6 +9495,8 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "tcp_timestamp_option"}, FldName: "timestamp"},
&StructType{Key: StructKey{Name: "tcp_md5sig_option"}, FldName: "md5sig"},
&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"},
}}},
{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"}}},
@@ -22121,6 +22146,7 @@ var consts_ppc64le = []ConstValue{
{Name: "IPV6_SRCRT_STRICT", Value: 1},
{Name: "IPV6_SRCRT_TYPE_0"},
{Name: "IPV6_SRCRT_TYPE_2", Value: 2},
+ {Name: "IPV6_SRCRT_TYPE_4", Value: 4},
{Name: "IPV6_TCLASS", Value: 67},
{Name: "IPV6_TLV_CALIPSO", Value: 7},
{Name: "IPV6_TLV_HAO", Value: 201},
@@ -23855,6 +23881,10 @@ var consts_ppc64le = []ConstValue{
{Name: "SPP_PMTUD_ENABLE", Value: 8},
{Name: "SPP_SACKDELAY_DISABLE", Value: 64},
{Name: "SPP_SACKDELAY_ENABLE", Value: 32},
+ {Name: "SR6_FLAG1_ALERT", Value: 16},
+ {Name: "SR6_FLAG1_HMAC", Value: 8},
+ {Name: "SR6_FLAG1_OAM", Value: 32},
+ {Name: "SR6_FLAG1_PROTECTED", Value: 64},
{Name: "STARTTIMER", Value: 2},
{Name: "STATX_ALL", Value: 4095},
{Name: "STATX_ATIME", Value: 32},
@@ -23913,11 +23943,13 @@ var consts_ppc64le = []ConstValue{
{Name: "TCPOPT_EOL"},
{Name: "TCPOPT_EXP", Value: 254},
{Name: "TCPOPT_FASTOPEN", Value: 34},
+ {Name: "TCPOPT_FASTOPEN_MAGIC", Value: 63881},
{Name: "TCPOPT_MD5SIG", Value: 19},
{Name: "TCPOPT_MSS", Value: 2},
{Name: "TCPOPT_NOP", Value: 1},
{Name: "TCPOPT_SACK", Value: 5},
{Name: "TCPOPT_SACK_PERM", Value: 4},
+ {Name: "TCPOPT_SMC_MAGIC", Value: 3805594585},
{Name: "TCPOPT_TIMESTAMP", Value: 8},
{Name: "TCPOPT_WINDOW", Value: 3},
{Name: "TCP_CC_INFO", Value: 26},
@@ -24734,4 +24766,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "bcb97366634096e72c134f863bf681a433f94b79"
+const revision_ppc64le = "d9dbb1a3cd545f26896881049213c908e2f79e60"
diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt
index 317c3b919..3fb81190d 100644
--- a/sys/linux/vnet.txt
+++ b/sys/linux/vnet.txt
@@ -471,6 +471,7 @@ ipv4_packet {
include <uapi/linux/in6.h>
include <uapi/linux/ipv6.h>
+include <uapi/linux/seg6.h>
include <uapi/linux/ip6_tunnel.h>
include <net/ipv6.h>
@@ -538,7 +539,8 @@ type ipv6_addr_mask array[flags[ipv4_addr_mask_vals, int32be], 4]
# length of the header in 8-octet units not including the first 8 octets.
ipv6_ext_header [
hopopts ipv6_hopots_ext_header
- routing ipv6_routing_ext_header
+ routing ipv6_rt_hdr
+ srh ipv6_sr_hdr
fragment ipv6_fragment_ext_header
dstopts ipv6_dstopts_ext_header
] [varlen]
@@ -552,7 +554,7 @@ ipv6_hopots_ext_header {
ipv6_routing_types = IPV6_SRCRT_STRICT, IPV6_SRCRT_TYPE_0, IPV6_SRCRT_TYPE_2
-ipv6_routing_ext_header {
+ipv6_rt_hdr {
next_header flags[ipv6_types, int8]
length bytesize8[data, int8]
routing_type flags[ipv6_routing_types, int8]
@@ -561,6 +563,25 @@ ipv6_routing_ext_header {
data array[ipv6_addr]
} [packed, align_8]
+ipv6_sr_hdr {
+ nexthdr flags[ipv6_types, int8]
+ hdrlen bytesize8[segments, int8]
+ type const[IPV6_SRCRT_TYPE_4, int8]
+ segments_left len[segments, int8]
+ first_segment int8
+ flags int8
+ tag int16
+ segments array[ipv6_addr]
+# TODO: this may be followed by sr6_tlv_hmac if SR6_FLAG1_HMAC is set.
+# However, if we place it here, we won't be able to calculate hdrlen (len of 2 fields),
+# and if we move segments and sr6_tlv_hmac into a separate struct,
+# we won't be able to calculate segments_left because it will need to
+# refer to a field of a subobject. What may help is allowing specifying
+# subfields as len/bytesize targets, e.g. "len[payload.segments]", or "bytesize[parent_struct.foo]".
+} [packed, align_8]
+
+ipv6_sr_flags = SR6_FLAG1_PROTECTED, SR6_FLAG1_OAM, SR6_FLAG1_ALERT, SR6_FLAG1_HMAC
+
ipv6_fragment_ext_header {
next_header flags[ipv6_types, int8]
reserved1 const[0, int8]
@@ -569,14 +590,14 @@ ipv6_fragment_ext_header {
reserved2 const[0, int8:2]
fragment_off_lo int8:5
identification proc[100, 4, int32]
-} [packed]
+} [packed, align_8]
ipv6_dstopts_ext_header {
next_header flags[ipv6_types, int8]
length bytesize8[options, int8]
pad array[const[0, int8], 6]
options array[ipv6_tlv_option]
-} [packed]
+} [packed, align_8]
ipv6_tlv_option [
generic ipv6_tlv_generic
@@ -648,9 +669,6 @@ ipv6_tlv_enc_lim {
encap_limit int8
} [packed]
-# TODO: add ipv6_rt_hdr header.
-# TODO: add ipv6_sr_hdr header.
-
ipv6_packet {
priority int8:4
version const[6, int8:4]
@@ -712,7 +730,8 @@ tcp_option [
timestamp tcp_timestamp_option
md5sig tcp_md5sig_option
fastopen tcp_fastopen_option
-# TODO: TCPOPT_EXP option
+ exp_fastopen tcp_exp_fastopen_option
+ exp_smc tcp_exp_smc_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
@@ -782,6 +801,19 @@ tcp_fastopen_option {
data array[int8, 0:16]
} [packed]
+tcp_exp_fastopen_option {
+ type const[TCPOPT_EXP, int8]
+ length len[parent, int8]
+ subtype const[TCPOPT_FASTOPEN_MAGIC, int16be]
+ data array[int8, 0:16]
+} [packed]
+
+tcp_exp_smc_option {
+ type const[TCPOPT_EXP, int8]
+ length len[parent, int8]
+ subtype const[TCPOPT_SMC_MAGIC, int32be]
+} [packed]
+
tcp_options {
options array[tcp_option]
} [packed, align_4]
diff --git a/sys/linux/vnet_386.const b/sys/linux/vnet_386.const
index 375cdcd4f..a4ecbc7fc 100644
--- a/sys/linux/vnet_386.const
+++ b/sys/linux/vnet_386.const
@@ -290,6 +290,7 @@ IPPROTO_UDPLITE = 136
IPV6_SRCRT_STRICT = 1
IPV6_SRCRT_TYPE_0 = 0
IPV6_SRCRT_TYPE_2 = 2
+IPV6_SRCRT_TYPE_4 = 4
IPV6_TLV_CALIPSO = 7
IPV6_TLV_HAO = 201
IPV6_TLV_JUMBO = 194
@@ -334,6 +335,10 @@ NEXTHDR_ICMP = 58
NEXTHDR_MOBILITY = 135
NEXTHDR_NONE = 59
NEXTHDR_ROUTING = 43
+SR6_FLAG1_ALERT = 16
+SR6_FLAG1_HMAC = 8
+SR6_FLAG1_OAM = 32
+SR6_FLAG1_PROTECTED = 64
TCPHDR_ACK = 16
TCPHDR_CWR = 128
TCPHDR_ECE = 64
@@ -346,11 +351,13 @@ TCPHDR_URG = 32
TCPOPT_EOL = 0
TCPOPT_EXP = 254
TCPOPT_FASTOPEN = 34
+TCPOPT_FASTOPEN_MAGIC = 63881
TCPOPT_MD5SIG = 19
TCPOPT_MSS = 2
TCPOPT_NOP = 1
TCPOPT_SACK = 5
TCPOPT_SACK_PERM = 4
+TCPOPT_SMC_MAGIC = 3805594585
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
X25_CALL_ACCEPTED = 15
diff --git a/sys/linux/vnet_amd64.const b/sys/linux/vnet_amd64.const
index 375cdcd4f..a4ecbc7fc 100644
--- a/sys/linux/vnet_amd64.const
+++ b/sys/linux/vnet_amd64.const
@@ -290,6 +290,7 @@ IPPROTO_UDPLITE = 136
IPV6_SRCRT_STRICT = 1
IPV6_SRCRT_TYPE_0 = 0
IPV6_SRCRT_TYPE_2 = 2
+IPV6_SRCRT_TYPE_4 = 4
IPV6_TLV_CALIPSO = 7
IPV6_TLV_HAO = 201
IPV6_TLV_JUMBO = 194
@@ -334,6 +335,10 @@ NEXTHDR_ICMP = 58
NEXTHDR_MOBILITY = 135
NEXTHDR_NONE = 59
NEXTHDR_ROUTING = 43
+SR6_FLAG1_ALERT = 16
+SR6_FLAG1_HMAC = 8
+SR6_FLAG1_OAM = 32
+SR6_FLAG1_PROTECTED = 64
TCPHDR_ACK = 16
TCPHDR_CWR = 128
TCPHDR_ECE = 64
@@ -346,11 +351,13 @@ TCPHDR_URG = 32
TCPOPT_EOL = 0
TCPOPT_EXP = 254
TCPOPT_FASTOPEN = 34
+TCPOPT_FASTOPEN_MAGIC = 63881
TCPOPT_MD5SIG = 19
TCPOPT_MSS = 2
TCPOPT_NOP = 1
TCPOPT_SACK = 5
TCPOPT_SACK_PERM = 4
+TCPOPT_SMC_MAGIC = 3805594585
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
X25_CALL_ACCEPTED = 15
diff --git a/sys/linux/vnet_arm64.const b/sys/linux/vnet_arm64.const
index 375cdcd4f..a4ecbc7fc 100644
--- a/sys/linux/vnet_arm64.const
+++ b/sys/linux/vnet_arm64.const
@@ -290,6 +290,7 @@ IPPROTO_UDPLITE = 136
IPV6_SRCRT_STRICT = 1
IPV6_SRCRT_TYPE_0 = 0
IPV6_SRCRT_TYPE_2 = 2
+IPV6_SRCRT_TYPE_4 = 4
IPV6_TLV_CALIPSO = 7
IPV6_TLV_HAO = 201
IPV6_TLV_JUMBO = 194
@@ -334,6 +335,10 @@ NEXTHDR_ICMP = 58
NEXTHDR_MOBILITY = 135
NEXTHDR_NONE = 59
NEXTHDR_ROUTING = 43
+SR6_FLAG1_ALERT = 16
+SR6_FLAG1_HMAC = 8
+SR6_FLAG1_OAM = 32
+SR6_FLAG1_PROTECTED = 64
TCPHDR_ACK = 16
TCPHDR_CWR = 128
TCPHDR_ECE = 64
@@ -346,11 +351,13 @@ TCPHDR_URG = 32
TCPOPT_EOL = 0
TCPOPT_EXP = 254
TCPOPT_FASTOPEN = 34
+TCPOPT_FASTOPEN_MAGIC = 63881
TCPOPT_MD5SIG = 19
TCPOPT_MSS = 2
TCPOPT_NOP = 1
TCPOPT_SACK = 5
TCPOPT_SACK_PERM = 4
+TCPOPT_SMC_MAGIC = 3805594585
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
X25_CALL_ACCEPTED = 15
diff --git a/sys/linux/vnet_ppc64le.const b/sys/linux/vnet_ppc64le.const
index 375cdcd4f..a4ecbc7fc 100644
--- a/sys/linux/vnet_ppc64le.const
+++ b/sys/linux/vnet_ppc64le.const
@@ -290,6 +290,7 @@ IPPROTO_UDPLITE = 136
IPV6_SRCRT_STRICT = 1
IPV6_SRCRT_TYPE_0 = 0
IPV6_SRCRT_TYPE_2 = 2
+IPV6_SRCRT_TYPE_4 = 4
IPV6_TLV_CALIPSO = 7
IPV6_TLV_HAO = 201
IPV6_TLV_JUMBO = 194
@@ -334,6 +335,10 @@ NEXTHDR_ICMP = 58
NEXTHDR_MOBILITY = 135
NEXTHDR_NONE = 59
NEXTHDR_ROUTING = 43
+SR6_FLAG1_ALERT = 16
+SR6_FLAG1_HMAC = 8
+SR6_FLAG1_OAM = 32
+SR6_FLAG1_PROTECTED = 64
TCPHDR_ACK = 16
TCPHDR_CWR = 128
TCPHDR_ECE = 64
@@ -346,11 +351,13 @@ TCPHDR_URG = 32
TCPOPT_EOL = 0
TCPOPT_EXP = 254
TCPOPT_FASTOPEN = 34
+TCPOPT_FASTOPEN_MAGIC = 63881
TCPOPT_MD5SIG = 19
TCPOPT_MSS = 2
TCPOPT_NOP = 1
TCPOPT_SACK = 5
TCPOPT_SACK_PERM = 4
+TCPOPT_SMC_MAGIC = 3805594585
TCPOPT_TIMESTAMP = 8
TCPOPT_WINDOW = 3
X25_CALL_ACCEPTED = 15