diff --git a/controllers/bpfman-agent/tcx-program.go b/controllers/bpfman-agent/tcx-program.go index 53207f705..cd7d01965 100644 --- a/controllers/bpfman-agent/tcx-program.go +++ b/controllers/bpfman-agent/tcx-program.go @@ -19,6 +19,7 @@ package bpfmanagent import ( "context" "fmt" + "k8s.io/utils/ptr" bpfmaniov1alpha1 "github.com/bpfman/bpfman-operator/apis/v1alpha1" bpfmanagentinternal "github.com/bpfman/bpfman-operator/controllers/bpfman-agent/internal" @@ -200,15 +201,21 @@ func (r *TcxProgramReconciler) getLoadRequest(bpfProgram *bpfmaniov1alpha1.BpfPr if err != nil { return nil, fmt.Errorf("failed to process bytecode selector: %v", err) } - + action := "last" + // Only if priority set to 0 we mark this program as first for any other value will be marked as "last" + if r.currentTcxProgram.Spec.Priority == 0 { + action = "first" + } loadRequest := gobpfman.LoadRequest{ Bytecode: bytecode, Name: r.currentTcxProgram.Spec.BpfFunctionName, ProgramType: uint32(internal.Tc), Attach: &gobpfman.AttachInfo{ - Info: &gobpfman.AttachInfo_TcAttachInfo{ - TcAttachInfo: &gobpfman.TCAttachInfo{ - Priority: r.currentTcxProgram.Spec.Priority, + Info: &gobpfman.AttachInfo_TcxAttachInfo{ + TcxAttachInfo: &gobpfman.TCXAttachInfo{ + LinkOrder: &gobpfman.LinkOrder{ + Action: ptr.To[string](action), + }, Iface: bpfProgram.Annotations[internal.TcxProgramInterface], Direction: r.currentTcxProgram.Spec.Direction, }, diff --git a/controllers/bpfman-agent/tcx-program_test.go b/controllers/bpfman-agent/tcx-program_test.go index 4c759343a..1f66c6bfa 100644 --- a/controllers/bpfman-agent/tcx-program_test.go +++ b/controllers/bpfman-agent/tcx-program_test.go @@ -18,6 +18,7 @@ package bpfmanagent import ( "context" + "k8s.io/utils/ptr" "testing" "github.com/google/go-cmp/cmp" @@ -167,10 +168,12 @@ func TestTcxProgramControllerCreate(t *testing.T) { Metadata: map[string]string{internal.UuidMetadataKey: string(uuid), internal.ProgramNameKey: name}, MapOwnerId: nil, Attach: &gobpfman.AttachInfo{ - Info: &gobpfman.AttachInfo_TcAttachInfo{ - TcAttachInfo: &gobpfman.TCAttachInfo{ - Iface: fakeInt, - Priority: 0, + Info: &gobpfman.AttachInfo_TcxAttachInfo{ + TcxAttachInfo: &gobpfman.TCXAttachInfo{ + Iface: fakeInt, + LinkOrder: &gobpfman.LinkOrder{ + Action: ptr.To[string]("first"), + }, Direction: direction, }, }, @@ -245,7 +248,7 @@ func TestTcxProgramControllerCreateMultiIntf(t *testing.T) { InterfaceSelector: bpfmaniov1alpha1.InterfaceSelector{ Interfaces: &fakeInts, }, - Priority: 0, + Priority: 10, Direction: direction, }, }, @@ -386,10 +389,12 @@ func TestTcxProgramControllerCreateMultiIntf(t *testing.T) { Metadata: map[string]string{internal.UuidMetadataKey: string(uuid0), internal.ProgramNameKey: name}, MapOwnerId: nil, Attach: &gobpfman.AttachInfo{ - Info: &gobpfman.AttachInfo_TcAttachInfo{ - TcAttachInfo: &gobpfman.TCAttachInfo{ - Iface: fakeInts[0], - Priority: 0, + Info: &gobpfman.AttachInfo_TcxAttachInfo{ + TcxAttachInfo: &gobpfman.TCXAttachInfo{ + Iface: fakeInts[0], + LinkOrder: &gobpfman.LinkOrder{ + Action: ptr.To[string]("last"), + }, Direction: direction, }, }, @@ -407,10 +412,12 @@ func TestTcxProgramControllerCreateMultiIntf(t *testing.T) { Metadata: map[string]string{internal.UuidMetadataKey: string(uuid1), internal.ProgramNameKey: name}, MapOwnerId: nil, Attach: &gobpfman.AttachInfo{ - Info: &gobpfman.AttachInfo_TcAttachInfo{ - TcAttachInfo: &gobpfman.TCAttachInfo{ - Iface: fakeInts[1], - Priority: 0, + Info: &gobpfman.AttachInfo_TcxAttachInfo{ + TcxAttachInfo: &gobpfman.TCXAttachInfo{ + Iface: fakeInts[1], + LinkOrder: &gobpfman.LinkOrder{ + Action: ptr.To[string]("last"), + }, Direction: direction, }, }, diff --git a/go.mod b/go.mod index ae02205a1..4f5ecbe05 100644 --- a/go.mod +++ b/go.mod @@ -88,3 +88,6 @@ require ( sigs.k8s.io/kind v0.23.0 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) + +// HACK +replace github.com/bpfman/bpfman => github.com/anfredette/bpfman v0.0.0-20240813140850-1c5cfc1fdc6b diff --git a/go.sum b/go.sum index b55f7edb0..ebff868b4 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,9 @@ +github.com/anfredette/bpfman v0.0.0-20240813140850-1c5cfc1fdc6b h1:zzAlgnksNpGE9cmZPKmeL/ia2wQLvSVJFJzKhaMRNFw= +github.com/anfredette/bpfman v0.0.0-20240813140850-1c5cfc1fdc6b/go.mod h1:ZBZc5wo+lEQA+w/89Sbjaw5VhuvuLTDS3a3yDjOl81o= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/bpfman/bpfman v0.5.0 h1:Q4RCeP8EM95AJKyFc2fhiPog3TzWVqrCS3lj19M7FoE= -github.com/bpfman/bpfman v0.5.0/go.mod h1:AizsT1VkMu7ddVT/7RzUcz83smfDuh0FRgzhkZHj6ZE= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= diff --git a/vendor/github.com/bpfman/bpfman/clients/gobpfman/v1/bpfman.pb.go b/vendor/github.com/bpfman/bpfman/clients/gobpfman/v1/bpfman.pb.go index 520ae2081..184bed8e4 100644 --- a/vendor/github.com/bpfman/bpfman/clients/gobpfman/v1/bpfman.pb.go +++ b/vendor/github.com/bpfman/bpfman/clients/gobpfman/v1/bpfman.pb.go @@ -573,6 +573,140 @@ func (x *TCAttachInfo) GetProceedOn() []int32 { return nil } +type LinkOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint32 `protobuf:"varint,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Fd *int32 `protobuf:"varint,2,opt,name=fd,proto3,oneof" json:"fd,omitempty"` + Action *string `protobuf:"bytes,3,opt,name=action,proto3,oneof" json:"action,omitempty"` + Revision *uint64 `protobuf:"varint,4,opt,name=revision,proto3,oneof" json:"revision,omitempty"` +} + +func (x *LinkOrder) Reset() { + *x = LinkOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_bpfman_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkOrder) ProtoMessage() {} + +func (x *LinkOrder) ProtoReflect() protoreflect.Message { + mi := &file_bpfman_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkOrder.ProtoReflect.Descriptor instead. +func (*LinkOrder) Descriptor() ([]byte, []int) { + return file_bpfman_proto_rawDescGZIP(), []int{6} +} + +func (x *LinkOrder) GetId() uint32 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *LinkOrder) GetFd() int32 { + if x != nil && x.Fd != nil { + return *x.Fd + } + return 0 +} + +func (x *LinkOrder) GetAction() string { + if x != nil && x.Action != nil { + return *x.Action + } + return "" +} + +func (x *LinkOrder) GetRevision() uint64 { + if x != nil && x.Revision != nil { + return *x.Revision + } + return 0 +} + +type TCXAttachInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Iface string `protobuf:"bytes,1,opt,name=iface,proto3" json:"iface,omitempty"` + Direction string `protobuf:"bytes,2,opt,name=direction,proto3" json:"direction,omitempty"` + LinkOrder *LinkOrder `protobuf:"bytes,3,opt,name=link_order,json=linkOrder,proto3,oneof" json:"link_order,omitempty"` +} + +func (x *TCXAttachInfo) Reset() { + *x = TCXAttachInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_bpfman_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TCXAttachInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TCXAttachInfo) ProtoMessage() {} + +func (x *TCXAttachInfo) ProtoReflect() protoreflect.Message { + mi := &file_bpfman_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TCXAttachInfo.ProtoReflect.Descriptor instead. +func (*TCXAttachInfo) Descriptor() ([]byte, []int) { + return file_bpfman_proto_rawDescGZIP(), []int{7} +} + +func (x *TCXAttachInfo) GetIface() string { + if x != nil { + return x.Iface + } + return "" +} + +func (x *TCXAttachInfo) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *TCXAttachInfo) GetLinkOrder() *LinkOrder { + if x != nil { + return x.LinkOrder + } + return nil +} + type TracepointAttachInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -584,7 +718,7 @@ type TracepointAttachInfo struct { func (x *TracepointAttachInfo) Reset() { *x = TracepointAttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[6] + mi := &file_bpfman_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -597,7 +731,7 @@ func (x *TracepointAttachInfo) String() string { func (*TracepointAttachInfo) ProtoMessage() {} func (x *TracepointAttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[6] + mi := &file_bpfman_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -610,7 +744,7 @@ func (x *TracepointAttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TracepointAttachInfo.ProtoReflect.Descriptor instead. func (*TracepointAttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{6} + return file_bpfman_proto_rawDescGZIP(), []int{8} } func (x *TracepointAttachInfo) GetTracepoint() string { @@ -634,7 +768,7 @@ type KprobeAttachInfo struct { func (x *KprobeAttachInfo) Reset() { *x = KprobeAttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[7] + mi := &file_bpfman_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -647,7 +781,7 @@ func (x *KprobeAttachInfo) String() string { func (*KprobeAttachInfo) ProtoMessage() {} func (x *KprobeAttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[7] + mi := &file_bpfman_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -660,7 +794,7 @@ func (x *KprobeAttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use KprobeAttachInfo.ProtoReflect.Descriptor instead. func (*KprobeAttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{7} + return file_bpfman_proto_rawDescGZIP(), []int{9} } func (x *KprobeAttachInfo) GetFnName() string { @@ -707,7 +841,7 @@ type UprobeAttachInfo struct { func (x *UprobeAttachInfo) Reset() { *x = UprobeAttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[8] + mi := &file_bpfman_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -720,7 +854,7 @@ func (x *UprobeAttachInfo) String() string { func (*UprobeAttachInfo) ProtoMessage() {} func (x *UprobeAttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[8] + mi := &file_bpfman_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -733,7 +867,7 @@ func (x *UprobeAttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UprobeAttachInfo.ProtoReflect.Descriptor instead. func (*UprobeAttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{8} + return file_bpfman_proto_rawDescGZIP(), []int{10} } func (x *UprobeAttachInfo) GetFnName() string { @@ -789,7 +923,7 @@ type FentryAttachInfo struct { func (x *FentryAttachInfo) Reset() { *x = FentryAttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[9] + mi := &file_bpfman_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -802,7 +936,7 @@ func (x *FentryAttachInfo) String() string { func (*FentryAttachInfo) ProtoMessage() {} func (x *FentryAttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[9] + mi := &file_bpfman_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -815,7 +949,7 @@ func (x *FentryAttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FentryAttachInfo.ProtoReflect.Descriptor instead. func (*FentryAttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{9} + return file_bpfman_proto_rawDescGZIP(), []int{11} } func (x *FentryAttachInfo) GetFnName() string { @@ -836,7 +970,7 @@ type FexitAttachInfo struct { func (x *FexitAttachInfo) Reset() { *x = FexitAttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[10] + mi := &file_bpfman_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -849,7 +983,7 @@ func (x *FexitAttachInfo) String() string { func (*FexitAttachInfo) ProtoMessage() {} func (x *FexitAttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[10] + mi := &file_bpfman_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -862,7 +996,7 @@ func (x *FexitAttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FexitAttachInfo.ProtoReflect.Descriptor instead. func (*FexitAttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{10} + return file_bpfman_proto_rawDescGZIP(), []int{12} } func (x *FexitAttachInfo) GetFnName() string { @@ -886,13 +1020,14 @@ type AttachInfo struct { // *AttachInfo_UprobeAttachInfo // *AttachInfo_FentryAttachInfo // *AttachInfo_FexitAttachInfo + // *AttachInfo_TcxAttachInfo Info isAttachInfo_Info `protobuf_oneof:"info"` } func (x *AttachInfo) Reset() { *x = AttachInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[11] + mi := &file_bpfman_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -905,7 +1040,7 @@ func (x *AttachInfo) String() string { func (*AttachInfo) ProtoMessage() {} func (x *AttachInfo) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[11] + mi := &file_bpfman_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -918,7 +1053,7 @@ func (x *AttachInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AttachInfo.ProtoReflect.Descriptor instead. func (*AttachInfo) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{11} + return file_bpfman_proto_rawDescGZIP(), []int{13} } func (m *AttachInfo) GetInfo() isAttachInfo_Info { @@ -977,6 +1112,13 @@ func (x *AttachInfo) GetFexitAttachInfo() *FexitAttachInfo { return nil } +func (x *AttachInfo) GetTcxAttachInfo() *TCXAttachInfo { + if x, ok := x.GetInfo().(*AttachInfo_TcxAttachInfo); ok { + return x.TcxAttachInfo + } + return nil +} + type isAttachInfo_Info interface { isAttachInfo_Info() } @@ -1009,6 +1151,10 @@ type AttachInfo_FexitAttachInfo struct { FexitAttachInfo *FexitAttachInfo `protobuf:"bytes,8,opt,name=fexit_attach_info,json=fexitAttachInfo,proto3,oneof"` } +type AttachInfo_TcxAttachInfo struct { + TcxAttachInfo *TCXAttachInfo `protobuf:"bytes,9,opt,name=tcx_attach_info,json=tcxAttachInfo,proto3,oneof"` +} + func (*AttachInfo_XdpAttachInfo) isAttachInfo_Info() {} func (*AttachInfo_TcAttachInfo) isAttachInfo_Info() {} @@ -1023,6 +1169,8 @@ func (*AttachInfo_FentryAttachInfo) isAttachInfo_Info() {} func (*AttachInfo_FexitAttachInfo) isAttachInfo_Info() {} +func (*AttachInfo_TcxAttachInfo) isAttachInfo_Info() {} + type LoadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1041,7 +1189,7 @@ type LoadRequest struct { func (x *LoadRequest) Reset() { *x = LoadRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[12] + mi := &file_bpfman_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1054,7 +1202,7 @@ func (x *LoadRequest) String() string { func (*LoadRequest) ProtoMessage() {} func (x *LoadRequest) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[12] + mi := &file_bpfman_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1067,7 +1215,7 @@ func (x *LoadRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LoadRequest.ProtoReflect.Descriptor instead. func (*LoadRequest) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{12} + return file_bpfman_proto_rawDescGZIP(), []int{14} } func (x *LoadRequest) GetBytecode() *BytecodeLocation { @@ -1138,7 +1286,7 @@ type LoadResponse struct { func (x *LoadResponse) Reset() { *x = LoadResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[13] + mi := &file_bpfman_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1151,7 +1299,7 @@ func (x *LoadResponse) String() string { func (*LoadResponse) ProtoMessage() {} func (x *LoadResponse) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[13] + mi := &file_bpfman_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1164,7 +1312,7 @@ func (x *LoadResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LoadResponse.ProtoReflect.Descriptor instead. func (*LoadResponse) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{13} + return file_bpfman_proto_rawDescGZIP(), []int{15} } func (x *LoadResponse) GetInfo() *ProgramInfo { @@ -1192,7 +1340,7 @@ type UnloadRequest struct { func (x *UnloadRequest) Reset() { *x = UnloadRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[14] + mi := &file_bpfman_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1205,7 +1353,7 @@ func (x *UnloadRequest) String() string { func (*UnloadRequest) ProtoMessage() {} func (x *UnloadRequest) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[14] + mi := &file_bpfman_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1218,7 +1366,7 @@ func (x *UnloadRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnloadRequest.ProtoReflect.Descriptor instead. func (*UnloadRequest) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{14} + return file_bpfman_proto_rawDescGZIP(), []int{16} } func (x *UnloadRequest) GetId() uint32 { @@ -1237,7 +1385,7 @@ type UnloadResponse struct { func (x *UnloadResponse) Reset() { *x = UnloadResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[15] + mi := &file_bpfman_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1250,7 +1398,7 @@ func (x *UnloadResponse) String() string { func (*UnloadResponse) ProtoMessage() {} func (x *UnloadResponse) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[15] + mi := &file_bpfman_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1263,7 +1411,7 @@ func (x *UnloadResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnloadResponse.ProtoReflect.Descriptor instead. func (*UnloadResponse) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{15} + return file_bpfman_proto_rawDescGZIP(), []int{17} } type ListRequest struct { @@ -1279,7 +1427,7 @@ type ListRequest struct { func (x *ListRequest) Reset() { *x = ListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[16] + mi := &file_bpfman_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1292,7 +1440,7 @@ func (x *ListRequest) String() string { func (*ListRequest) ProtoMessage() {} func (x *ListRequest) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[16] + mi := &file_bpfman_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1305,7 +1453,7 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. func (*ListRequest) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{16} + return file_bpfman_proto_rawDescGZIP(), []int{18} } func (x *ListRequest) GetProgramType() uint32 { @@ -1340,7 +1488,7 @@ type ListResponse struct { func (x *ListResponse) Reset() { *x = ListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[17] + mi := &file_bpfman_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1353,7 +1501,7 @@ func (x *ListResponse) String() string { func (*ListResponse) ProtoMessage() {} func (x *ListResponse) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[17] + mi := &file_bpfman_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1366,7 +1514,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. func (*ListResponse) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{17} + return file_bpfman_proto_rawDescGZIP(), []int{19} } func (x *ListResponse) GetResults() []*ListResponse_ListResult { @@ -1387,7 +1535,7 @@ type PullBytecodeRequest struct { func (x *PullBytecodeRequest) Reset() { *x = PullBytecodeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[18] + mi := &file_bpfman_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1400,7 +1548,7 @@ func (x *PullBytecodeRequest) String() string { func (*PullBytecodeRequest) ProtoMessage() {} func (x *PullBytecodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[18] + mi := &file_bpfman_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1413,7 +1561,7 @@ func (x *PullBytecodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PullBytecodeRequest.ProtoReflect.Descriptor instead. func (*PullBytecodeRequest) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{18} + return file_bpfman_proto_rawDescGZIP(), []int{20} } func (x *PullBytecodeRequest) GetImage() *BytecodeImage { @@ -1432,7 +1580,7 @@ type PullBytecodeResponse struct { func (x *PullBytecodeResponse) Reset() { *x = PullBytecodeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[19] + mi := &file_bpfman_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1445,7 +1593,7 @@ func (x *PullBytecodeResponse) String() string { func (*PullBytecodeResponse) ProtoMessage() {} func (x *PullBytecodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[19] + mi := &file_bpfman_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1458,7 +1606,7 @@ func (x *PullBytecodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PullBytecodeResponse.ProtoReflect.Descriptor instead. func (*PullBytecodeResponse) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{19} + return file_bpfman_proto_rawDescGZIP(), []int{21} } type GetRequest struct { @@ -1472,7 +1620,7 @@ type GetRequest struct { func (x *GetRequest) Reset() { *x = GetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[20] + mi := &file_bpfman_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1485,7 +1633,7 @@ func (x *GetRequest) String() string { func (*GetRequest) ProtoMessage() {} func (x *GetRequest) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[20] + mi := &file_bpfman_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1498,7 +1646,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead. func (*GetRequest) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{20} + return file_bpfman_proto_rawDescGZIP(), []int{22} } func (x *GetRequest) GetId() uint32 { @@ -1520,7 +1668,7 @@ type GetResponse struct { func (x *GetResponse) Reset() { *x = GetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[21] + mi := &file_bpfman_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1533,7 +1681,7 @@ func (x *GetResponse) String() string { func (*GetResponse) ProtoMessage() {} func (x *GetResponse) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[21] + mi := &file_bpfman_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1546,7 +1694,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. func (*GetResponse) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{21} + return file_bpfman_proto_rawDescGZIP(), []int{23} } func (x *GetResponse) GetInfo() *ProgramInfo { @@ -1575,7 +1723,7 @@ type ListResponse_ListResult struct { func (x *ListResponse_ListResult) Reset() { *x = ListResponse_ListResult{} if protoimpl.UnsafeEnabled { - mi := &file_bpfman_proto_msgTypes[27] + mi := &file_bpfman_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1588,7 +1736,7 @@ func (x *ListResponse_ListResult) String() string { func (*ListResponse_ListResult) ProtoMessage() {} func (x *ListResponse_ListResult) ProtoReflect() protoreflect.Message { - mi := &file_bpfman_proto_msgTypes[27] + mi := &file_bpfman_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1601,7 +1749,7 @@ func (x *ListResponse_ListResult) ProtoReflect() protoreflect.Message { // Deprecated: Use ListResponse_ListResult.ProtoReflect.Descriptor instead. func (*ListResponse_ListResult) Descriptor() ([]byte, []int) { - return file_bpfman_proto_rawDescGZIP(), []int{17, 0} + return file_bpfman_proto_rawDescGZIP(), []int{19, 0} } func (x *ListResponse_ListResult) GetInfo() *ProgramInfo { @@ -1714,191 +1862,214 @@ var file_bpfman_proto_rawDesc = []byte{ 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x36, 0x0a, - 0x14, 0x54, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x10, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x74, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, - 0x65, 0x74, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, - 0x70, 0x69, 0x64, 0x22, 0xe3, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x66, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, - 0x62, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, - 0x62, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x10, 0x46, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, - 0x07, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x66, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x0f, 0x46, 0x65, 0x78, 0x69, 0x74, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xa3, 0x04, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x78, 0x64, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x70, 0x66, - 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x58, 0x44, 0x50, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x78, 0x64, 0x70, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x43, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x63, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x57, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x4b, 0x0a, 0x12, 0x6b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, - 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x10, 0x6b, 0x70, 0x72, 0x6f, - 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x12, - 0x75, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x10, 0x75, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x12, 0x66, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x48, 0x00, 0x52, 0x10, 0x66, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x66, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, - 0x78, 0x69, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, - 0x0f, 0x66, 0x65, 0x78, 0x69, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x42, 0x06, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x8d, 0x04, 0x0a, 0x0b, 0x4c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, - 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x70, 0x66, 0x6d, - 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0b, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, - 0x61, 0x70, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3d, 0x0a, 0x0f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x99, 0x01, + 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x13, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x13, 0x0a, 0x02, 0x66, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x02, + 0x66, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x66, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x0d, 0x54, 0x43, + 0x58, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x66, 0x61, 0x63, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x38, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x6e, + 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x10, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, + 0x62, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, + 0x62, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x64, 0x22, 0xe3, + 0x01, 0x0a, 0x10, 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x66, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x15, 0x0a, + 0x03, 0x70, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x70, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, + 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x5f, 0x70, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x10, 0x46, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x2a, 0x0a, 0x0f, 0x46, 0x65, 0x78, 0x69, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe7, 0x04, + 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, + 0x78, 0x64, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x58, 0x44, 0x50, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, + 0x00, 0x52, 0x0d, 0x78, 0x64, 0x70, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3f, 0x0a, 0x0e, 0x74, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x43, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x57, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x12, 0x6b, 0x70, + 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x10, 0x6b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x12, 0x75, 0x70, 0x72, 0x6f, 0x62, + 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x48, 0x00, 0x52, 0x10, 0x75, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x12, 0x66, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, + 0x10, 0x66, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x66, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, + 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x78, 0x69, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x65, 0x78, 0x69, + 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x74, + 0x63, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x43, 0x58, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x0d, 0x74, 0x63, 0x78, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x06, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x8d, 0x04, 0x0a, 0x0b, 0x4c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x70, 0x66, 0x6d, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0b, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, + 0x70, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x70, 0x5f, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0c, 0x4c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x70, 0x66, 0x6d, - 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x1f, 0x0a, 0x0d, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, - 0x0a, 0x14, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, - 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x62, - 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x6f, - 0x6e, 0x6c, 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x45, 0x0a, 0x13, 0x50, 0x75, - 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x0a, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, + 0x0a, 0x0f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0c, 0x4c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, - 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x32, 0xc0, 0x02, 0x0a, 0x06, 0x42, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x4c, - 0x6f, 0x61, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x70, - 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, - 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x62, 0x70, - 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, - 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x2e, 0x62, - 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x62, - 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x70, - 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x2f, 0x67, 0x6f, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x1f, 0x0a, 0x0d, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x14, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x62, + 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x4f, 0x6e, 0x6c, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62, + 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x62, 0x70, + 0x66, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x45, 0x0a, 0x13, 0x50, 0x75, 0x6c, + 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x22, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, + 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x32, + 0xc0, 0x02, 0x0a, 0x06, 0x42, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x4c, 0x6f, + 0x61, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x70, 0x66, + 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x2e, + 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x62, 0x70, 0x66, + 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x50, + 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x70, + 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x70, + 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x42, 0x79, 0x74, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x03, + 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x70, 0x66, + 0x6d, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x67, 0x6f, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1913,7 +2084,7 @@ func file_bpfman_proto_rawDescGZIP() []byte { return file_bpfman_proto_rawDescData } -var file_bpfman_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_bpfman_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_bpfman_proto_goTypes = []interface{}{ (*BytecodeImage)(nil), // 0: bpfman.v1.BytecodeImage (*BytecodeLocation)(nil), // 1: bpfman.v1.BytecodeLocation @@ -1921,70 +2092,74 @@ var file_bpfman_proto_goTypes = []interface{}{ (*ProgramInfo)(nil), // 3: bpfman.v1.ProgramInfo (*XDPAttachInfo)(nil), // 4: bpfman.v1.XDPAttachInfo (*TCAttachInfo)(nil), // 5: bpfman.v1.TCAttachInfo - (*TracepointAttachInfo)(nil), // 6: bpfman.v1.TracepointAttachInfo - (*KprobeAttachInfo)(nil), // 7: bpfman.v1.KprobeAttachInfo - (*UprobeAttachInfo)(nil), // 8: bpfman.v1.UprobeAttachInfo - (*FentryAttachInfo)(nil), // 9: bpfman.v1.FentryAttachInfo - (*FexitAttachInfo)(nil), // 10: bpfman.v1.FexitAttachInfo - (*AttachInfo)(nil), // 11: bpfman.v1.AttachInfo - (*LoadRequest)(nil), // 12: bpfman.v1.LoadRequest - (*LoadResponse)(nil), // 13: bpfman.v1.LoadResponse - (*UnloadRequest)(nil), // 14: bpfman.v1.UnloadRequest - (*UnloadResponse)(nil), // 15: bpfman.v1.UnloadResponse - (*ListRequest)(nil), // 16: bpfman.v1.ListRequest - (*ListResponse)(nil), // 17: bpfman.v1.ListResponse - (*PullBytecodeRequest)(nil), // 18: bpfman.v1.PullBytecodeRequest - (*PullBytecodeResponse)(nil), // 19: bpfman.v1.PullBytecodeResponse - (*GetRequest)(nil), // 20: bpfman.v1.GetRequest - (*GetResponse)(nil), // 21: bpfman.v1.GetResponse - nil, // 22: bpfman.v1.ProgramInfo.GlobalDataEntry - nil, // 23: bpfman.v1.ProgramInfo.MetadataEntry - nil, // 24: bpfman.v1.LoadRequest.MetadataEntry - nil, // 25: bpfman.v1.LoadRequest.GlobalDataEntry - nil, // 26: bpfman.v1.ListRequest.MatchMetadataEntry - (*ListResponse_ListResult)(nil), // 27: bpfman.v1.ListResponse.ListResult + (*LinkOrder)(nil), // 6: bpfman.v1.LinkOrder + (*TCXAttachInfo)(nil), // 7: bpfman.v1.TCXAttachInfo + (*TracepointAttachInfo)(nil), // 8: bpfman.v1.TracepointAttachInfo + (*KprobeAttachInfo)(nil), // 9: bpfman.v1.KprobeAttachInfo + (*UprobeAttachInfo)(nil), // 10: bpfman.v1.UprobeAttachInfo + (*FentryAttachInfo)(nil), // 11: bpfman.v1.FentryAttachInfo + (*FexitAttachInfo)(nil), // 12: bpfman.v1.FexitAttachInfo + (*AttachInfo)(nil), // 13: bpfman.v1.AttachInfo + (*LoadRequest)(nil), // 14: bpfman.v1.LoadRequest + (*LoadResponse)(nil), // 15: bpfman.v1.LoadResponse + (*UnloadRequest)(nil), // 16: bpfman.v1.UnloadRequest + (*UnloadResponse)(nil), // 17: bpfman.v1.UnloadResponse + (*ListRequest)(nil), // 18: bpfman.v1.ListRequest + (*ListResponse)(nil), // 19: bpfman.v1.ListResponse + (*PullBytecodeRequest)(nil), // 20: bpfman.v1.PullBytecodeRequest + (*PullBytecodeResponse)(nil), // 21: bpfman.v1.PullBytecodeResponse + (*GetRequest)(nil), // 22: bpfman.v1.GetRequest + (*GetResponse)(nil), // 23: bpfman.v1.GetResponse + nil, // 24: bpfman.v1.ProgramInfo.GlobalDataEntry + nil, // 25: bpfman.v1.ProgramInfo.MetadataEntry + nil, // 26: bpfman.v1.LoadRequest.MetadataEntry + nil, // 27: bpfman.v1.LoadRequest.GlobalDataEntry + nil, // 28: bpfman.v1.ListRequest.MatchMetadataEntry + (*ListResponse_ListResult)(nil), // 29: bpfman.v1.ListResponse.ListResult } var file_bpfman_proto_depIdxs = []int32{ 0, // 0: bpfman.v1.BytecodeLocation.image:type_name -> bpfman.v1.BytecodeImage 1, // 1: bpfman.v1.ProgramInfo.bytecode:type_name -> bpfman.v1.BytecodeLocation - 11, // 2: bpfman.v1.ProgramInfo.attach:type_name -> bpfman.v1.AttachInfo - 22, // 3: bpfman.v1.ProgramInfo.global_data:type_name -> bpfman.v1.ProgramInfo.GlobalDataEntry - 23, // 4: bpfman.v1.ProgramInfo.metadata:type_name -> bpfman.v1.ProgramInfo.MetadataEntry - 4, // 5: bpfman.v1.AttachInfo.xdp_attach_info:type_name -> bpfman.v1.XDPAttachInfo - 5, // 6: bpfman.v1.AttachInfo.tc_attach_info:type_name -> bpfman.v1.TCAttachInfo - 6, // 7: bpfman.v1.AttachInfo.tracepoint_attach_info:type_name -> bpfman.v1.TracepointAttachInfo - 7, // 8: bpfman.v1.AttachInfo.kprobe_attach_info:type_name -> bpfman.v1.KprobeAttachInfo - 8, // 9: bpfman.v1.AttachInfo.uprobe_attach_info:type_name -> bpfman.v1.UprobeAttachInfo - 9, // 10: bpfman.v1.AttachInfo.fentry_attach_info:type_name -> bpfman.v1.FentryAttachInfo - 10, // 11: bpfman.v1.AttachInfo.fexit_attach_info:type_name -> bpfman.v1.FexitAttachInfo - 1, // 12: bpfman.v1.LoadRequest.bytecode:type_name -> bpfman.v1.BytecodeLocation - 11, // 13: bpfman.v1.LoadRequest.attach:type_name -> bpfman.v1.AttachInfo - 24, // 14: bpfman.v1.LoadRequest.metadata:type_name -> bpfman.v1.LoadRequest.MetadataEntry - 25, // 15: bpfman.v1.LoadRequest.global_data:type_name -> bpfman.v1.LoadRequest.GlobalDataEntry - 3, // 16: bpfman.v1.LoadResponse.info:type_name -> bpfman.v1.ProgramInfo - 2, // 17: bpfman.v1.LoadResponse.kernel_info:type_name -> bpfman.v1.KernelProgramInfo - 26, // 18: bpfman.v1.ListRequest.match_metadata:type_name -> bpfman.v1.ListRequest.MatchMetadataEntry - 27, // 19: bpfman.v1.ListResponse.results:type_name -> bpfman.v1.ListResponse.ListResult - 0, // 20: bpfman.v1.PullBytecodeRequest.image:type_name -> bpfman.v1.BytecodeImage - 3, // 21: bpfman.v1.GetResponse.info:type_name -> bpfman.v1.ProgramInfo - 2, // 22: bpfman.v1.GetResponse.kernel_info:type_name -> bpfman.v1.KernelProgramInfo - 3, // 23: bpfman.v1.ListResponse.ListResult.info:type_name -> bpfman.v1.ProgramInfo - 2, // 24: bpfman.v1.ListResponse.ListResult.kernel_info:type_name -> bpfman.v1.KernelProgramInfo - 12, // 25: bpfman.v1.Bpfman.Load:input_type -> bpfman.v1.LoadRequest - 14, // 26: bpfman.v1.Bpfman.Unload:input_type -> bpfman.v1.UnloadRequest - 16, // 27: bpfman.v1.Bpfman.List:input_type -> bpfman.v1.ListRequest - 18, // 28: bpfman.v1.Bpfman.PullBytecode:input_type -> bpfman.v1.PullBytecodeRequest - 20, // 29: bpfman.v1.Bpfman.Get:input_type -> bpfman.v1.GetRequest - 13, // 30: bpfman.v1.Bpfman.Load:output_type -> bpfman.v1.LoadResponse - 15, // 31: bpfman.v1.Bpfman.Unload:output_type -> bpfman.v1.UnloadResponse - 17, // 32: bpfman.v1.Bpfman.List:output_type -> bpfman.v1.ListResponse - 19, // 33: bpfman.v1.Bpfman.PullBytecode:output_type -> bpfman.v1.PullBytecodeResponse - 21, // 34: bpfman.v1.Bpfman.Get:output_type -> bpfman.v1.GetResponse - 30, // [30:35] is the sub-list for method output_type - 25, // [25:30] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 13, // 2: bpfman.v1.ProgramInfo.attach:type_name -> bpfman.v1.AttachInfo + 24, // 3: bpfman.v1.ProgramInfo.global_data:type_name -> bpfman.v1.ProgramInfo.GlobalDataEntry + 25, // 4: bpfman.v1.ProgramInfo.metadata:type_name -> bpfman.v1.ProgramInfo.MetadataEntry + 6, // 5: bpfman.v1.TCXAttachInfo.link_order:type_name -> bpfman.v1.LinkOrder + 4, // 6: bpfman.v1.AttachInfo.xdp_attach_info:type_name -> bpfman.v1.XDPAttachInfo + 5, // 7: bpfman.v1.AttachInfo.tc_attach_info:type_name -> bpfman.v1.TCAttachInfo + 8, // 8: bpfman.v1.AttachInfo.tracepoint_attach_info:type_name -> bpfman.v1.TracepointAttachInfo + 9, // 9: bpfman.v1.AttachInfo.kprobe_attach_info:type_name -> bpfman.v1.KprobeAttachInfo + 10, // 10: bpfman.v1.AttachInfo.uprobe_attach_info:type_name -> bpfman.v1.UprobeAttachInfo + 11, // 11: bpfman.v1.AttachInfo.fentry_attach_info:type_name -> bpfman.v1.FentryAttachInfo + 12, // 12: bpfman.v1.AttachInfo.fexit_attach_info:type_name -> bpfman.v1.FexitAttachInfo + 7, // 13: bpfman.v1.AttachInfo.tcx_attach_info:type_name -> bpfman.v1.TCXAttachInfo + 1, // 14: bpfman.v1.LoadRequest.bytecode:type_name -> bpfman.v1.BytecodeLocation + 13, // 15: bpfman.v1.LoadRequest.attach:type_name -> bpfman.v1.AttachInfo + 26, // 16: bpfman.v1.LoadRequest.metadata:type_name -> bpfman.v1.LoadRequest.MetadataEntry + 27, // 17: bpfman.v1.LoadRequest.global_data:type_name -> bpfman.v1.LoadRequest.GlobalDataEntry + 3, // 18: bpfman.v1.LoadResponse.info:type_name -> bpfman.v1.ProgramInfo + 2, // 19: bpfman.v1.LoadResponse.kernel_info:type_name -> bpfman.v1.KernelProgramInfo + 28, // 20: bpfman.v1.ListRequest.match_metadata:type_name -> bpfman.v1.ListRequest.MatchMetadataEntry + 29, // 21: bpfman.v1.ListResponse.results:type_name -> bpfman.v1.ListResponse.ListResult + 0, // 22: bpfman.v1.PullBytecodeRequest.image:type_name -> bpfman.v1.BytecodeImage + 3, // 23: bpfman.v1.GetResponse.info:type_name -> bpfman.v1.ProgramInfo + 2, // 24: bpfman.v1.GetResponse.kernel_info:type_name -> bpfman.v1.KernelProgramInfo + 3, // 25: bpfman.v1.ListResponse.ListResult.info:type_name -> bpfman.v1.ProgramInfo + 2, // 26: bpfman.v1.ListResponse.ListResult.kernel_info:type_name -> bpfman.v1.KernelProgramInfo + 14, // 27: bpfman.v1.Bpfman.Load:input_type -> bpfman.v1.LoadRequest + 16, // 28: bpfman.v1.Bpfman.Unload:input_type -> bpfman.v1.UnloadRequest + 18, // 29: bpfman.v1.Bpfman.List:input_type -> bpfman.v1.ListRequest + 20, // 30: bpfman.v1.Bpfman.PullBytecode:input_type -> bpfman.v1.PullBytecodeRequest + 22, // 31: bpfman.v1.Bpfman.Get:input_type -> bpfman.v1.GetRequest + 15, // 32: bpfman.v1.Bpfman.Load:output_type -> bpfman.v1.LoadResponse + 17, // 33: bpfman.v1.Bpfman.Unload:output_type -> bpfman.v1.UnloadResponse + 19, // 34: bpfman.v1.Bpfman.List:output_type -> bpfman.v1.ListResponse + 21, // 35: bpfman.v1.Bpfman.PullBytecode:output_type -> bpfman.v1.PullBytecodeResponse + 23, // 36: bpfman.v1.Bpfman.Get:output_type -> bpfman.v1.GetResponse + 32, // [32:37] is the sub-list for method output_type + 27, // [27:32] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_bpfman_proto_init() } @@ -2066,7 +2241,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TracepointAttachInfo); i { + switch v := v.(*LinkOrder); i { case 0: return &v.state case 1: @@ -2078,7 +2253,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KprobeAttachInfo); i { + switch v := v.(*TCXAttachInfo); i { case 0: return &v.state case 1: @@ -2090,7 +2265,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UprobeAttachInfo); i { + switch v := v.(*TracepointAttachInfo); i { case 0: return &v.state case 1: @@ -2102,7 +2277,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FentryAttachInfo); i { + switch v := v.(*KprobeAttachInfo); i { case 0: return &v.state case 1: @@ -2114,7 +2289,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FexitAttachInfo); i { + switch v := v.(*UprobeAttachInfo); i { case 0: return &v.state case 1: @@ -2126,7 +2301,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttachInfo); i { + switch v := v.(*FentryAttachInfo); i { case 0: return &v.state case 1: @@ -2138,7 +2313,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadRequest); i { + switch v := v.(*FexitAttachInfo); i { case 0: return &v.state case 1: @@ -2150,7 +2325,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadResponse); i { + switch v := v.(*AttachInfo); i { case 0: return &v.state case 1: @@ -2162,7 +2337,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnloadRequest); i { + switch v := v.(*LoadRequest); i { case 0: return &v.state case 1: @@ -2174,7 +2349,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnloadResponse); i { + switch v := v.(*LoadResponse); i { case 0: return &v.state case 1: @@ -2186,7 +2361,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRequest); i { + switch v := v.(*UnloadRequest); i { case 0: return &v.state case 1: @@ -2198,7 +2373,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListResponse); i { + switch v := v.(*UnloadResponse); i { case 0: return &v.state case 1: @@ -2210,7 +2385,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullBytecodeRequest); i { + switch v := v.(*ListRequest); i { case 0: return &v.state case 1: @@ -2222,7 +2397,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullBytecodeResponse); i { + switch v := v.(*ListResponse); i { case 0: return &v.state case 1: @@ -2234,7 +2409,7 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRequest); i { + switch v := v.(*PullBytecodeRequest); i { case 0: return &v.state case 1: @@ -2246,6 +2421,30 @@ func file_bpfman_proto_init() { } } file_bpfman_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullBytecodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bpfman_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bpfman_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetResponse); i { case 0: return &v.state @@ -2257,7 +2456,7 @@ func file_bpfman_proto_init() { return nil } } - file_bpfman_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_bpfman_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListResponse_ListResult); i { case 0: return &v.state @@ -2276,9 +2475,11 @@ func file_bpfman_proto_init() { (*BytecodeLocation_File)(nil), } file_bpfman_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[6].OneofWrappers = []interface{}{} file_bpfman_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_bpfman_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_bpfman_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_bpfman_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[13].OneofWrappers = []interface{}{ (*AttachInfo_XdpAttachInfo)(nil), (*AttachInfo_TcAttachInfo)(nil), (*AttachInfo_TracepointAttachInfo)(nil), @@ -2286,18 +2487,19 @@ func file_bpfman_proto_init() { (*AttachInfo_UprobeAttachInfo)(nil), (*AttachInfo_FentryAttachInfo)(nil), (*AttachInfo_FexitAttachInfo)(nil), + (*AttachInfo_TcxAttachInfo)(nil), } - file_bpfman_proto_msgTypes[12].OneofWrappers = []interface{}{} - file_bpfman_proto_msgTypes[16].OneofWrappers = []interface{}{} - file_bpfman_proto_msgTypes[21].OneofWrappers = []interface{}{} - file_bpfman_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_bpfman_proto_msgTypes[29].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bpfman_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 30, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/modules.txt b/vendor/modules.txt index 8f0c96bdf..f4a0f18cf 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -4,7 +4,7 @@ github.com/beorn7/perks/quantile # github.com/blang/semver/v4 v4.0.0 ## explicit; go 1.14 github.com/blang/semver/v4 -# github.com/bpfman/bpfman v0.5.0 +# github.com/bpfman/bpfman v0.5.0 => github.com/anfredette/bpfman v0.0.0-20240813140850-1c5cfc1fdc6b ## explicit; go 1.22.0 github.com/bpfman/bpfman/clients/gobpfman/v1 # github.com/buger/jsonparser v1.1.1 @@ -806,3 +806,4 @@ sigs.k8s.io/structured-merge-diff/v4/value ## explicit; go 1.12 sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 +# github.com/bpfman/bpfman => github.com/anfredette/bpfman v0.0.0-20240813140850-1c5cfc1fdc6b