diff --git a/config_grpc.go b/config_grpc.go index f71f849..a4e3066 100644 --- a/config_grpc.go +++ b/config_grpc.go @@ -20,11 +20,20 @@ func (s *GRPCServer) SaveConfig(ctx context.Context, in *pb.Empty) (*pb.Empty, e // Reload the configuration from the yaml file. func (s *GRPCServer) ReloadConfig(ctx context.Context, in *pb.Empty) (*pb.Empty, error) { log.Println("Reloading configurations.") + app.ApplyingConfig = true config := ReadConfig() err := ApplyConfig(config) + app.ApplyingConfig = false if err != nil { log.Println(err) return nil, err } return new(pb.Empty), nil } + +// Check if the config is being applied. +func (s *GRPCServer) IsApplyingConfig(ctx context.Context, in *pb.Empty) (*pb.IsApplyingConfigReply, error) { + reply := new(pb.IsApplyingConfigReply) + reply.IsApplying = app.ApplyingConfig + return reply, nil +} diff --git a/main.go b/main.go index c77b249..689f5a7 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ const ( serviceDisplayName = "Virtual VXLAN" serviceVendor = "com.mrgeckosmedia" serviceDescription = "Virtual VXLAN using TUN interfaces" - serviceVersion = "0.1.8" + serviceVersion = "0.2" defaultConfigFile = "config.yaml" ) diff --git a/server_cmd.go b/server_cmd.go index 8ff0ebe..a8f72de 100644 --- a/server_cmd.go +++ b/server_cmd.go @@ -24,6 +24,7 @@ type App struct { } ControllerMac net.HardwareAddr grpcServer *GRPCServer + ApplyingConfig bool Stop chan struct{} UpdateConfig *UpdateConfig } @@ -41,6 +42,9 @@ func (a *ServerCmd) Run() error { config := ReadConfig() app.UpdateConfig = config.Update + // So that other services interacting can confirm the config is applied prior to working. + app.ApplyingConfig = true + // Start the GRPC server for cli communication. _, err := NewGRPCServer(config.RPCPath) if err != nil { @@ -55,6 +59,9 @@ func (a *ServerCmd) Run() error { if err != nil { log.Println("An error occurred applying configuration:", err) } + + // Other services may now work. + app.ApplyingConfig = false }() } diff --git a/vxlan/vxlan.pb.go b/vxlan/vxlan.pb.go index 0417846..8e23a41 100644 --- a/vxlan/vxlan.pb.go +++ b/vxlan/vxlan.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.1 -// protoc v3.21.12 +// protoc v5.29.2 // source: vxlan/vxlan.proto package vxlan @@ -57,6 +57,51 @@ func (*Empty) Descriptor() ([]byte, []int) { return file_vxlan_vxlan_proto_rawDescGZIP(), []int{0} } +// Response to is applying config. +type IsApplyingConfigReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsApplying bool `protobuf:"varint,1,opt,name=isApplying,proto3" json:"isApplying,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IsApplyingConfigReply) Reset() { + *x = IsApplyingConfigReply{} + mi := &file_vxlan_vxlan_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IsApplyingConfigReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsApplyingConfigReply) ProtoMessage() {} + +func (x *IsApplyingConfigReply) ProtoReflect() protoreflect.Message { + mi := &file_vxlan_vxlan_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsApplyingConfigReply.ProtoReflect.Descriptor instead. +func (*IsApplyingConfigReply) Descriptor() ([]byte, []int) { + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{1} +} + +func (x *IsApplyingConfigReply) GetIsApplying() bool { + if x != nil { + return x.IsApplying + } + return false +} + // Listener messages. type ListenerRequestWithName struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -67,7 +112,7 @@ type ListenerRequestWithName struct { func (x *ListenerRequestWithName) Reset() { *x = ListenerRequestWithName{} - mi := &file_vxlan_vxlan_proto_msgTypes[1] + mi := &file_vxlan_vxlan_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79,7 +124,7 @@ func (x *ListenerRequestWithName) String() string { func (*ListenerRequestWithName) ProtoMessage() {} func (x *ListenerRequestWithName) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[1] + mi := &file_vxlan_vxlan_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92,7 +137,7 @@ func (x *ListenerRequestWithName) ProtoReflect() protoreflect.Message { // Deprecated: Use ListenerRequestWithName.ProtoReflect.Descriptor instead. func (*ListenerRequestWithName) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{1} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{2} } func (x *ListenerRequestWithName) GetName() string { @@ -114,7 +159,7 @@ type Listener struct { func (x *Listener) Reset() { *x = Listener{} - mi := &file_vxlan_vxlan_proto_msgTypes[2] + mi := &file_vxlan_vxlan_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -126,7 +171,7 @@ func (x *Listener) String() string { func (*Listener) ProtoMessage() {} func (x *Listener) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[2] + mi := &file_vxlan_vxlan_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -139,7 +184,7 @@ func (x *Listener) ProtoReflect() protoreflect.Message { // Deprecated: Use Listener.ProtoReflect.Descriptor instead. func (*Listener) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{2} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{3} } func (x *Listener) GetName() string { @@ -179,7 +224,7 @@ type ListListenersReply struct { func (x *ListListenersReply) Reset() { *x = ListListenersReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[3] + mi := &file_vxlan_vxlan_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -191,7 +236,7 @@ func (x *ListListenersReply) String() string { func (*ListListenersReply) ProtoMessage() {} func (x *ListListenersReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[3] + mi := &file_vxlan_vxlan_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -204,7 +249,7 @@ func (x *ListListenersReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListListenersReply.ProtoReflect.Descriptor instead. func (*ListListenersReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{3} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{4} } func (x *ListListenersReply) GetListeners() []*Listener { @@ -224,7 +269,7 @@ type ListenerMaxMessageSizeRequest struct { func (x *ListenerMaxMessageSizeRequest) Reset() { *x = ListenerMaxMessageSizeRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[4] + mi := &file_vxlan_vxlan_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -236,7 +281,7 @@ func (x *ListenerMaxMessageSizeRequest) String() string { func (*ListenerMaxMessageSizeRequest) ProtoMessage() {} func (x *ListenerMaxMessageSizeRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[4] + mi := &file_vxlan_vxlan_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -249,7 +294,7 @@ func (x *ListenerMaxMessageSizeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListenerMaxMessageSizeRequest.ProtoReflect.Descriptor instead. func (*ListenerMaxMessageSizeRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{4} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{5} } func (x *ListenerMaxMessageSizeRequest) GetName() string { @@ -275,7 +320,7 @@ type ListenerMaxMessageSizeReply struct { func (x *ListenerMaxMessageSizeReply) Reset() { *x = ListenerMaxMessageSizeReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[5] + mi := &file_vxlan_vxlan_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -287,7 +332,7 @@ func (x *ListenerMaxMessageSizeReply) String() string { func (*ListenerMaxMessageSizeReply) ProtoMessage() {} func (x *ListenerMaxMessageSizeReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[5] + mi := &file_vxlan_vxlan_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -300,7 +345,7 @@ func (x *ListenerMaxMessageSizeReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListenerMaxMessageSizeReply.ProtoReflect.Descriptor instead. func (*ListenerMaxMessageSizeReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{5} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{6} } func (x *ListenerMaxMessageSizeReply) GetSize() int32 { @@ -323,7 +368,7 @@ type Interface struct { func (x *Interface) Reset() { *x = Interface{} - mi := &file_vxlan_vxlan_proto_msgTypes[6] + mi := &file_vxlan_vxlan_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -335,7 +380,7 @@ func (x *Interface) String() string { func (*Interface) ProtoMessage() {} func (x *Interface) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[6] + mi := &file_vxlan_vxlan_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -348,7 +393,7 @@ func (x *Interface) ProtoReflect() protoreflect.Message { // Deprecated: Use Interface.ProtoReflect.Descriptor instead. func (*Interface) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{6} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{7} } func (x *Interface) GetName() string { @@ -388,7 +433,7 @@ type ListInterfacesReply struct { func (x *ListInterfacesReply) Reset() { *x = ListInterfacesReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[7] + mi := &file_vxlan_vxlan_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -400,7 +445,7 @@ func (x *ListInterfacesReply) String() string { func (*ListInterfacesReply) ProtoMessage() {} func (x *ListInterfacesReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[7] + mi := &file_vxlan_vxlan_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -413,7 +458,7 @@ func (x *ListInterfacesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListInterfacesReply.ProtoReflect.Descriptor instead. func (*ListInterfacesReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{7} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{8} } func (x *ListInterfacesReply) GetInterfaces() []*Interface { @@ -436,7 +481,7 @@ type AddInterfaceRequest struct { func (x *AddInterfaceRequest) Reset() { *x = AddInterfaceRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[8] + mi := &file_vxlan_vxlan_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +493,7 @@ func (x *AddInterfaceRequest) String() string { func (*AddInterfaceRequest) ProtoMessage() {} func (x *AddInterfaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[8] + mi := &file_vxlan_vxlan_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +506,7 @@ func (x *AddInterfaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddInterfaceRequest.ProtoReflect.Descriptor instead. func (*AddInterfaceRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{8} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{9} } func (x *AddInterfaceRequest) GetListenerName() string { @@ -509,7 +554,7 @@ type InterfaceRequestWithName struct { func (x *InterfaceRequestWithName) Reset() { *x = InterfaceRequestWithName{} - mi := &file_vxlan_vxlan_proto_msgTypes[9] + mi := &file_vxlan_vxlan_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -521,7 +566,7 @@ func (x *InterfaceRequestWithName) String() string { func (*InterfaceRequestWithName) ProtoMessage() {} func (x *InterfaceRequestWithName) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[9] + mi := &file_vxlan_vxlan_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -534,7 +579,7 @@ func (x *InterfaceRequestWithName) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceRequestWithName.ProtoReflect.Descriptor instead. func (*InterfaceRequestWithName) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{9} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{10} } func (x *InterfaceRequestWithName) GetListenerName() string { @@ -562,7 +607,7 @@ type InterfaceMTURequest struct { func (x *InterfaceMTURequest) Reset() { *x = InterfaceMTURequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[10] + mi := &file_vxlan_vxlan_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -574,7 +619,7 @@ func (x *InterfaceMTURequest) String() string { func (*InterfaceMTURequest) ProtoMessage() {} func (x *InterfaceMTURequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[10] + mi := &file_vxlan_vxlan_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -587,7 +632,7 @@ func (x *InterfaceMTURequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMTURequest.ProtoReflect.Descriptor instead. func (*InterfaceMTURequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{10} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{11} } func (x *InterfaceMTURequest) GetListenerName() string { @@ -620,7 +665,7 @@ type InterfaceMTUReply struct { func (x *InterfaceMTUReply) Reset() { *x = InterfaceMTUReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[11] + mi := &file_vxlan_vxlan_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -632,7 +677,7 @@ func (x *InterfaceMTUReply) String() string { func (*InterfaceMTUReply) ProtoMessage() {} func (x *InterfaceMTUReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[11] + mi := &file_vxlan_vxlan_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -645,7 +690,7 @@ func (x *InterfaceMTUReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMTUReply.ProtoReflect.Descriptor instead. func (*InterfaceMTUReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{11} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{12} } func (x *InterfaceMTUReply) GetMtu() int32 { @@ -666,7 +711,7 @@ type InterfaceMACAddressRequest struct { func (x *InterfaceMACAddressRequest) Reset() { *x = InterfaceMACAddressRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[12] + mi := &file_vxlan_vxlan_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -678,7 +723,7 @@ func (x *InterfaceMACAddressRequest) String() string { func (*InterfaceMACAddressRequest) ProtoMessage() {} func (x *InterfaceMACAddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[12] + mi := &file_vxlan_vxlan_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -691,7 +736,7 @@ func (x *InterfaceMACAddressRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMACAddressRequest.ProtoReflect.Descriptor instead. func (*InterfaceMACAddressRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{12} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{13} } func (x *InterfaceMACAddressRequest) GetListenerName() string { @@ -724,7 +769,7 @@ type InterfaceMACAddressReply struct { func (x *InterfaceMACAddressReply) Reset() { *x = InterfaceMACAddressReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[13] + mi := &file_vxlan_vxlan_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -736,7 +781,7 @@ func (x *InterfaceMACAddressReply) String() string { func (*InterfaceMACAddressReply) ProtoMessage() {} func (x *InterfaceMACAddressReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[13] + mi := &file_vxlan_vxlan_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -749,7 +794,7 @@ func (x *InterfaceMACAddressReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMACAddressReply.ProtoReflect.Descriptor instead. func (*InterfaceMACAddressReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{13} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{14} } func (x *InterfaceMACAddressReply) GetMac() string { @@ -770,7 +815,7 @@ type InterfaceIPAddressesRequest struct { func (x *InterfaceIPAddressesRequest) Reset() { *x = InterfaceIPAddressesRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[14] + mi := &file_vxlan_vxlan_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -782,7 +827,7 @@ func (x *InterfaceIPAddressesRequest) String() string { func (*InterfaceIPAddressesRequest) ProtoMessage() {} func (x *InterfaceIPAddressesRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[14] + mi := &file_vxlan_vxlan_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -795,7 +840,7 @@ func (x *InterfaceIPAddressesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceIPAddressesRequest.ProtoReflect.Descriptor instead. func (*InterfaceIPAddressesRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{14} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{15} } func (x *InterfaceIPAddressesRequest) GetListenerName() string { @@ -828,7 +873,7 @@ type InterfaceIPAddressesReply struct { func (x *InterfaceIPAddressesReply) Reset() { *x = InterfaceIPAddressesReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[15] + mi := &file_vxlan_vxlan_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -840,7 +885,7 @@ func (x *InterfaceIPAddressesReply) String() string { func (*InterfaceIPAddressesReply) ProtoMessage() {} func (x *InterfaceIPAddressesReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[15] + mi := &file_vxlan_vxlan_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -853,7 +898,7 @@ func (x *InterfaceIPAddressesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceIPAddressesReply.ProtoReflect.Descriptor instead. func (*InterfaceIPAddressesReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{15} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{16} } func (x *InterfaceIPAddressesReply) GetIpAddress() []string { @@ -876,7 +921,7 @@ type InterfaceMacEntryRequest struct { func (x *InterfaceMacEntryRequest) Reset() { *x = InterfaceMacEntryRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[16] + mi := &file_vxlan_vxlan_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -888,7 +933,7 @@ func (x *InterfaceMacEntryRequest) String() string { func (*InterfaceMacEntryRequest) ProtoMessage() {} func (x *InterfaceMacEntryRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[16] + mi := &file_vxlan_vxlan_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -901,7 +946,7 @@ func (x *InterfaceMacEntryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMacEntryRequest.ProtoReflect.Descriptor instead. func (*InterfaceMacEntryRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{16} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{17} } func (x *InterfaceMacEntryRequest) GetListenerName() string { @@ -951,7 +996,7 @@ type InterfaceRemoveMacEntryRequest struct { func (x *InterfaceRemoveMacEntryRequest) Reset() { *x = InterfaceRemoveMacEntryRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[17] + mi := &file_vxlan_vxlan_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -963,7 +1008,7 @@ func (x *InterfaceRemoveMacEntryRequest) String() string { func (*InterfaceRemoveMacEntryRequest) ProtoMessage() {} func (x *InterfaceRemoveMacEntryRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[17] + mi := &file_vxlan_vxlan_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -976,7 +1021,7 @@ func (x *InterfaceRemoveMacEntryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceRemoveMacEntryRequest.ProtoReflect.Descriptor instead. func (*InterfaceRemoveMacEntryRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{17} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{18} } func (x *InterfaceRemoveMacEntryRequest) GetListenerName() string { @@ -1018,7 +1063,7 @@ type MacEntry struct { func (x *MacEntry) Reset() { *x = MacEntry{} - mi := &file_vxlan_vxlan_proto_msgTypes[18] + mi := &file_vxlan_vxlan_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1030,7 +1075,7 @@ func (x *MacEntry) String() string { func (*MacEntry) ProtoMessage() {} func (x *MacEntry) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[18] + mi := &file_vxlan_vxlan_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1043,7 +1088,7 @@ func (x *MacEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use MacEntry.ProtoReflect.Descriptor instead. func (*MacEntry) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{18} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{19} } func (x *MacEntry) GetMac() string { @@ -1076,7 +1121,7 @@ type InterfaceMacEntryReply struct { func (x *InterfaceMacEntryReply) Reset() { *x = InterfaceMacEntryReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[19] + mi := &file_vxlan_vxlan_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1088,7 +1133,7 @@ func (x *InterfaceMacEntryReply) String() string { func (*InterfaceMacEntryReply) ProtoMessage() {} func (x *InterfaceMacEntryReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[19] + mi := &file_vxlan_vxlan_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1101,7 +1146,7 @@ func (x *InterfaceMacEntryReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceMacEntryReply.ProtoReflect.Descriptor instead. func (*InterfaceMacEntryReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{19} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{20} } func (x *InterfaceMacEntryReply) GetEntries() []*MacEntry { @@ -1124,7 +1169,7 @@ type InterfaceARPEntryRequest struct { func (x *InterfaceARPEntryRequest) Reset() { *x = InterfaceARPEntryRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[20] + mi := &file_vxlan_vxlan_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1136,7 +1181,7 @@ func (x *InterfaceARPEntryRequest) String() string { func (*InterfaceARPEntryRequest) ProtoMessage() {} func (x *InterfaceARPEntryRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[20] + mi := &file_vxlan_vxlan_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1149,7 +1194,7 @@ func (x *InterfaceARPEntryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceARPEntryRequest.ProtoReflect.Descriptor instead. func (*InterfaceARPEntryRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{20} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{21} } func (x *InterfaceARPEntryRequest) GetListenerName() string { @@ -1198,7 +1243,7 @@ type InterfaceRemoveARPEntryRequest struct { func (x *InterfaceRemoveARPEntryRequest) Reset() { *x = InterfaceRemoveARPEntryRequest{} - mi := &file_vxlan_vxlan_proto_msgTypes[21] + mi := &file_vxlan_vxlan_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1210,7 +1255,7 @@ func (x *InterfaceRemoveARPEntryRequest) String() string { func (*InterfaceRemoveARPEntryRequest) ProtoMessage() {} func (x *InterfaceRemoveARPEntryRequest) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[21] + mi := &file_vxlan_vxlan_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1223,7 +1268,7 @@ func (x *InterfaceRemoveARPEntryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceRemoveARPEntryRequest.ProtoReflect.Descriptor instead. func (*InterfaceRemoveARPEntryRequest) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{21} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{22} } func (x *InterfaceRemoveARPEntryRequest) GetListenerName() string { @@ -1259,7 +1304,7 @@ type ArpEntry struct { func (x *ArpEntry) Reset() { *x = ArpEntry{} - mi := &file_vxlan_vxlan_proto_msgTypes[22] + mi := &file_vxlan_vxlan_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1271,7 +1316,7 @@ func (x *ArpEntry) String() string { func (*ArpEntry) ProtoMessage() {} func (x *ArpEntry) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[22] + mi := &file_vxlan_vxlan_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1284,7 +1329,7 @@ func (x *ArpEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ArpEntry.ProtoReflect.Descriptor instead. func (*ArpEntry) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{22} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{23} } func (x *ArpEntry) GetAddress() string { @@ -1324,7 +1369,7 @@ type InterfaceArpEntryReply struct { func (x *InterfaceArpEntryReply) Reset() { *x = InterfaceArpEntryReply{} - mi := &file_vxlan_vxlan_proto_msgTypes[23] + mi := &file_vxlan_vxlan_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1336,7 +1381,7 @@ func (x *InterfaceArpEntryReply) String() string { func (*InterfaceArpEntryReply) ProtoMessage() {} func (x *InterfaceArpEntryReply) ProtoReflect() protoreflect.Message { - mi := &file_vxlan_vxlan_proto_msgTypes[23] + mi := &file_vxlan_vxlan_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1349,7 +1394,7 @@ func (x *InterfaceArpEntryReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InterfaceArpEntryReply.ProtoReflect.Descriptor instead. func (*InterfaceArpEntryReply) Descriptor() ([]byte, []int) { - return file_vxlan_vxlan_proto_rawDescGZIP(), []int{23} + return file_vxlan_vxlan_proto_rawDescGZIP(), []int{24} } func (x *InterfaceArpEntryReply) GetEntries() []*ArpEntry { @@ -1364,258 +1409,265 @@ var File_vxlan_vxlan_proto protoreflect.FileDescriptor var file_vxlan_vxlan_proto_rawDesc = []byte{ 0x0a, 0x11, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x2d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, - 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, - 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x47, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x22, 0x31, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x22, 0x61, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, - 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, - 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, - 0x8f, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, - 0x69, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6d, 0x74, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x22, 0x52, 0x0a, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x25, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x66, 0x0a, - 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x61, 0x63, 0x22, 0x2c, 0x0a, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x61, 0x63, 0x22, 0x73, 0x0a, 0x1b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x19, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x70, 0x74, 0x79, 0x22, 0x37, 0x0a, 0x15, 0x49, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x69, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x22, 0x2d, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, + 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x08, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, + 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, + 0x22, 0x47, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x31, 0x0a, 0x1b, 0x4c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x61, 0x0a, 0x09, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, + 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, + 0x47, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, + 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, - 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x08, 0x4d, 0x61, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, - 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, - 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x63, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, - 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, + 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x18, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, + 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, + 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, + 0x25, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x66, 0x0a, 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x22, 0x2c, + 0x0a, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x22, 0x73, 0x0a, 0x1b, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x39, 0x0a, 0x19, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, + 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x1e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, - 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0x6e, 0x0a, 0x08, 0x41, 0x72, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, - 0x43, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x72, 0x70, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x2e, 0x41, 0x72, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x32, 0x88, 0x0e, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x2a, - 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0c, 0x2e, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x0c, 0x52, 0x65, - 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x00, 0x12, 0x2e, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x65, 0x72, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, - 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x24, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x19, 0x47, 0x65, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, - 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x22, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0e, - 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1e, - 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1a, - 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, - 0x41, 0x64, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0c, 0x2e, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0f, - 0x53, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x12, - 0x1a, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x12, 0x1f, - 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x18, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x16, 0x53, - 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x22, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, - 0x65, 0x1a, 0x20, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x41, 0x64, 0x64, 0x4d, 0x41, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x2e, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, - 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x50, - 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4d, 0x41, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x2e, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x5a, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x47, 0x65, 0x74, - 0x4d, 0x41, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x16, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x41, - 0x43, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x61, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, + 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x08, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x22, 0x43, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, + 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x1e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6e, 0x0a, 0x08, 0x41, 0x72, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, + 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, + 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x72, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x72, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x32, 0xca, 0x0e, + 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x2a, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x2c, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x40, 0x0a, 0x10, 0x49, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x73, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x65, 0x72, 0x73, 0x12, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x2e, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x0f, + 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x1a, + 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, + 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, + 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, + 0x65, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x51, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, + 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, + 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, + 0x65, 0x1a, 0x22, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1a, 0x2e, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, + 0x41, 0x64, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x41, 0x52, 0x50, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x12, 0x1a, 0x2e, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x25, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x47, 0x65, 0x74, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x72, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x52, 0x50, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x18, 0x2e, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x54, 0x55, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x21, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, + 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, - 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, - 0x6d, 0x72, 0x67, 0x65, 0x63, 0x6b, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2d, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x4d, 0x41, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x4d, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x5e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x20, 0x2e, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x47, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, + 0x4d, 0x41, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x17, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x41, 0x43, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x16, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x41, 0x43, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, + 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x41, 0x43, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, + 0x6d, 0x65, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x1a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x50, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x2e, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x47, 0x65, 0x74, 0x41, 0x52, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, + 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, + 0x2e, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x41, 0x72, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x49, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x46, 0x6c, 0x75, 0x73, + 0x68, 0x41, 0x52, 0x50, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x0c, 0x2e, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x6d, 0x72, 0x67, 0x65, 0x63, + 0x6b, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2d, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x2f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1630,88 +1682,91 @@ func file_vxlan_vxlan_proto_rawDescGZIP() []byte { return file_vxlan_vxlan_proto_rawDescData } -var file_vxlan_vxlan_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_vxlan_vxlan_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_vxlan_vxlan_proto_goTypes = []any{ (*Empty)(nil), // 0: vxlan.Empty - (*ListenerRequestWithName)(nil), // 1: vxlan.ListenerRequestWithName - (*Listener)(nil), // 2: vxlan.Listener - (*ListListenersReply)(nil), // 3: vxlan.ListListenersReply - (*ListenerMaxMessageSizeRequest)(nil), // 4: vxlan.ListenerMaxMessageSizeRequest - (*ListenerMaxMessageSizeReply)(nil), // 5: vxlan.ListenerMaxMessageSizeReply - (*Interface)(nil), // 6: vxlan.Interface - (*ListInterfacesReply)(nil), // 7: vxlan.ListInterfacesReply - (*AddInterfaceRequest)(nil), // 8: vxlan.AddInterfaceRequest - (*InterfaceRequestWithName)(nil), // 9: vxlan.InterfaceRequestWithName - (*InterfaceMTURequest)(nil), // 10: vxlan.InterfaceMTURequest - (*InterfaceMTUReply)(nil), // 11: vxlan.InterfaceMTUReply - (*InterfaceMACAddressRequest)(nil), // 12: vxlan.InterfaceMACAddressRequest - (*InterfaceMACAddressReply)(nil), // 13: vxlan.InterfaceMACAddressReply - (*InterfaceIPAddressesRequest)(nil), // 14: vxlan.InterfaceIPAddressesRequest - (*InterfaceIPAddressesReply)(nil), // 15: vxlan.InterfaceIPAddressesReply - (*InterfaceMacEntryRequest)(nil), // 16: vxlan.InterfaceMacEntryRequest - (*InterfaceRemoveMacEntryRequest)(nil), // 17: vxlan.InterfaceRemoveMacEntryRequest - (*MacEntry)(nil), // 18: vxlan.MacEntry - (*InterfaceMacEntryReply)(nil), // 19: vxlan.InterfaceMacEntryReply - (*InterfaceARPEntryRequest)(nil), // 20: vxlan.InterfaceARPEntryRequest - (*InterfaceRemoveARPEntryRequest)(nil), // 21: vxlan.InterfaceRemoveARPEntryRequest - (*ArpEntry)(nil), // 22: vxlan.ArpEntry - (*InterfaceArpEntryReply)(nil), // 23: vxlan.InterfaceArpEntryReply + (*IsApplyingConfigReply)(nil), // 1: vxlan.IsApplyingConfigReply + (*ListenerRequestWithName)(nil), // 2: vxlan.ListenerRequestWithName + (*Listener)(nil), // 3: vxlan.Listener + (*ListListenersReply)(nil), // 4: vxlan.ListListenersReply + (*ListenerMaxMessageSizeRequest)(nil), // 5: vxlan.ListenerMaxMessageSizeRequest + (*ListenerMaxMessageSizeReply)(nil), // 6: vxlan.ListenerMaxMessageSizeReply + (*Interface)(nil), // 7: vxlan.Interface + (*ListInterfacesReply)(nil), // 8: vxlan.ListInterfacesReply + (*AddInterfaceRequest)(nil), // 9: vxlan.AddInterfaceRequest + (*InterfaceRequestWithName)(nil), // 10: vxlan.InterfaceRequestWithName + (*InterfaceMTURequest)(nil), // 11: vxlan.InterfaceMTURequest + (*InterfaceMTUReply)(nil), // 12: vxlan.InterfaceMTUReply + (*InterfaceMACAddressRequest)(nil), // 13: vxlan.InterfaceMACAddressRequest + (*InterfaceMACAddressReply)(nil), // 14: vxlan.InterfaceMACAddressReply + (*InterfaceIPAddressesRequest)(nil), // 15: vxlan.InterfaceIPAddressesRequest + (*InterfaceIPAddressesReply)(nil), // 16: vxlan.InterfaceIPAddressesReply + (*InterfaceMacEntryRequest)(nil), // 17: vxlan.InterfaceMacEntryRequest + (*InterfaceRemoveMacEntryRequest)(nil), // 18: vxlan.InterfaceRemoveMacEntryRequest + (*MacEntry)(nil), // 19: vxlan.MacEntry + (*InterfaceMacEntryReply)(nil), // 20: vxlan.InterfaceMacEntryReply + (*InterfaceARPEntryRequest)(nil), // 21: vxlan.InterfaceARPEntryRequest + (*InterfaceRemoveARPEntryRequest)(nil), // 22: vxlan.InterfaceRemoveARPEntryRequest + (*ArpEntry)(nil), // 23: vxlan.ArpEntry + (*InterfaceArpEntryReply)(nil), // 24: vxlan.InterfaceArpEntryReply } var file_vxlan_vxlan_proto_depIdxs = []int32{ - 2, // 0: vxlan.ListListenersReply.listeners:type_name -> vxlan.Listener - 6, // 1: vxlan.ListInterfacesReply.interfaces:type_name -> vxlan.Interface - 18, // 2: vxlan.InterfaceMacEntryReply.entries:type_name -> vxlan.MacEntry - 22, // 3: vxlan.InterfaceArpEntryReply.entries:type_name -> vxlan.ArpEntry + 3, // 0: vxlan.ListListenersReply.listeners:type_name -> vxlan.Listener + 7, // 1: vxlan.ListInterfacesReply.interfaces:type_name -> vxlan.Interface + 19, // 2: vxlan.InterfaceMacEntryReply.entries:type_name -> vxlan.MacEntry + 23, // 3: vxlan.InterfaceArpEntryReply.entries:type_name -> vxlan.ArpEntry 0, // 4: vxlan.vxlan.SaveConfig:input_type -> vxlan.Empty 0, // 5: vxlan.vxlan.ReloadConfig:input_type -> vxlan.Empty - 0, // 6: vxlan.vxlan.ListListeners:input_type -> vxlan.Empty - 2, // 7: vxlan.vxlan.AddListener:input_type -> vxlan.Listener - 1, // 8: vxlan.vxlan.RemoveListener:input_type -> vxlan.ListenerRequestWithName - 4, // 9: vxlan.vxlan.SetListenerMaxMessageSize:input_type -> vxlan.ListenerMaxMessageSizeRequest - 1, // 10: vxlan.vxlan.GetListenerMaxMessageSize:input_type -> vxlan.ListenerRequestWithName - 1, // 11: vxlan.vxlan.ListInterfaces:input_type -> vxlan.ListenerRequestWithName - 8, // 12: vxlan.vxlan.AddInterface:input_type -> vxlan.AddInterfaceRequest - 9, // 13: vxlan.vxlan.RemoveInterface:input_type -> vxlan.InterfaceRequestWithName - 10, // 14: vxlan.vxlan.SetInterfaceMTU:input_type -> vxlan.InterfaceMTURequest - 9, // 15: vxlan.vxlan.GetInterfaceMTU:input_type -> vxlan.InterfaceRequestWithName - 12, // 16: vxlan.vxlan.SetInterfaceMACAddress:input_type -> vxlan.InterfaceMACAddressRequest - 9, // 17: vxlan.vxlan.GetInterfaceMACAddress:input_type -> vxlan.InterfaceRequestWithName - 14, // 18: vxlan.vxlan.SetInterfaceIPAddresses:input_type -> vxlan.InterfaceIPAddressesRequest - 9, // 19: vxlan.vxlan.GetInterfaceIPAddresses:input_type -> vxlan.InterfaceRequestWithName - 16, // 20: vxlan.vxlan.InterfaceAddMACEntry:input_type -> vxlan.InterfaceMacEntryRequest - 17, // 21: vxlan.vxlan.InterfaceRemoveMACEntry:input_type -> vxlan.InterfaceRemoveMacEntryRequest - 9, // 22: vxlan.vxlan.InterfaceGetMACEntries:input_type -> vxlan.InterfaceRequestWithName - 9, // 23: vxlan.vxlan.InterfaceFlushMACTable:input_type -> vxlan.InterfaceRequestWithName - 20, // 24: vxlan.vxlan.InterfaceAddStaticARPEntry:input_type -> vxlan.InterfaceARPEntryRequest - 21, // 25: vxlan.vxlan.InterfaceRemoveARPEntry:input_type -> vxlan.InterfaceRemoveARPEntryRequest - 9, // 26: vxlan.vxlan.InterfaceGetARPEntries:input_type -> vxlan.InterfaceRequestWithName - 9, // 27: vxlan.vxlan.InterfaceFlushARPTable:input_type -> vxlan.InterfaceRequestWithName - 0, // 28: vxlan.vxlan.SaveConfig:output_type -> vxlan.Empty - 0, // 29: vxlan.vxlan.ReloadConfig:output_type -> vxlan.Empty - 3, // 30: vxlan.vxlan.ListListeners:output_type -> vxlan.ListListenersReply - 0, // 31: vxlan.vxlan.AddListener:output_type -> vxlan.Empty - 0, // 32: vxlan.vxlan.RemoveListener:output_type -> vxlan.Empty - 0, // 33: vxlan.vxlan.SetListenerMaxMessageSize:output_type -> vxlan.Empty - 5, // 34: vxlan.vxlan.GetListenerMaxMessageSize:output_type -> vxlan.ListenerMaxMessageSizeReply - 7, // 35: vxlan.vxlan.ListInterfaces:output_type -> vxlan.ListInterfacesReply - 0, // 36: vxlan.vxlan.AddInterface:output_type -> vxlan.Empty - 0, // 37: vxlan.vxlan.RemoveInterface:output_type -> vxlan.Empty - 0, // 38: vxlan.vxlan.SetInterfaceMTU:output_type -> vxlan.Empty - 11, // 39: vxlan.vxlan.GetInterfaceMTU:output_type -> vxlan.InterfaceMTUReply - 0, // 40: vxlan.vxlan.SetInterfaceMACAddress:output_type -> vxlan.Empty - 13, // 41: vxlan.vxlan.GetInterfaceMACAddress:output_type -> vxlan.InterfaceMACAddressReply - 0, // 42: vxlan.vxlan.SetInterfaceIPAddresses:output_type -> vxlan.Empty - 15, // 43: vxlan.vxlan.GetInterfaceIPAddresses:output_type -> vxlan.InterfaceIPAddressesReply - 0, // 44: vxlan.vxlan.InterfaceAddMACEntry:output_type -> vxlan.Empty - 0, // 45: vxlan.vxlan.InterfaceRemoveMACEntry:output_type -> vxlan.Empty - 19, // 46: vxlan.vxlan.InterfaceGetMACEntries:output_type -> vxlan.InterfaceMacEntryReply - 0, // 47: vxlan.vxlan.InterfaceFlushMACTable:output_type -> vxlan.Empty - 0, // 48: vxlan.vxlan.InterfaceAddStaticARPEntry:output_type -> vxlan.Empty - 0, // 49: vxlan.vxlan.InterfaceRemoveARPEntry:output_type -> vxlan.Empty - 23, // 50: vxlan.vxlan.InterfaceGetARPEntries:output_type -> vxlan.InterfaceArpEntryReply - 0, // 51: vxlan.vxlan.InterfaceFlushARPTable:output_type -> vxlan.Empty - 28, // [28:52] is the sub-list for method output_type - 4, // [4:28] is the sub-list for method input_type + 0, // 6: vxlan.vxlan.IsApplyingConfig:input_type -> vxlan.Empty + 0, // 7: vxlan.vxlan.ListListeners:input_type -> vxlan.Empty + 3, // 8: vxlan.vxlan.AddListener:input_type -> vxlan.Listener + 2, // 9: vxlan.vxlan.RemoveListener:input_type -> vxlan.ListenerRequestWithName + 5, // 10: vxlan.vxlan.SetListenerMaxMessageSize:input_type -> vxlan.ListenerMaxMessageSizeRequest + 2, // 11: vxlan.vxlan.GetListenerMaxMessageSize:input_type -> vxlan.ListenerRequestWithName + 2, // 12: vxlan.vxlan.ListInterfaces:input_type -> vxlan.ListenerRequestWithName + 9, // 13: vxlan.vxlan.AddInterface:input_type -> vxlan.AddInterfaceRequest + 10, // 14: vxlan.vxlan.RemoveInterface:input_type -> vxlan.InterfaceRequestWithName + 11, // 15: vxlan.vxlan.SetInterfaceMTU:input_type -> vxlan.InterfaceMTURequest + 10, // 16: vxlan.vxlan.GetInterfaceMTU:input_type -> vxlan.InterfaceRequestWithName + 13, // 17: vxlan.vxlan.SetInterfaceMACAddress:input_type -> vxlan.InterfaceMACAddressRequest + 10, // 18: vxlan.vxlan.GetInterfaceMACAddress:input_type -> vxlan.InterfaceRequestWithName + 15, // 19: vxlan.vxlan.SetInterfaceIPAddresses:input_type -> vxlan.InterfaceIPAddressesRequest + 10, // 20: vxlan.vxlan.GetInterfaceIPAddresses:input_type -> vxlan.InterfaceRequestWithName + 17, // 21: vxlan.vxlan.InterfaceAddMACEntry:input_type -> vxlan.InterfaceMacEntryRequest + 18, // 22: vxlan.vxlan.InterfaceRemoveMACEntry:input_type -> vxlan.InterfaceRemoveMacEntryRequest + 10, // 23: vxlan.vxlan.InterfaceGetMACEntries:input_type -> vxlan.InterfaceRequestWithName + 10, // 24: vxlan.vxlan.InterfaceFlushMACTable:input_type -> vxlan.InterfaceRequestWithName + 21, // 25: vxlan.vxlan.InterfaceAddStaticARPEntry:input_type -> vxlan.InterfaceARPEntryRequest + 22, // 26: vxlan.vxlan.InterfaceRemoveARPEntry:input_type -> vxlan.InterfaceRemoveARPEntryRequest + 10, // 27: vxlan.vxlan.InterfaceGetARPEntries:input_type -> vxlan.InterfaceRequestWithName + 10, // 28: vxlan.vxlan.InterfaceFlushARPTable:input_type -> vxlan.InterfaceRequestWithName + 0, // 29: vxlan.vxlan.SaveConfig:output_type -> vxlan.Empty + 0, // 30: vxlan.vxlan.ReloadConfig:output_type -> vxlan.Empty + 1, // 31: vxlan.vxlan.IsApplyingConfig:output_type -> vxlan.IsApplyingConfigReply + 4, // 32: vxlan.vxlan.ListListeners:output_type -> vxlan.ListListenersReply + 0, // 33: vxlan.vxlan.AddListener:output_type -> vxlan.Empty + 0, // 34: vxlan.vxlan.RemoveListener:output_type -> vxlan.Empty + 0, // 35: vxlan.vxlan.SetListenerMaxMessageSize:output_type -> vxlan.Empty + 6, // 36: vxlan.vxlan.GetListenerMaxMessageSize:output_type -> vxlan.ListenerMaxMessageSizeReply + 8, // 37: vxlan.vxlan.ListInterfaces:output_type -> vxlan.ListInterfacesReply + 0, // 38: vxlan.vxlan.AddInterface:output_type -> vxlan.Empty + 0, // 39: vxlan.vxlan.RemoveInterface:output_type -> vxlan.Empty + 0, // 40: vxlan.vxlan.SetInterfaceMTU:output_type -> vxlan.Empty + 12, // 41: vxlan.vxlan.GetInterfaceMTU:output_type -> vxlan.InterfaceMTUReply + 0, // 42: vxlan.vxlan.SetInterfaceMACAddress:output_type -> vxlan.Empty + 14, // 43: vxlan.vxlan.GetInterfaceMACAddress:output_type -> vxlan.InterfaceMACAddressReply + 0, // 44: vxlan.vxlan.SetInterfaceIPAddresses:output_type -> vxlan.Empty + 16, // 45: vxlan.vxlan.GetInterfaceIPAddresses:output_type -> vxlan.InterfaceIPAddressesReply + 0, // 46: vxlan.vxlan.InterfaceAddMACEntry:output_type -> vxlan.Empty + 0, // 47: vxlan.vxlan.InterfaceRemoveMACEntry:output_type -> vxlan.Empty + 20, // 48: vxlan.vxlan.InterfaceGetMACEntries:output_type -> vxlan.InterfaceMacEntryReply + 0, // 49: vxlan.vxlan.InterfaceFlushMACTable:output_type -> vxlan.Empty + 0, // 50: vxlan.vxlan.InterfaceAddStaticARPEntry:output_type -> vxlan.Empty + 0, // 51: vxlan.vxlan.InterfaceRemoveARPEntry:output_type -> vxlan.Empty + 24, // 52: vxlan.vxlan.InterfaceGetARPEntries:output_type -> vxlan.InterfaceArpEntryReply + 0, // 53: vxlan.vxlan.InterfaceFlushARPTable:output_type -> vxlan.Empty + 29, // [29:54] is the sub-list for method output_type + 4, // [4:29] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name @@ -1728,7 +1783,7 @@ func file_vxlan_vxlan_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_vxlan_vxlan_proto_rawDesc, NumEnums: 0, - NumMessages: 24, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/vxlan/vxlan.proto b/vxlan/vxlan.proto index 72389b0..d006144 100644 --- a/vxlan/vxlan.proto +++ b/vxlan/vxlan.proto @@ -7,6 +7,7 @@ service vxlan { // Config commands. rpc SaveConfig (Empty) returns (Empty) {} rpc ReloadConfig (Empty) returns (Empty) {} + rpc IsApplyingConfig (Empty) returns (IsApplyingConfigReply) {} // Listener commands. rpc ListListeners (Empty) returns (ListListenersReply) {} @@ -39,6 +40,11 @@ service vxlan { message Empty { } +// Response to is applying config. +message IsApplyingConfigReply { + bool isApplying = 1; +} + // Listener messages. message ListenerRequestWithName { string name = 1; diff --git a/vxlan/vxlan_grpc.pb.go b/vxlan/vxlan_grpc.pb.go index 2c10892..d53b769 100644 --- a/vxlan/vxlan_grpc.pb.go +++ b/vxlan/vxlan_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.12 +// - protoc v5.29.2 // source: vxlan/vxlan.proto package vxlan @@ -21,6 +21,7 @@ const _ = grpc.SupportPackageIsVersion9 const ( Vxlan_SaveConfig_FullMethodName = "/vxlan.vxlan/SaveConfig" Vxlan_ReloadConfig_FullMethodName = "/vxlan.vxlan/ReloadConfig" + Vxlan_IsApplyingConfig_FullMethodName = "/vxlan.vxlan/IsApplyingConfig" Vxlan_ListListeners_FullMethodName = "/vxlan.vxlan/ListListeners" Vxlan_AddListener_FullMethodName = "/vxlan.vxlan/AddListener" Vxlan_RemoveListener_FullMethodName = "/vxlan.vxlan/RemoveListener" @@ -52,6 +53,7 @@ type VxlanClient interface { // Config commands. SaveConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) ReloadConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) + IsApplyingConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*IsApplyingConfigReply, error) // Listener commands. ListListeners(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListListenersReply, error) AddListener(ctx context.Context, in *Listener, opts ...grpc.CallOption) (*Empty, error) @@ -106,6 +108,16 @@ func (c *vxlanClient) ReloadConfig(ctx context.Context, in *Empty, opts ...grpc. return out, nil } +func (c *vxlanClient) IsApplyingConfig(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*IsApplyingConfigReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(IsApplyingConfigReply) + err := c.cc.Invoke(ctx, Vxlan_IsApplyingConfig_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *vxlanClient) ListListeners(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListListenersReply, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListListenersReply) @@ -333,6 +345,7 @@ type VxlanServer interface { // Config commands. SaveConfig(context.Context, *Empty) (*Empty, error) ReloadConfig(context.Context, *Empty) (*Empty, error) + IsApplyingConfig(context.Context, *Empty) (*IsApplyingConfigReply, error) // Listener commands. ListListeners(context.Context, *Empty) (*ListListenersReply, error) AddListener(context.Context, *Listener) (*Empty, error) @@ -373,6 +386,9 @@ func (UnimplementedVxlanServer) SaveConfig(context.Context, *Empty) (*Empty, err func (UnimplementedVxlanServer) ReloadConfig(context.Context, *Empty) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ReloadConfig not implemented") } +func (UnimplementedVxlanServer) IsApplyingConfig(context.Context, *Empty) (*IsApplyingConfigReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsApplyingConfig not implemented") +} func (UnimplementedVxlanServer) ListListeners(context.Context, *Empty) (*ListListenersReply, error) { return nil, status.Errorf(codes.Unimplemented, "method ListListeners not implemented") } @@ -496,6 +512,24 @@ func _Vxlan_ReloadConfig_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Vxlan_IsApplyingConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VxlanServer).IsApplyingConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Vxlan_IsApplyingConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VxlanServer).IsApplyingConfig(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _Vxlan_ListListeners_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(Empty) if err := dec(in); err != nil { @@ -907,6 +941,10 @@ var Vxlan_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReloadConfig", Handler: _Vxlan_ReloadConfig_Handler, }, + { + MethodName: "IsApplyingConfig", + Handler: _Vxlan_IsApplyingConfig_Handler, + }, { MethodName: "ListListeners", Handler: _Vxlan_ListListeners_Handler,