aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-03-21 15:27:47 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-03-21 15:27:47 +0100
commit5b64ead83b3ebabba9dbedc2c553c151947a6bb1 (patch)
tree7ecfb054008b9d6b727be5cb0af15a9a8b091f8a /sys
parent81c512e6b1d669ff9c0f1aa349402c9cd35b1b79 (diff)
sys/linux: add guehdr for udp packets
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/386.go16
-rw-r--r--sys/linux/amd64.go16
-rw-r--r--sys/linux/arm.go14
-rw-r--r--sys/linux/arm64.go16
-rw-r--r--sys/linux/ppc64le.go16
-rw-r--r--sys/linux/vnet.txt19
-rw-r--r--sys/linux/vnet_386.const2
-rw-r--r--sys/linux/vnet_amd64.const2
-rw-r--r--sys/linux/vnet_arm64.const2
-rw-r--r--sys/linux/vnet_ppc64le.const2
10 files changed, 100 insertions, 5 deletions
diff --git a/sys/linux/386.go b/sys/linux/386.go
index 089055227..c545ffe37 100644
--- a/sys/linux/386.go
+++ b/sys/linux/386.go
@@ -2680,6 +2680,14 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "guehdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen", TypeSize: 1}, BitfieldLen: 5, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldOff: 6, BitfieldLen: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto_ctype", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{256}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "priv", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_prov_flags", TypeSize: 4}}, Vals: []uint64{128}}, Kind: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "hashlimit_cfg1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "hashlimit_cfg1", TypeSize: 32}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "xt_hashlimit_modes", FldName: "mode", TypeSize: 4}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "avg", TypeSize: 4}}},
@@ -10177,11 +10185,15 @@ var structDescs_386 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "udp_extensions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
+ }}},
{Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, BigEndian: true}, Buf: "parent"},
&CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, BigEndian: true}, Kind: 1, Buf: "parent", Protocol: 17},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extensions", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "udp_extensions"}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
@@ -22442,6 +22454,8 @@ var consts_386 = []ConstValue{
{Name: "GIO_UNISCRNMAP", Value: 19305},
{Name: "GRND_NONBLOCK", Value: 1},
{Name: "GRND_RANDOM", Value: 2},
+ {Name: "GUE_FLAG_PRIV", Value: 256},
+ {Name: "GUE_PFLAG_REMCSUM", Value: 128},
{Name: "HCIBLOCKADDR", Value: 1074022630},
{Name: "HCIDEVDOWN", Value: 1074022602},
{Name: "HCIDEVRESET", Value: 1074022603},
@@ -25705,4 +25719,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "07f18311863bda169fc776218d2d1d61ff0c5d80"
+const revision_386 = "b0cca0943b5017ba63ed5e3b325251612d061f21"
diff --git a/sys/linux/amd64.go b/sys/linux/amd64.go
index 0eb67184f..d02d04be5 100644
--- a/sys/linux/amd64.go
+++ b/sys/linux/amd64.go
@@ -2764,6 +2764,14 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "guehdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen", TypeSize: 1}, BitfieldLen: 5, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldOff: 6, BitfieldLen: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto_ctype", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{256}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "priv", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_prov_flags", TypeSize: 4}}, Vals: []uint64{128}}, Kind: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "hashlimit_cfg1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "hashlimit_cfg1", TypeSize: 32}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "xt_hashlimit_modes", FldName: "mode", TypeSize: 4}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "avg", TypeSize: 4}}},
@@ -10437,11 +10445,15 @@ var structDescs_amd64 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "udp_extensions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
+ }}},
{Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, BigEndian: true}, Buf: "parent"},
&CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, BigEndian: true}, Kind: 1, Buf: "parent", Protocol: 17},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extensions", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "udp_extensions"}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
@@ -23039,6 +23051,8 @@ var consts_amd64 = []ConstValue{
{Name: "GIO_UNISCRNMAP", Value: 19305},
{Name: "GRND_NONBLOCK", Value: 1},
{Name: "GRND_RANDOM", Value: 2},
+ {Name: "GUE_FLAG_PRIV", Value: 256},
+ {Name: "GUE_PFLAG_REMCSUM", Value: 128},
{Name: "HCIBLOCKADDR", Value: 1074022630},
{Name: "HCIDEVDOWN", Value: 1074022602},
{Name: "HCIDEVRESET", Value: 1074022603},
@@ -26327,4 +26341,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "40c12d23c5c1e6c11e1ab13ed032c1e4dc0e684f"
+const revision_amd64 = "c4e271d66e2dfd758cf369682d72bbf3590dedd0"
diff --git a/sys/linux/arm.go b/sys/linux/arm.go
index 023cc1f77..3fefd8a93 100644
--- a/sys/linux/arm.go
+++ b/sys/linux/arm.go
@@ -2665,6 +2665,14 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "guehdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen", TypeSize: 1}, BitfieldLen: 5, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldOff: 6, BitfieldLen: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto_ctype", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_flags", FldName: "flags", TypeSize: 2}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "priv", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_prov_flags", TypeSize: 4}}}, Kind: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "hashlimit_cfg1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "hashlimit_cfg1", TypeSize: 32}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "xt_hashlimit_modes", FldName: "mode", TypeSize: 4}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "avg", TypeSize: 4}}},
@@ -10022,11 +10030,15 @@ var structDescs_arm = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "udp_extensions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
+ }}},
{Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, BigEndian: true}, Buf: "parent"},
&CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, BigEndian: true}, Kind: 1, Buf: "parent", Protocol: 17},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extensions", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "udp_extensions"}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
@@ -25426,4 +25438,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "6698d4a368f4947b3b613f838e2e403841d38070"
+const revision_arm = "07cef835f8b609cd2ffca0b97f77fa531c570b71"
diff --git a/sys/linux/arm64.go b/sys/linux/arm64.go
index b5ee6d960..0fe5313a5 100644
--- a/sys/linux/arm64.go
+++ b/sys/linux/arm64.go
@@ -2764,6 +2764,14 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "guehdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen", TypeSize: 1}, BitfieldLen: 5, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldOff: 6, BitfieldLen: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto_ctype", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{256}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "priv", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_prov_flags", TypeSize: 4}}, Vals: []uint64{128}}, Kind: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "hashlimit_cfg1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "hashlimit_cfg1", TypeSize: 32}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "xt_hashlimit_modes", FldName: "mode", TypeSize: 4}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "avg", TypeSize: 4}}},
@@ -10238,11 +10246,15 @@ var structDescs_arm64 = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "udp_extensions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
+ }}},
{Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, BigEndian: true}, Buf: "parent"},
&CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, BigEndian: true}, Kind: 1, Buf: "parent", Protocol: 17},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extensions", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "udp_extensions"}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
@@ -22505,6 +22517,8 @@ var consts_arm64 = []ConstValue{
{Name: "GIO_UNISCRNMAP", Value: 19305},
{Name: "GRND_NONBLOCK", Value: 1},
{Name: "GRND_RANDOM", Value: 2},
+ {Name: "GUE_FLAG_PRIV", Value: 256},
+ {Name: "GUE_PFLAG_REMCSUM", Value: 128},
{Name: "HCIBLOCKADDR", Value: 1074022630},
{Name: "HCIDEVDOWN", Value: 1074022602},
{Name: "HCIDEVRESET", Value: 1074022603},
@@ -25709,4 +25723,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "82423022bc7f184a88fcd00fbd20962f6dbbd57e"
+const revision_arm64 = "cac26d4197832d1b50b8b6ea469c8061b7405bc4"
diff --git a/sys/linux/ppc64le.go b/sys/linux/ppc64le.go
index 755521b07..4c9bee8e4 100644
--- a/sys/linux/ppc64le.go
+++ b/sys/linux/ppc64le.go
@@ -2758,6 +2758,14 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_group"},
&StructType{Key: StructKey{Name: "sockaddr_storage_in6"}, FldName: "gsr_source"},
}}},
+ {Key: StructKey{Name: "guehdr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen", TypeSize: 1}, BitfieldLen: 5, BitfieldMdl: true}, BitSize: 32, Buf: "parent"},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 1, BitfieldMdl: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "version", TypeSize: 1}, BitfieldOff: 6, BitfieldLen: 2}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto_ctype", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "priv", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "guehdr_prov_flags", TypeSize: 4}}, Vals: []uint64{2147483648}}, Kind: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "hashlimit_cfg1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "hashlimit_cfg1", TypeSize: 32}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "xt_hashlimit_modes", FldName: "mode", TypeSize: 4}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "avg", TypeSize: 4}}},
@@ -10093,11 +10101,15 @@ var structDescs_ppc64le = []*KeyedStruct{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f0", TypeSize: 4, ArgDir: 1}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_udp6", FldName: "f1", TypeSize: 4, ArgDir: 1}},
}}},
+ {Key: StructKey{Name: "udp_extensions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
+ }}},
{Key: StructKey{Name: "udp_packet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, BigEndian: true}, Kind: 2, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, BigEndian: true}, Buf: "parent"},
&CsumType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, BigEndian: true}, Kind: 1, Buf: "parent", Protocol: 17},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extensions", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "udp_extensions"}}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "udp_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
@@ -22272,6 +22284,8 @@ var consts_ppc64le = []ConstValue{
{Name: "GIO_UNISCRNMAP", Value: 19305},
{Name: "GRND_NONBLOCK", Value: 1},
{Name: "GRND_RANDOM", Value: 2},
+ {Name: "GUE_FLAG_PRIV", Value: 1},
+ {Name: "GUE_PFLAG_REMCSUM", Value: 2147483648},
{Name: "HCIBLOCKADDR", Value: 2147764454},
{Name: "HCIDEVDOWN", Value: 2147764426},
{Name: "HCIDEVRESET", Value: 2147764427},
@@ -25471,4 +25485,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "18c287ebbc9da2ff832292feccf65374879463b6"
+const revision_ppc64le = "d32421a63a0dd72f857a8cb4cdc483487132c60a"
diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt
index b046c9733..1f7902cc7 100644
--- a/sys/linux/vnet.txt
+++ b/sys/linux/vnet.txt
@@ -849,14 +849,33 @@ tcp_payload {
# https://tools.ietf.org/html/rfc768
# https://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_structure
+include <net/gue.h>
+
udp_packet {
src_port sock_port
dst_port sock_port
length len[parent, int16be]
csum csum[parent, pseudo, IPPROTO_UDP, int16be]
+ extensions array[udp_extensions]
data array[int8]
} [packed]
+udp_extensions [
+ guehdr guehdr
+] [varlen]
+
+guehdr {
+ hlen bytesize4[parent, int8:5]
+ control int8:1
+ version int8:2
+ proto_ctype int8
+ flags flags[guehdr_flags, int16]
+ priv array[flags[guehdr_prov_flags, int32], 0:1]
+} [packed]
+
+guehdr_flags = GUE_FLAG_PRIV
+guehdr_prov_flags = GUE_PFLAG_REMCSUM
+
################################################################################
###################################### GRE #####################################
################################################################################
diff --git a/sys/linux/vnet_386.const b/sys/linux/vnet_386.const
index e20a4b616..487ec34a7 100644
--- a/sys/linux/vnet_386.const
+++ b/sys/linux/vnet_386.const
@@ -174,6 +174,8 @@ ETH_P_WAN_PPP = 7
ETH_P_WCCP = 34878
ETH_P_X25 = 2053
ETH_P_XDSA = 248
+GUE_FLAG_PRIV = 256
+GUE_PFLAG_REMCSUM = 128
ICMPV6_ADDR_UNREACH = 3
ICMPV6_ADM_PROHIBITED = 1
ICMPV6_DEST_UNREACH = 1
diff --git a/sys/linux/vnet_amd64.const b/sys/linux/vnet_amd64.const
index e20a4b616..487ec34a7 100644
--- a/sys/linux/vnet_amd64.const
+++ b/sys/linux/vnet_amd64.const
@@ -174,6 +174,8 @@ ETH_P_WAN_PPP = 7
ETH_P_WCCP = 34878
ETH_P_X25 = 2053
ETH_P_XDSA = 248
+GUE_FLAG_PRIV = 256
+GUE_PFLAG_REMCSUM = 128
ICMPV6_ADDR_UNREACH = 3
ICMPV6_ADM_PROHIBITED = 1
ICMPV6_DEST_UNREACH = 1
diff --git a/sys/linux/vnet_arm64.const b/sys/linux/vnet_arm64.const
index e20a4b616..487ec34a7 100644
--- a/sys/linux/vnet_arm64.const
+++ b/sys/linux/vnet_arm64.const
@@ -174,6 +174,8 @@ ETH_P_WAN_PPP = 7
ETH_P_WCCP = 34878
ETH_P_X25 = 2053
ETH_P_XDSA = 248
+GUE_FLAG_PRIV = 256
+GUE_PFLAG_REMCSUM = 128
ICMPV6_ADDR_UNREACH = 3
ICMPV6_ADM_PROHIBITED = 1
ICMPV6_DEST_UNREACH = 1
diff --git a/sys/linux/vnet_ppc64le.const b/sys/linux/vnet_ppc64le.const
index e20a4b616..bd122eee4 100644
--- a/sys/linux/vnet_ppc64le.const
+++ b/sys/linux/vnet_ppc64le.const
@@ -174,6 +174,8 @@ ETH_P_WAN_PPP = 7
ETH_P_WCCP = 34878
ETH_P_X25 = 2053
ETH_P_XDSA = 248
+GUE_FLAG_PRIV = 1
+GUE_PFLAG_REMCSUM = 2147483648
ICMPV6_ADDR_UNREACH = 3
ICMPV6_ADM_PROHIBITED = 1
ICMPV6_DEST_UNREACH = 1