From dde158e0af7bc1acf328d393a1fcb4eca60a5dfe Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 18 Jun 2018 19:45:49 +0200 Subject: sys/linux: refine xdp description Split sockaddr_xdp for bind. Bind accepts another sock_xdp in addr. Without the split getsockaddr "can" create sock_xdp's because it returns generic sockaddr which contains all addresses, including sockaddr_xdp, which in turn contains sock_xdp. --- sys/linux/gen/386.go | 17 ++++++++++++----- sys/linux/gen/amd64.go | 17 ++++++++++++----- sys/linux/gen/arm.go | 17 ++++++++++++----- sys/linux/gen/arm64.go | 17 ++++++++++++----- sys/linux/gen/ppc64le.go | 17 ++++++++++++----- sys/linux/socket_xdp.txt | 10 +++++++++- 6 files changed, 69 insertions(+), 26 deletions(-) (limited to 'sys') diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go index ad71989e1..8930f72e3 100644 --- a/sys/linux/gen/386.go +++ b/sys/linux/gen/386.go @@ -15137,21 +15137,28 @@ var structDescs_386 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 1}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 1}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 1}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 1}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 2}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 2}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 2}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2}}}, + }}}, + {Key: StructKey{Name: "sockaddr_xdp_bind"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp_bind", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2}}, Val: 44}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, }}}, {Key: StructKey{Name: "space_resv"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "space_resv", TypeSize: 48}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "l_type", TypeSize: 2}}}, @@ -19930,7 +19937,7 @@ var syscalls_386 = []*Syscall{ }}, {NR: 361, Name: "bind$xdp", CallName: "bind", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "fd", TypeSize: 4}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp_bind"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Buf: "addr"}, }}, {NR: 357, Name: "bpf$BPF_GET_MAP_INFO", CallName: "bpf", Args: []Type{ @@ -36714,4 +36721,4 @@ var consts_386 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "ce1fd419049f0fae706b5bffe64e425e739b31e0" +const revision_386 = "0e6a1736718141be72dd878068a421fea5189e8f" diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 9f495e306..a7af982e3 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -15404,21 +15404,28 @@ var structDescs_amd64 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 1}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 1}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 1}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 1}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 2}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 2}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 2}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2}}}, + }}}, + {Key: StructKey{Name: "sockaddr_xdp_bind"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp_bind", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2}}, Val: 44}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, }}}, {Key: StructKey{Name: "space_resv"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "space_resv", TypeSize: 48}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "l_type", TypeSize: 2}}}, @@ -20371,7 +20378,7 @@ var syscalls_amd64 = []*Syscall{ }}, {NR: 49, Name: "bind$xdp", CallName: "bind", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "fd", TypeSize: 4}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp_bind"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Buf: "addr"}, }}, {NR: 321, Name: "bpf$BPF_GET_MAP_INFO", CallName: "bpf", Args: []Type{ @@ -37399,4 +37406,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "e38763f2db8f15ab6e56da5f3ff0b17982f65b95" +const revision_amd64 = "82afcf536c9fe59ad5ff5eeafc5f6cc92f10f483" diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go index 821f7e5a3..6d39ed9d6 100644 --- a/sys/linux/gen/arm.go +++ b/sys/linux/gen/arm.go @@ -15006,21 +15006,28 @@ var structDescs_arm = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 1}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 1}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 1}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 1}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 2}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 2}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 2}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2}}}, + }}}, + {Key: StructKey{Name: "sockaddr_xdp_bind"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp_bind", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2}}, Val: 44}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, }}}, {Key: StructKey{Name: "space_resv"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "space_resv", TypeSize: 48}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "l_type", TypeSize: 2}}}, @@ -19826,7 +19833,7 @@ var syscalls_arm = []*Syscall{ }}, {NR: 282, Name: "bind$xdp", CallName: "bind", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "fd", TypeSize: 4}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp_bind"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Buf: "addr"}, }}, {NR: 386, Name: "bpf$BPF_GET_MAP_INFO", CallName: "bpf", Args: []Type{ @@ -36572,4 +36579,4 @@ var consts_arm = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "04d8b88574ed69df06b61443822f4faf11ba462e" +const revision_arm = "50ea1d839a20210c30de6527e1f822af449e3c3b" diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go index 830976eb7..d704389d5 100644 --- a/sys/linux/gen/arm64.go +++ b/sys/linux/gen/arm64.go @@ -15195,21 +15195,28 @@ var structDescs_arm64 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 1}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 1}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 1}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 1}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 2}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 2}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 2}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2}}}, + }}}, + {Key: StructKey{Name: "sockaddr_xdp_bind"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp_bind", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2}}, Val: 44}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, }}}, {Key: StructKey{Name: "space_resv"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "space_resv", TypeSize: 48}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "l_type", TypeSize: 2}}}, @@ -20130,7 +20137,7 @@ var syscalls_arm64 = []*Syscall{ }}, {NR: 200, Name: "bind$xdp", CallName: "bind", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "fd", TypeSize: 4}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp_bind"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Buf: "addr"}, }}, {NR: 280, Name: "bpf$BPF_GET_MAP_INFO", CallName: "bpf", Args: []Type{ @@ -36764,4 +36771,4 @@ var consts_arm64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "40babaee5d693fdd03746ce87a73990926352eec" +const revision_arm64 = "fd08fc3e4dd89e5c2addde8d343893d2b75c27b1" diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go index 9e5917976..b63ab74f5 100644 --- a/sys/linux/gen/ppc64le.go +++ b/sys/linux/gen/ppc64le.go @@ -15133,21 +15133,28 @@ var structDescs_ppc64le = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 1}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 1}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 1}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 1}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 1}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 1}}}, }}}, {Key: StructKey{Name: "sockaddr_xdp", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp", TypeSize: 16, ArgDir: 2}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2, ArgDir: 2}}, Val: 44}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4, ArgDir: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4, ArgDir: 2}}, Kind: 2, RangeEnd: 64}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2, IsOptional: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_shared_umem_fd", TypeSize: 4, ArgDir: 2}}}, + }}}, + {Key: StructKey{Name: "sockaddr_xdp_bind"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_xdp_bind", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sxdp_family", TypeSize: 2}}, Val: 44}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sxdp_flags", FldName: "sxdp_flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "sxdp_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sxdp_queue_id", TypeSize: 4}}, Kind: 2, RangeEnd: 64}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "sxdp_shared_umem_fd", TypeSize: 4, IsOptional: true}}, }}}, {Key: StructKey{Name: "space_resv"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "space_resv", TypeSize: 48}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "l_type", TypeSize: 2}}}, @@ -19200,7 +19207,7 @@ var syscalls_ppc64le = []*Syscall{ }}, {NR: 327, Name: "bind$xdp", CallName: "bind", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_xdp", FldName: "fd", TypeSize: 4}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sockaddr_xdp_bind"}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Buf: "addr"}, }}, {NR: 361, Name: "bpf$BPF_GET_MAP_INFO", CallName: "bpf", Args: []Type{ @@ -34186,4 +34193,4 @@ var consts_ppc64le = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "7901cf563a8493ad6e2f2f55d35bedbac2777c4e" +const revision_ppc64le = "155130f5e0b881de4212bf35ed02389a6df2b276" diff --git a/sys/linux/socket_xdp.txt b/sys/linux/socket_xdp.txt index 0034a948e..564fe2078 100644 --- a/sys/linux/socket_xdp.txt +++ b/sys/linux/socket_xdp.txt @@ -10,7 +10,7 @@ include resource sock_xdp[sock] socket$xdp(domain const[AF_XDP], type const[SOCK_RAW], proto const[0]) sock_xdp -bind$xdp(fd sock_xdp, addr ptr[in, sockaddr_xdp], len bytesize[addr]) +bind$xdp(fd sock_xdp, addr ptr[in, sockaddr_xdp_bind], len bytesize[addr]) sendmsg$xdp(fd sock_xdp, msg ptr[in, msghdr_xdp], f flags[send_flags]) mmap$xdp(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd sock_xdp, offset flags[xdp_mmap_offsets]) @@ -27,6 +27,14 @@ xdp_mmap_offsets = XDP_PGOFF_RX_RING, XDP_PGOFF_TX_RING, XDP_UMEM_PGOFF_FILL_RIN xdp_ring_sizes = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 1048576, 2097152, 16777216 sockaddr_xdp { + sxdp_family const[AF_XDP, int16] + sxdp_flags flags[sxdp_flags, int16] + sxdp_ifindex ifindex + sxdp_queue_id int32[0:64] + sxdp_shared_umem_fd const[0, int32] +} + +sockaddr_xdp_bind { sxdp_family const[AF_XDP, int16] sxdp_flags flags[sxdp_flags, int16] sxdp_ifindex ifindex -- cgit mrf-deployment