aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--executor/defs.h12
-rw-r--r--sys/linux/gen/386.go65
-rw-r--r--sys/linux/gen/amd64.go65
-rw-r--r--sys/linux/gen/arm.go65
-rw-r--r--sys/linux/gen/arm64.go65
-rw-r--r--sys/linux/gen/mips64le.go65
-rw-r--r--sys/linux/gen/ppc64le.go65
-rw-r--r--sys/linux/socket_netlink_generic_wireguard.txt54
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_386.const13
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_amd64.const13
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_arm.const13
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_arm64.const13
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_mips64le.const13
-rw-r--r--sys/linux/socket_netlink_generic_wireguard_ppc64le.const13
-rw-r--r--sys/linux/test/udp22
-rw-r--r--sys/linux/test/wireguard2
-rw-r--r--sys/linux/vnet.txt14
17 files changed, 505 insertions, 47 deletions
diff --git a/executor/defs.h b/executor/defs.h
index b9e8cef54..4f4850f8f 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -70,7 +70,7 @@
#if GOARCH_386
#define GOARCH "386"
-#define SYZ_REVISION "5b9e0b4a8e15ef119c63265da52f68f5f3fa63c5"
+#define SYZ_REVISION "04fc8973b69dbf4979ab879e07778fc02b6e5a6c"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "684bea62ae81e6704ad225e6cfe4f84ea99db882"
+#define SYZ_REVISION "3f6c136a66718444baa514281669846d8fe2aa16"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
#if GOARCH_arm
#define GOARCH "arm"
-#define SYZ_REVISION "15c5ae6e6a0f930da2ac8465125147f2ac5fa492"
+#define SYZ_REVISION "2b0679751c8799cba32f6803fdd37eba5cb8355b"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "93bd7b3f23f14993a276b1b8b8246fd3038c4777"
+#define SYZ_REVISION "0f791c98835aa79e3c5ebbaadda38e011f07a98e"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -110,7 +110,7 @@
#if GOARCH_mips64le
#define GOARCH "mips64le"
-#define SYZ_REVISION "583c3558fad43c0f407283ec73c790c9dade4450"
+#define SYZ_REVISION "6d1455a98c4c2b4ea29cce95ff8395c5d94f15c0"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -120,7 +120,7 @@
#if GOARCH_ppc64le
#define GOARCH "ppc64le"
-#define SYZ_REVISION "a95e16cebdc8b39e62be936233a10841b6b124b0"
+#define SYZ_REVISION "b07cf7921d128f13154b3db793acd4b11e6e1bec"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 9f4940ed8..960a0feca 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -8291,6 +8291,10 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -13872,6 +13876,38 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -42764,16 +42800,17 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -45533,6 +45570,12 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -66628,6 +66671,8 @@ var consts_386 = []ConstValue{
{"CMTPGETCONNINFO", 2147763155},
{"CMTPGETCONNLIST", 2147763154},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -69626,6 +69671,10 @@ var consts_386 = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -70884,8 +70933,12 @@ var consts_386 = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -75825,4 +75878,4 @@ var consts_386 = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_386 = "5b9e0b4a8e15ef119c63265da52f68f5f3fa63c5"
+const revision_386 = "04fc8973b69dbf4979ab879e07778fc02b6e5a6c"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index ccd1c2599..affed1c06 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -8431,6 +8431,10 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -14040,6 +14044,38 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -43533,16 +43569,17 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -46325,6 +46362,12 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -67574,6 +67617,8 @@ var consts_amd64 = []ConstValue{
{"CMTPGETCONNINFO", 2147763155},
{"CMTPGETCONNLIST", 2147763154},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -70572,6 +70617,10 @@ var consts_amd64 = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -71830,8 +71879,12 @@ var consts_amd64 = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -76785,4 +76838,4 @@ var consts_amd64 = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_amd64 = "684bea62ae81e6704ad225e6cfe4f84ea99db882"
+const revision_amd64 = "3f6c136a66718444baa514281669846d8fe2aa16"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index a5a161eee..9f344d7ca 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -8325,6 +8325,10 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -13728,6 +13732,38 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -42647,16 +42683,17 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -45407,6 +45444,12 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -66345,6 +66388,8 @@ var consts_arm = []ConstValue{
{"CMTPGETCONNINFO", 2147763155},
{"CMTPGETCONNLIST", 2147763154},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -69292,6 +69337,10 @@ var consts_arm = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -70548,8 +70597,12 @@ var consts_arm = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -75477,4 +75530,4 @@ var consts_arm = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_arm = "15c5ae6e6a0f930da2ac8465125147f2ac5fa492"
+const revision_arm = "2b0679751c8799cba32f6803fdd37eba5cb8355b"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 7f43b9b3e..efbfd426b 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -8431,6 +8431,10 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -13849,6 +13853,38 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -43342,16 +43378,17 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -46109,6 +46146,12 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -67012,6 +67055,8 @@ var consts_arm64 = []ConstValue{
{"CMTPGETCONNINFO", 2147763155},
{"CMTPGETCONNLIST", 2147763154},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -69969,6 +70014,10 @@ var consts_arm64 = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -71227,8 +71276,12 @@ var consts_arm64 = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -76130,4 +76183,4 @@ var consts_arm64 = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_arm64 = "93bd7b3f23f14993a276b1b8b8246fd3038c4777"
+const revision_arm64 = "0f791c98835aa79e3c5ebbaadda38e011f07a98e"
diff --git a/sys/linux/gen/mips64le.go b/sys/linux/gen/mips64le.go
index 7df390cd7..40fab0789 100644
--- a/sys/linux/gen/mips64le.go
+++ b/sys/linux/gen/mips64le.go
@@ -8428,6 +8428,10 @@ var structDescs_mips64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -13793,6 +13797,38 @@ var structDescs_mips64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -43234,16 +43270,17 @@ var structDescs_mips64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -45199,6 +45236,12 @@ var structDescs_mips64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -65704,6 +65747,8 @@ var consts_mips64le = []ConstValue{
{"CMTPGETCONNINFO", 1074021331},
{"CMTPGETCONNLIST", 1074021330},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -68557,6 +68602,10 @@ var consts_mips64le = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -69813,8 +69862,12 @@ var consts_mips64le = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -73791,4 +73844,4 @@ var consts_mips64le = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_mips64le = "583c3558fad43c0f407283ec73c790c9dade4450"
+const revision_mips64le = "6d1455a98c4c2b4ea29cce95ff8395c5d94f15c0"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index e6e8c8eb4..887eb069c 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -8430,6 +8430,10 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_PDP_HASHSIZE, int16], int32]"}, FldName: "IFLA_GTP_PDP_HASHSIZE"},
&StructType{Key: StructKey{Name: "nlattr_t[const[IFLA_GTP_ROLE, int16], int32[0:2]]"}, FldName: "IFLA_GTP_ROLE"},
}}},
+ {StructKey{Name: "gue_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "gue_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "guehdr"}, FldName: "hdr"},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ }}},
{StructKey{Name: "guehdr"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "guehdr", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "hlen"}, BitfieldLen: 5, BitfieldUnit: 1}, BitSize: 32, Path: []string{"parent"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "control"}, BitfieldOff: 5, BitfieldLen: 1, BitfieldUnit: 1}},
@@ -13795,6 +13799,38 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_ACT, int16], array[tca_actions]]"}, FldName: "TCA_MATCHALL_ACT"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_MATCHALL_FLAGS, int16], int32[0:8]]"}, FldName: "TCA_MATCHALL_FLAGS"},
}}},
+ {StructKey{Name: "message_data"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_data", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "key_idx", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "counter", TypeSize: 8}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_data", IsVarlen: true}},
+ }}},
+ {StructKey{Name: "message_handshake_cookie"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_cookie", TypeSize: 64}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "nonce", TypeSize: 24}, Kind: 1, RangeBegin: 24, RangeEnd: 24},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_cookie", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ }}},
+ {StructKey{Name: "message_handshake_initiation"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_initiation", TypeSize: 148}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_static", TypeSize: 48}, Kind: 1, RangeBegin: 48, RangeEnd: 48},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_timestamp", TypeSize: 28}, Kind: 1, RangeBegin: 28, RangeEnd: 28},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_handshake_response"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_handshake_response", TypeSize: 92}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 4}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sender_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "receiver_index", TypeSize: 4}}, Kind: 1, RangeEnd: 4},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "unencrypted_ephemeral", TypeSize: 32}, Kind: 1, RangeBegin: 32, RangeEnd: 32},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "encrypted_nothing", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "message_macs"}, FldName: "macs"},
+ }}},
+ {StructKey{Name: "message_macs"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "message_macs", TypeSize: 32}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac1", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "mac2", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ }}},
{StructKey{Name: "meta_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "meta_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_HDR, int16], tcf_meta_hdr]"}, FldName: "TCA_EM_META_HDR"},
&StructType{Key: StructKey{Name: "nlattr_t[const[TCA_EM_META_LVALUE, int16], array[tcf_em_meta_int_var]]"}, FldName: "TCA_EM_META_LVALUE"},
@@ -43220,16 +43256,17 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"list"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "list", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "udmabuf_create_item"}}},
}}},
- {StructKey{Name: "udp_extensions"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_extensions", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "guehdr"}, FldName: "guehdr"},
- }}},
{StructKey{Name: "udp_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_packet", IsVarlen: true}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "src_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16be", FldName: "dst_port", TypeSize: 2}, ArgFormat: 1}, Kind: 1, RangeBegin: 20000, RangeEnd: 20004},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "length", TypeSize: 2}, ArgFormat: 1}, Path: []string{"parent"}},
&CsumType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "csum", FldName: "csum", TypeSize: 2}, ArgFormat: 1}, 1, "parent", 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}},
+ &UnionType{Key: StructKey{Name: "udp_payload"}, FldName: "payload"},
+ }}},
+ {StructKey{Name: "udp_payload"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_payload", IsVarlen: true}, Fields: []Type{
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "opaque", IsVarlen: true}},
+ &StructType{Key: StructKey{Name: "gue_packet"}, FldName: "gue"},
+ &UnionType{Key: StructKey{Name: "wg_packet"}, FldName: "wg"},
}}},
{StructKey{Name: "udp_timeout_nla_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "udp_timeout_nla_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_tt[const[CTA_TIMEOUT_UDP_UNREPLIED, int16:14], 1, 0, int32be]"}, FldName: "CTA_TIMEOUT_UDP_UNREPLIED"},
@@ -46012,6 +46049,12 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "info_mask", TypeSize: 4}}},
&ArrayType{TypeCommon{TypeName: "array", FldName: "subtype_filter", TypeSize: 32}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, 1, 8, 8},
}}},
+ {StructKey{Name: "wg_packet"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "wg_packet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "message_handshake_initiation"}, FldName: "initiation"},
+ &StructType{Key: StructKey{Name: "message_handshake_response"}, FldName: "response"},
+ &StructType{Key: StructKey{Name: "message_handshake_cookie"}, FldName: "cookie"},
+ &StructType{Key: StructKey{Name: "message_data"}, FldName: "data"},
+ }}},
{StructKey{Name: "winsize"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "winsize", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "row", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "col", TypeSize: 2}}},
@@ -67034,6 +67077,8 @@ var consts_ppc64le = []ConstValue{
{"CMTPGETCONNINFO", 1074021331},
{"CMTPGETCONNLIST", 1074021330},
{"CONTAINER_ID_TYPE", 4},
+ {"COOKIE_LEN", 16},
+ {"COOKIE_NONCE_LEN", 24},
{"COUNT_INFO_SIZE", 12},
{"CRYPTOCFGA_PRIORITY_VAL", 1},
{"CRYPTO_ALG_ASYNC", 128},
@@ -69978,6 +70023,10 @@ var consts_ppc64le = []ConstValue{
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED", 16},
{"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE", 64},
{"MEMBARRIER_CMD_SHARED", 1},
+ {"MESSAGE_DATA", 4},
+ {"MESSAGE_HANDSHAKE_COOKIE", 3},
+ {"MESSAGE_HANDSHAKE_INITIATION", 1},
+ {"MESSAGE_HANDSHAKE_RESPONSE", 2},
{"MFD_ALLOW_SEALING", 2},
{"MFD_CLOEXEC", 1},
{"MFD_HUGETLB", 4},
@@ -71236,8 +71285,12 @@ var consts_ppc64le = []ConstValue{
{"NLM_F_REQUEST", 1},
{"NLM_F_ROOT", 256},
{"NMAGIC", 264},
+ {"NOISE_COOKIE_ENCRYPTED_LEN", 32},
+ {"NOISE_NOTHING_ENCRYPTED_LEN", 16},
+ {"NOISE_PUBLIC_KEY_ENCRYPTED_LEN", 48},
{"NOISE_PUBLIC_KEY_LEN", 32},
{"NOISE_SYMMETRIC_KEY_LEN", 32},
+ {"NOISE_TIMESTAMP_ENCRYPTED_LEN", 28},
{Name: "NO_CLIENT"},
{"NPMODE_DROP", 1},
{"NPMODE_ERROR", 2},
@@ -76127,4 +76180,4 @@ var consts_ppc64le = []ConstValue{
{"ethtool_per_queue_op_size", 128},
}
-const revision_ppc64le = "a95e16cebdc8b39e62be936233a10841b6b124b0"
+const revision_ppc64le = "b07cf7921d128f13154b3db793acd4b11e6e1bec"
diff --git a/sys/linux/socket_netlink_generic_wireguard.txt b/sys/linux/socket_netlink_generic_wireguard.txt
index fe06c1755..68a3f2826 100644
--- a/sys/linux/socket_netlink_generic_wireguard.txt
+++ b/sys/linux/socket_netlink_generic_wireguard.txt
@@ -2,6 +2,8 @@
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
include <linux/net.h>
+include <linux/socket.h>
+include <uapi/asm-generic/socket.h>
include <uapi/linux/if.h>
include <uapi/linux/netlink.h>
include <uapi/linux/genetlink.h>
@@ -78,3 +80,55 @@ wireguard_public_key [
wgdevice_flag = WGDEVICE_F_REPLACE_PEERS
wgpeer_flag = WGPEER_F_REMOVE_ME, WGPEER_F_REPLACE_ALLOWEDIPS, WGPEER_F_UPDATE_ONLY
wireguard_devname = "wg0", "wg1", "wg2"
+
+wg_packet [
+ initiation message_handshake_initiation
+ response message_handshake_response
+ cookie message_handshake_cookie
+ data message_data
+] [varlen]
+
+message_handshake_initiation {
+ type const[MESSAGE_HANDSHAKE_INITIATION, int32]
+# Not clear if these indexes are also generated randomly and we need to guess them or not.
+ sender_index int32[0:4]
+ unencrypted_ephemeral array[int8, NOISE_PUBLIC_KEY_LEN]
+ encrypted_static array[int8, NOISE_PUBLIC_KEY_ENCRYPTED_LEN]
+ encrypted_timestamp array[int8, NOISE_TIMESTAMP_ENCRYPTED_LEN]
+ macs message_macs
+}
+
+message_handshake_response {
+ type const[MESSAGE_HANDSHAKE_RESPONSE, int32]
+ sender_index int32[0:4]
+ receiver_index int32[0:4]
+ unencrypted_ephemeral array[int8, NOISE_PUBLIC_KEY_LEN]
+ encrypted_nothing array[int8, NOISE_NOTHING_ENCRYPTED_LEN]
+ macs message_macs
+}
+
+message_handshake_cookie {
+ type const[MESSAGE_HANDSHAKE_COOKIE, int32]
+ receiver_index int32[0:4]
+ nonce array[int8, COOKIE_NONCE_LEN]
+ encrypted_cookie array[int8, NOISE_COOKIE_ENCRYPTED_LEN]
+}
+
+message_data {
+ type const[MESSAGE_DATA, int32]
+# These are allocated randomly, so little chances guessing.
+ key_idx int32
+# This is used as chacha20poly1305 decryption nonce.
+ counter int64
+ encrypted_data array[int8]
+}
+
+message_macs {
+ mac1 array[int8, COOKIE_LEN]
+ mac2 array[int8, COOKIE_LEN]
+}
+
+define NOISE_PUBLIC_KEY_ENCRYPTED_LEN noise_encrypted_len(NOISE_PUBLIC_KEY_LEN)
+define NOISE_TIMESTAMP_ENCRYPTED_LEN noise_encrypted_len(NOISE_TIMESTAMP_LEN)
+define NOISE_COOKIE_ENCRYPTED_LEN noise_encrypted_len(COOKIE_LEN)
+define NOISE_NOTHING_ENCRYPTED_LEN noise_encrypted_len(0)
diff --git a/sys/linux/socket_netlink_generic_wireguard_386.const b/sys/linux/socket_netlink_generic_wireguard_386.const
index ff8368902..b90c6c39a 100644
--- a/sys/linux/socket_netlink_generic_wireguard_386.const
+++ b/sys/linux/socket_netlink_generic_wireguard_386.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 54
__NR_sendmsg = 370
+__NR_setsockopt = 366
diff --git a/sys/linux/socket_netlink_generic_wireguard_amd64.const b/sys/linux/socket_netlink_generic_wireguard_amd64.const
index 48f6f322c..8e00400f7 100644
--- a/sys/linux/socket_netlink_generic_wireguard_amd64.const
+++ b/sys/linux/socket_netlink_generic_wireguard_amd64.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 16
__NR_sendmsg = 46
+__NR_setsockopt = 54
diff --git a/sys/linux/socket_netlink_generic_wireguard_arm.const b/sys/linux/socket_netlink_generic_wireguard_arm.const
index 40e72e5e9..a206cf8c3 100644
--- a/sys/linux/socket_netlink_generic_wireguard_arm.const
+++ b/sys/linux/socket_netlink_generic_wireguard_arm.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 54
__NR_sendmsg = 296
+__NR_setsockopt = 294
diff --git a/sys/linux/socket_netlink_generic_wireguard_arm64.const b/sys/linux/socket_netlink_generic_wireguard_arm64.const
index d1669456a..62c6735a1 100644
--- a/sys/linux/socket_netlink_generic_wireguard_arm64.const
+++ b/sys/linux/socket_netlink_generic_wireguard_arm64.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 29
__NR_sendmsg = 211
+__NR_setsockopt = 208
diff --git a/sys/linux/socket_netlink_generic_wireguard_mips64le.const b/sys/linux/socket_netlink_generic_wireguard_mips64le.const
index 0b1aefd01..6b26c4845 100644
--- a/sys/linux/socket_netlink_generic_wireguard_mips64le.const
+++ b/sys/linux/socket_netlink_generic_wireguard_mips64le.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 5015
__NR_sendmsg = 5045
+__NR_setsockopt = 5053
diff --git a/sys/linux/socket_netlink_generic_wireguard_ppc64le.const b/sys/linux/socket_netlink_generic_wireguard_ppc64le.const
index 5f0d78095..721fdea2c 100644
--- a/sys/linux/socket_netlink_generic_wireguard_ppc64le.const
+++ b/sys/linux/socket_netlink_generic_wireguard_ppc64le.const
@@ -1,10 +1,22 @@
# AUTOGENERATED FILE
AF_INET = 2
AF_INET6 = 10
+COOKIE_LEN = 16
+COOKIE_NONCE_LEN = 24
IFNAMSIZ = 16
+MESSAGE_DATA = 4
+MESSAGE_HANDSHAKE_COOKIE = 3
+MESSAGE_HANDSHAKE_INITIATION = 1
+MESSAGE_HANDSHAKE_RESPONSE = 2
+NOISE_COOKIE_ENCRYPTED_LEN = 32
+NOISE_NOTHING_ENCRYPTED_LEN = 16
+NOISE_PUBLIC_KEY_ENCRYPTED_LEN = 48
NOISE_PUBLIC_KEY_LEN = 32
NOISE_SYMMETRIC_KEY_LEN = 32
+NOISE_TIMESTAMP_ENCRYPTED_LEN = 28
SIOCGIFINDEX = 35123
+SOL_SOCKET = 1
+SO_BINDTODEVICE = 25
WGALLOWEDIP_A_CIDR_MASK = 3
WGALLOWEDIP_A_FAMILY = 1
WGALLOWEDIP_A_IPADDR = 2
@@ -30,3 +42,4 @@ WG_CMD_GET_DEVICE = 0
WG_CMD_SET_DEVICE = 1
__NR_ioctl = 54
__NR_sendmsg = 341
+__NR_setsockopt = 339
diff --git a/sys/linux/test/udp2 b/sys/linux/test/udp2
index a0247700f..b8280ee85 100644
--- a/sys/linux/test/udp2
+++ b/sys/linux/test/udp2
@@ -2,5 +2,5 @@
r0 = socket$inet_udp(AUTO, AUTO, AUTO)
bind$inet(r0, &AUTO={AUTO, 0x4e20, @empty}, AUTO)
-syz_emit_ethernet(AUTO, &AUTO={@local, @empty, @void, {@ipv4={AUTO, @udp={{AUTO, AUTO, 0x0, 0x0, AUTO, 0x0, 0x0, 0x0, AUTO, 0x0, @empty, @empty, {[]}}, {0x0, 0x4e20, AUTO, 0x0, [], ""/10}}}}}, 0x0)
+syz_emit_ethernet(AUTO, &AUTO={@local, @empty, @void, {@ipv4={AUTO, @udp={{AUTO, AUTO, 0x0, 0x0, AUTO, 0x0, 0x0, 0x0, AUTO, 0x0, @empty, @empty, {[]}}, {0x0, 0x4e20, AUTO, 0x0, @opaque=""/10}}}}}, 0x0)
recvfrom(r0, &AUTO=""/10, AUTO, 0x0, 0x0, 0x0)
diff --git a/sys/linux/test/wireguard b/sys/linux/test/wireguard
new file mode 100644
index 000000000..1933bc969
--- /dev/null
+++ b/sys/linux/test/wireguard
@@ -0,0 +1,2 @@
+syz_emit_ethernet(AUTO, &AUTO={@local, @empty, @void, {@ipv4={AUTO, @udp={{AUTO, AUTO, 0x0, 0x0, AUTO, 0x0, 0x0, 0x0, AUTO, 0x0, @empty, @empty, {[]}}, {0x0, 0x4e22, AUTO, 0x0, @wg=@initiation={AUTO, 0x0, "", "", "", {"", ""}}}}}}}, 0x0)
+syz_emit_ethernet(AUTO, &AUTO={@local, @empty, @void, {@ipv4={AUTO, @udp={{AUTO, AUTO, 0x0, 0x0, AUTO, 0x0, 0x0, 0x0, AUTO, 0x0, @empty, @empty, {[]}}, {0x0, 0x4e22, AUTO, 0x0, @wg=@data={AUTO, 0x0, 0x0, ""/100}}}}}}, 0x0)
diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt
index 7ad9421e7..2dba9f768 100644
--- a/sys/linux/vnet.txt
+++ b/sys/linux/vnet.txt
@@ -845,14 +845,20 @@ udp_packet {
dst_port sock_port
length len[parent, int16be]
csum csum[parent, pseudo, IPPROTO_UDP, int16be]
- extensions array[udp_extensions]
- data array[int8]
+ payload udp_payload
} [packed]
-udp_extensions [
- guehdr guehdr
+udp_payload [
+ opaque array[int8]
+ gue gue_packet
+ wg wg_packet
] [varlen]
+gue_packet {
+ hdr guehdr
+ opaque array[int8]
+} [packed]
+
guehdr {
hlen bytesize4[parent, int8:5]
control int8:1