From 4bb9f7318a106ee3b030746239fed02572f7bd83 Mon Sep 17 00:00:00 2001 From: Yingxin Zhang Date: Mon, 11 May 2026 17:22:48 +0000 Subject: [PATCH 1/3] Add registeredIPAddresses (reserve specific IPs in IPAM without NIC allocation) Add proto support for the new registeredIPAddresses feature, which lets a caller mark specific IPs as reserved in IPAM without allocating them to a NIC/LB. The reserved IPs are persisted on each IPPool and survive restarts. Proto changes: - rpc/common/moc_common_networkcommon.proto: - IPPool.registeredIPAddresses (field 7): per-pool list of registered IPs (storage layer; rehydration loops directly without re-running pool range-routing). - IPUpdateErrorCode enum: per-IP failure codes (UNKNOWN, INVALID_FORMAT, OUT_OF_RANGE, SUBNET_NOT_FOUND, ALREADY_ALLOCATED, NO_POOLS_IN_SUBNET). - IPAddressUpdateFailure message: { SubnetName, IPAddress, Code, Error }. - rpc/cloudagent/network/{logicalnetwork,virtualnetwork}/*.proto: - UpdateRegisteredIPs RPC. - {Logical,Virtual}NetworkIPUpdateRequest / Response. - {Logical,Virtual}SubnetIPUpdate { SubnetName, RegisteredIPAddresses[] } (subnet-scoped flat list; cloudagent routes IPs to pools by range). The dual layer (subnet-scoped on the wire, per-pool in storage) keeps the RPC ergonomic while making rehydration cheap and self-describing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../moc_cloudagent_logicalnetwork.proto | 38 ++ .../moc_cloudagent_logicalnetwork.pb.go | 317 ++++++++++++++--- .../moc_cloudagent_virtualnetwork.pb.go | 335 +++++++++++++++--- .../moc_cloudagent_virtualnetwork.proto | 38 ++ rpc/common/moc_common_networkcommon.pb.go | 286 +++++++++++---- rpc/common/moc_common_networkcommon.proto | 37 ++ 6 files changed, 874 insertions(+), 177 deletions(-) diff --git a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto index e3e4df20..19861186 100644 --- a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto +++ b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto @@ -63,5 +63,43 @@ service LogicalNetworkAgent { // Prechecks whether the system is able to create specified logical networks (but does not actually create them). rpc Precheck(LogicalNetworkPrecheckRequest) returns (LogicalNetworkPrecheckResponse) {} + + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. + rpc UpdateRegisteredIPs(LogicalNetworkIPUpdateRequest) returns (LogicalNetworkIPUpdateResponse) {} +} + +message LogicalNetworkIPUpdateRequest { + // Identifies the target LNET. + string LocationName = 1; + string Name = 2; + + // Desired registered-IP list for each subnet. Each list replaces + // the stored list across every pool in that subnet. MOC routes each + // IP to the correct pool by range internally. + repeated LogicalSubnetIPUpdate IPUpdates = 3; +} + +message LogicalSubnetIPUpdate { + string SubnetName = 1; + repeated string RegisteredIPAddresses = 2; +} + +message LogicalNetworkIPUpdateResponse { + // One list of persisted IPs for each subnet (full-replace semantics). + // Only trustworthy when the gRPC status is OK. + repeated LogicalSubnetIPUpdate PersistedIPs = 1; + + // IP-level failures. May be non-empty even when the gRPC status is OK + // (partial success). + repeated IPAddressUpdateFailure Failures = 2; + + // Overall error summary. Empty when the gRPC status is OK. + string Error = 3; } diff --git a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go index 6693d636..5fde8d18 100644 --- a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go @@ -438,6 +438,170 @@ func (m *LogicalSubnet) GetNetworkSecurityGroupRef() *common.NetworkSecurityGrou return nil } +type LogicalNetworkIPUpdateRequest struct { + // Identifies the target LNET. + LocationName string `protobuf:"bytes,1,opt,name=LocationName,proto3" json:"LocationName,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + // Desired registered-IP list for each subnet (subnet-scoped full-replace). + // MOC routes each IP to the correct pool by range internally. + IPUpdates []*LogicalSubnetIPUpdate `protobuf:"bytes,3,rep,name=IPUpdates,proto3" json:"IPUpdates,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogicalNetworkIPUpdateRequest) Reset() { *m = LogicalNetworkIPUpdateRequest{} } +func (m *LogicalNetworkIPUpdateRequest) String() string { return proto.CompactTextString(m) } +func (*LogicalNetworkIPUpdateRequest) ProtoMessage() {} +func (*LogicalNetworkIPUpdateRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_37e4212e5c247b0a, []int{6} +} + +func (m *LogicalNetworkIPUpdateRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogicalNetworkIPUpdateRequest.Unmarshal(m, b) +} +func (m *LogicalNetworkIPUpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogicalNetworkIPUpdateRequest.Marshal(b, m, deterministic) +} +func (m *LogicalNetworkIPUpdateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogicalNetworkIPUpdateRequest.Merge(m, src) +} +func (m *LogicalNetworkIPUpdateRequest) XXX_Size() int { + return xxx_messageInfo_LogicalNetworkIPUpdateRequest.Size(m) +} +func (m *LogicalNetworkIPUpdateRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LogicalNetworkIPUpdateRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LogicalNetworkIPUpdateRequest proto.InternalMessageInfo + +func (m *LogicalNetworkIPUpdateRequest) GetLocationName() string { + if m != nil { + return m.LocationName + } + return "" +} + +func (m *LogicalNetworkIPUpdateRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *LogicalNetworkIPUpdateRequest) GetIPUpdates() []*LogicalSubnetIPUpdate { + if m != nil { + return m.IPUpdates + } + return nil +} + +type LogicalSubnetIPUpdate struct { + SubnetName string `protobuf:"bytes,1,opt,name=SubnetName,proto3" json:"SubnetName,omitempty"` + RegisteredIPAddresses []string `protobuf:"bytes,2,rep,name=RegisteredIPAddresses,proto3" json:"RegisteredIPAddresses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogicalSubnetIPUpdate) Reset() { *m = LogicalSubnetIPUpdate{} } +func (m *LogicalSubnetIPUpdate) String() string { return proto.CompactTextString(m) } +func (*LogicalSubnetIPUpdate) ProtoMessage() {} +func (*LogicalSubnetIPUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_37e4212e5c247b0a, []int{7} +} + +func (m *LogicalSubnetIPUpdate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogicalSubnetIPUpdate.Unmarshal(m, b) +} +func (m *LogicalSubnetIPUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogicalSubnetIPUpdate.Marshal(b, m, deterministic) +} +func (m *LogicalSubnetIPUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogicalSubnetIPUpdate.Merge(m, src) +} +func (m *LogicalSubnetIPUpdate) XXX_Size() int { + return xxx_messageInfo_LogicalSubnetIPUpdate.Size(m) +} +func (m *LogicalSubnetIPUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_LogicalSubnetIPUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_LogicalSubnetIPUpdate proto.InternalMessageInfo + +func (m *LogicalSubnetIPUpdate) GetSubnetName() string { + if m != nil { + return m.SubnetName + } + return "" +} + +func (m *LogicalSubnetIPUpdate) GetRegisteredIPAddresses() []string { + if m != nil { + return m.RegisteredIPAddresses + } + return nil +} + +type LogicalNetworkIPUpdateResponse struct { + // One list of persisted IPs for each subnet (full-replace + // semantics). Only trustworthy when the gRPC status is OK. + PersistedIPs []*LogicalSubnetIPUpdate `protobuf:"bytes,1,rep,name=PersistedIPs,proto3" json:"PersistedIPs,omitempty"` + // IP-level failures. May be non-empty even on gRPC OK (partial success). + Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` + // Overall error summary, empty on gRPC OK. + Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogicalNetworkIPUpdateResponse) Reset() { *m = LogicalNetworkIPUpdateResponse{} } +func (m *LogicalNetworkIPUpdateResponse) String() string { return proto.CompactTextString(m) } +func (*LogicalNetworkIPUpdateResponse) ProtoMessage() {} +func (*LogicalNetworkIPUpdateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_37e4212e5c247b0a, []int{8} +} + +func (m *LogicalNetworkIPUpdateResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogicalNetworkIPUpdateResponse.Unmarshal(m, b) +} +func (m *LogicalNetworkIPUpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogicalNetworkIPUpdateResponse.Marshal(b, m, deterministic) +} +func (m *LogicalNetworkIPUpdateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogicalNetworkIPUpdateResponse.Merge(m, src) +} +func (m *LogicalNetworkIPUpdateResponse) XXX_Size() int { + return xxx_messageInfo_LogicalNetworkIPUpdateResponse.Size(m) +} +func (m *LogicalNetworkIPUpdateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LogicalNetworkIPUpdateResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LogicalNetworkIPUpdateResponse proto.InternalMessageInfo + +func (m *LogicalNetworkIPUpdateResponse) GetPersistedIPs() []*LogicalSubnetIPUpdate { + if m != nil { + return m.PersistedIPs + } + return nil +} + +func (m *LogicalNetworkIPUpdateResponse) GetFailures() []*common.IPAddressUpdateFailure { + if m != nil { + return m.Failures + } + return nil +} + +func (m *LogicalNetworkIPUpdateResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + func init() { proto.RegisterType((*LogicalNetworkRequest)(nil), "moc.cloudagent.network.LogicalNetworkRequest") proto.RegisterType((*LogicalNetworkResponse)(nil), "moc.cloudagent.network.LogicalNetworkResponse") @@ -445,6 +609,9 @@ func init() { proto.RegisterType((*LogicalNetworkPrecheckResponse)(nil), "moc.cloudagent.network.LogicalNetworkPrecheckResponse") proto.RegisterType((*LogicalNetwork)(nil), "moc.cloudagent.network.LogicalNetwork") proto.RegisterType((*LogicalSubnet)(nil), "moc.cloudagent.network.LogicalSubnet") + proto.RegisterType((*LogicalNetworkIPUpdateRequest)(nil), "moc.cloudagent.network.LogicalNetworkIPUpdateRequest") + proto.RegisterType((*LogicalSubnetIPUpdate)(nil), "moc.cloudagent.network.LogicalSubnetIPUpdate") + proto.RegisterType((*LogicalNetworkIPUpdateResponse)(nil), "moc.cloudagent.network.LogicalNetworkIPUpdateResponse") } func init() { @@ -452,53 +619,63 @@ func init() { } var fileDescriptor_37e4212e5c247b0a = []byte{ - // 735 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0xc6, 0x49, 0x36, 0x3f, 0x27, 0x24, 0xa0, 0x01, 0xb6, 0x56, 0xc4, 0x56, 0x91, 0x97, 0x5d, - 0xe5, 0x06, 0x5b, 0x84, 0xbf, 0x4b, 0xd4, 0x88, 0x05, 0xad, 0x04, 0x25, 0x9a, 0xae, 0xf6, 0x02, - 0x21, 0x55, 0x93, 0xf1, 0x24, 0x1d, 0x6a, 0x7b, 0xdc, 0x99, 0x71, 0x4b, 0xe1, 0x05, 0xb8, 0xe5, - 0x09, 0x78, 0x01, 0x2e, 0xe1, 0xf1, 0x90, 0x90, 0x4f, 0xc6, 0x69, 0x1c, 0x5a, 0x48, 0x2f, 0x7a, - 0x65, 0xfb, 0x7c, 0xdf, 0xf9, 0xce, 0x39, 0xdf, 0x8c, 0x0f, 0x3c, 0x4d, 0x15, 0x3f, 0xe5, 0x89, - 0x2a, 0x62, 0xb6, 0x12, 0x99, 0x3d, 0x4d, 0xd4, 0x4a, 0x72, 0x96, 0x64, 0xc2, 0x5e, 0x29, 0x7d, - 0x1e, 0xe6, 0x5a, 0x59, 0x45, 0x1e, 0xa7, 0x8a, 0x87, 0x37, 0xa4, 0xd0, 0xa1, 0xa3, 0xc3, 0x95, - 0x52, 0xab, 0x44, 0x44, 0xc8, 0x5a, 0x14, 0xcb, 0xe8, 0x4a, 0xb3, 0x3c, 0x17, 0xda, 0xac, 0xf3, - 0x46, 0x07, 0x28, 0xae, 0xd2, 0x54, 0x65, 0xee, 0xe1, 0x80, 0xc3, 0x2d, 0xc0, 0x89, 0x6d, 0xe3, - 0xc1, 0xef, 0x1e, 0xbc, 0xf7, 0xcd, 0xba, 0x93, 0xe3, 0x35, 0x4c, 0xc5, 0x45, 0x21, 0x8c, 0x25, - 0x73, 0x78, 0xab, 0x0e, 0x18, 0xdf, 0x1b, 0x37, 0x27, 0xfd, 0xe9, 0xf3, 0xf0, 0xf6, 0x26, 0xc3, - 0x1d, 0x9d, 0xdd, 0x74, 0xf2, 0x09, 0x0c, 0xbe, 0xcb, 0x85, 0x66, 0x56, 0xaa, 0xec, 0xd5, 0x75, - 0x2e, 0xfc, 0xc6, 0xd8, 0x9b, 0x0c, 0xa7, 0x43, 0xd4, 0xdb, 0x20, 0xb4, 0x4e, 0x0a, 0xfe, 0xf4, - 0xe0, 0xf1, 0x6e, 0x87, 0x26, 0x57, 0x99, 0x11, 0x0f, 0xd0, 0xe2, 0x14, 0xda, 0x54, 0x98, 0x22, - 0xb1, 0xd8, 0x5b, 0x7f, 0x3a, 0x0a, 0xd7, 0xc6, 0x87, 0x95, 0xf1, 0xe1, 0x4c, 0xa9, 0xe4, 0x35, - 0x4b, 0x0a, 0x41, 0x1d, 0x93, 0xbc, 0x0b, 0x8f, 0x5e, 0x68, 0xad, 0xb4, 0xdf, 0x1c, 0x7b, 0x93, - 0x1e, 0x5d, 0x7f, 0x04, 0x17, 0xf0, 0xa4, 0x2e, 0x3e, 0xd7, 0x82, 0x9f, 0x09, 0xfe, 0x70, 0xfe, - 0x06, 0x3f, 0xc2, 0xe1, 0x5d, 0x25, 0x9d, 0x61, 0x37, 0xe3, 0x79, 0xf7, 0x1f, 0xaf, 0xb1, 0x3d, - 0xde, 0x6f, 0x4d, 0x18, 0xd6, 0x8b, 0x11, 0x02, 0xad, 0x8c, 0xa5, 0x02, 0xa5, 0x7b, 0x14, 0xdf, - 0xc9, 0x10, 0x1a, 0x32, 0x76, 0x99, 0x0d, 0x19, 0x93, 0x2f, 0xa0, 0x63, 0x8a, 0x45, 0x26, 0xac, - 0xf1, 0x9b, 0x38, 0xec, 0xb3, 0xff, 0x19, 0xf6, 0x04, 0xd9, 0xb4, 0xca, 0x22, 0x33, 0x78, 0xdf, - 0x31, 0x5e, 0x4b, 0x6d, 0x0b, 0x96, 0xc8, 0x9f, 0xf1, 0xaa, 0xbc, 0xc8, 0xd8, 0x22, 0x11, 0xb1, - 0xdf, 0x1a, 0x7b, 0x93, 0x2e, 0xfd, 0x4f, 0x0e, 0x79, 0x0a, 0x6d, 0x63, 0x99, 0x2d, 0x8c, 0xff, - 0x08, 0x5d, 0xe8, 0x63, 0x0f, 0x27, 0x18, 0xa2, 0x0e, 0x22, 0x01, 0xbc, 0x99, 0x28, 0x8e, 0x79, - 0xc7, 0xe5, 0x54, 0x6d, 0x9c, 0xa1, 0x16, 0x23, 0xcf, 0xa1, 0x9f, 0x32, 0x3e, 0x57, 0x2a, 0x41, - 0x4a, 0xa7, 0xa4, 0xcc, 0x5a, 0xbf, 0xfe, 0xe5, 0x7b, 0x74, 0x1b, 0x20, 0x4f, 0xa0, 0x65, 0xd9, - 0xca, 0xf8, 0x5d, 0x2c, 0xd7, 0xc3, 0x72, 0xaf, 0xd8, 0xca, 0x50, 0x0c, 0x93, 0xaf, 0xe0, 0x6d, - 0x16, 0x5f, 0xb2, 0x8c, 0x8b, 0x78, 0xae, 0x12, 0xc9, 0xa5, 0x30, 0x7e, 0x0f, 0xdd, 0x19, 0x21, - 0xf5, 0xc8, 0x81, 0xd5, 0xa9, 0x96, 0x9c, 0x6b, 0xfa, 0xaf, 0x9c, 0xe0, 0x8f, 0x26, 0x0c, 0x6a, - 0xb6, 0xed, 0x75, 0x24, 0x1f, 0xc0, 0x80, 0xc5, 0xb1, 0x16, 0xc6, 0xcc, 0xb5, 0x58, 0xca, 0x9f, - 0xdc, 0x35, 0xae, 0x07, 0x49, 0x00, 0x6d, 0xad, 0x0a, 0x2b, 0x8c, 0xdf, 0xc2, 0xce, 0x00, 0x3b, - 0xa3, 0x65, 0x88, 0x3a, 0x84, 0x7c, 0x0e, 0xc0, 0x92, 0xca, 0x20, 0xf4, 0x76, 0x38, 0x3d, 0x40, - 0xde, 0xcb, 0xf9, 0xd1, 0x06, 0xf8, 0x56, 0xd8, 0x33, 0x15, 0xd3, 0x2d, 0x6a, 0xd9, 0xe6, 0x65, - 0xc2, 0x32, 0xf4, 0x78, 0x40, 0xf1, 0x9d, 0x3c, 0x83, 0x8e, 0xcc, 0x4b, 0x07, 0x8d, 0xdf, 0xc1, - 0x8a, 0x7d, 0xa7, 0x54, 0xc6, 0x68, 0x85, 0x91, 0x31, 0x34, 0xe3, 0xac, 0x72, 0xb6, 0x8b, 0x94, - 0x2f, 0x33, 0xe3, 0x0e, 0xa1, 0x84, 0xc8, 0x08, 0xba, 0xd2, 0xcc, 0x8b, 0x45, 0x22, 0xb9, 0xdf, - 0xc3, 0xdb, 0xb1, 0xf9, 0xde, 0x1c, 0x0c, 0xdc, 0x7e, 0x30, 0x3f, 0xc0, 0x81, 0xbb, 0x48, 0x27, - 0x82, 0x17, 0x5a, 0xda, 0xeb, 0xaf, 0xb5, 0x2a, 0x72, 0x2a, 0x96, 0x7e, 0x1f, 0x33, 0x02, 0xcc, - 0x38, 0xbe, 0x9d, 0x23, 0xb4, 0xc8, 0xb8, 0xa0, 0x77, 0x49, 0x4c, 0xff, 0xf6, 0xe0, 0x9d, 0xfa, - 0x2f, 0x74, 0x54, 0xfe, 0x01, 0x44, 0x42, 0xfb, 0x65, 0x76, 0xa9, 0xce, 0x05, 0xf9, 0x70, 0xcf, - 0x4d, 0xb0, 0xde, 0x28, 0xa3, 0x70, 0x5f, 0xfa, 0x7a, 0x1b, 0x04, 0x6f, 0x90, 0x5f, 0xa0, 0x5b, - 0xed, 0x08, 0xf2, 0xe9, 0x7e, 0xd9, 0x3b, 0x6b, 0x6c, 0xf4, 0xd9, 0x7d, 0xd3, 0xaa, 0xe2, 0xb3, - 0x8f, 0xbe, 0x8f, 0x56, 0xd2, 0x9e, 0x15, 0x8b, 0x90, 0xab, 0x34, 0x4a, 0x25, 0xd7, 0xca, 0xa8, - 0xa5, 0x8d, 0x52, 0xc5, 0x23, 0x9d, 0xf3, 0xe8, 0x46, 0x33, 0x72, 0x9a, 0x8b, 0x36, 0xee, 0xa9, - 0x8f, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xce, 0x6d, 0x63, 0x28, 0x4c, 0x07, 0x00, 0x00, + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdd, 0x8e, 0xdb, 0x44, + 0x14, 0xae, 0x93, 0x34, 0x3f, 0x27, 0xbb, 0x01, 0x4d, 0x69, 0xd7, 0x0a, 0x74, 0x15, 0xb9, 0xb4, + 0xca, 0x4d, 0x1d, 0x11, 0x0a, 0xbd, 0x44, 0xbb, 0xa2, 0xad, 0x22, 0x95, 0xc5, 0xcc, 0x96, 0x5e, + 0x20, 0xa4, 0x6a, 0x62, 0xcf, 0x66, 0x87, 0x3a, 0x1e, 0x77, 0x66, 0xbc, 0x65, 0xe1, 0xbe, 0xe2, + 0x96, 0x27, 0x80, 0x07, 0xe0, 0x12, 0x5e, 0x80, 0x27, 0x43, 0x3e, 0x1e, 0x3b, 0x71, 0x48, 0x21, + 0x7b, 0xd1, 0xab, 0x38, 0xe7, 0xfb, 0xce, 0xdf, 0x77, 0x8e, 0x8f, 0xe1, 0xce, 0x52, 0x86, 0x2f, + 0xc2, 0x58, 0x66, 0x11, 0x5b, 0xf0, 0xc4, 0xbc, 0x88, 0xe5, 0x42, 0x84, 0x2c, 0x4e, 0xb8, 0x79, + 0x2d, 0xd5, 0x4b, 0x3f, 0x55, 0xd2, 0x48, 0x72, 0x6b, 0x29, 0x43, 0x7f, 0x45, 0xf2, 0x2d, 0x3a, + 0x3c, 0x5c, 0x48, 0xb9, 0x88, 0xf9, 0x04, 0x59, 0xf3, 0xec, 0x6c, 0xf2, 0x5a, 0xb1, 0x34, 0xe5, + 0x4a, 0x17, 0x7e, 0xc3, 0x03, 0x0c, 0x2e, 0x97, 0x4b, 0x99, 0xd8, 0x1f, 0x0b, 0x1c, 0xae, 0x01, + 0x36, 0xd8, 0x3a, 0xee, 0xfd, 0xe6, 0xc0, 0xcd, 0xa7, 0x45, 0x25, 0x27, 0x05, 0x4c, 0xf9, 0xab, + 0x8c, 0x6b, 0x43, 0x02, 0x78, 0xaf, 0x0e, 0x68, 0xd7, 0x19, 0x35, 0xc7, 0xfd, 0xe9, 0x3d, 0x7f, + 0x7b, 0x91, 0xfe, 0x46, 0x9c, 0x4d, 0x77, 0xf2, 0x00, 0xf6, 0xbf, 0x4e, 0xb9, 0x62, 0x46, 0xc8, + 0xe4, 0xd9, 0x65, 0xca, 0xdd, 0xc6, 0xc8, 0x19, 0x0f, 0xa6, 0x03, 0x8c, 0x57, 0x21, 0xb4, 0x4e, + 0xf2, 0xfe, 0x74, 0xe0, 0xd6, 0x66, 0x85, 0x3a, 0x95, 0x89, 0xe6, 0xef, 0xa0, 0xc4, 0x29, 0xb4, + 0x29, 0xd7, 0x59, 0x6c, 0xb0, 0xb6, 0xfe, 0x74, 0xe8, 0x17, 0xc2, 0xfb, 0xa5, 0xf0, 0xfe, 0xb1, + 0x94, 0xf1, 0x73, 0x16, 0x67, 0x9c, 0x5a, 0x26, 0xf9, 0x00, 0xae, 0x3f, 0x52, 0x4a, 0x2a, 0xb7, + 0x39, 0x72, 0xc6, 0x3d, 0x5a, 0xfc, 0xf1, 0x5e, 0xc1, 0xed, 0x7a, 0xf0, 0x40, 0xf1, 0xf0, 0x9c, + 0x87, 0xef, 0x4e, 0x5f, 0xef, 0x07, 0x38, 0x7c, 0x5b, 0x4a, 0x2b, 0xd8, 0xaa, 0x3d, 0xe7, 0xea, + 0xed, 0x35, 0xd6, 0xdb, 0xfb, 0xb5, 0x09, 0x83, 0x7a, 0x32, 0x42, 0xa0, 0x95, 0xb0, 0x25, 0xc7, + 0xd0, 0x3d, 0x8a, 0xcf, 0x64, 0x00, 0x0d, 0x11, 0x59, 0xcf, 0x86, 0x88, 0xc8, 0x17, 0xd0, 0xd1, + 0xd9, 0x3c, 0xe1, 0x46, 0xbb, 0x4d, 0x6c, 0xf6, 0xee, 0xff, 0x34, 0x7b, 0x8a, 0x6c, 0x5a, 0x7a, + 0x91, 0x63, 0xf8, 0xc8, 0x32, 0x9e, 0x0b, 0x65, 0x32, 0x16, 0x8b, 0x9f, 0x70, 0x55, 0x1e, 0x25, + 0x6c, 0x1e, 0xf3, 0xc8, 0x6d, 0x8d, 0x9c, 0x71, 0x97, 0xfe, 0x27, 0x87, 0xdc, 0x81, 0xb6, 0x36, + 0xcc, 0x64, 0xda, 0xbd, 0x8e, 0x2a, 0xf4, 0xb1, 0x86, 0x53, 0x34, 0x51, 0x0b, 0x11, 0x0f, 0xf6, + 0x62, 0x19, 0xa2, 0xdf, 0x49, 0xde, 0x55, 0x1b, 0x7b, 0xa8, 0xd9, 0xc8, 0x3d, 0xe8, 0x2f, 0x59, + 0x18, 0x48, 0x19, 0x23, 0xa5, 0x93, 0x53, 0x8e, 0x5b, 0xbf, 0xfc, 0xe5, 0x3a, 0x74, 0x1d, 0x20, + 0xb7, 0xa1, 0x65, 0xd8, 0x42, 0xbb, 0x5d, 0x4c, 0xd7, 0xc3, 0x74, 0xcf, 0xd8, 0x42, 0x53, 0x34, + 0x93, 0xc7, 0xf0, 0x3e, 0x8b, 0x2e, 0x58, 0x12, 0xf2, 0x28, 0x90, 0xb1, 0x08, 0x05, 0xd7, 0x6e, + 0x0f, 0xd5, 0x19, 0x22, 0xf5, 0xc8, 0x82, 0xe5, 0x54, 0x73, 0xce, 0x25, 0xfd, 0x97, 0x8f, 0xf7, + 0x47, 0x13, 0xf6, 0x6b, 0xb2, 0xed, 0x34, 0x92, 0x8f, 0x61, 0x9f, 0x45, 0x91, 0xe2, 0x5a, 0x07, + 0x8a, 0x9f, 0x89, 0x1f, 0xed, 0x1a, 0xd7, 0x8d, 0xc4, 0x83, 0xb6, 0x92, 0x99, 0xe1, 0xda, 0x6d, + 0x61, 0x65, 0x80, 0x95, 0xd1, 0xdc, 0x44, 0x2d, 0x42, 0x1e, 0x02, 0xb0, 0xb8, 0x14, 0x08, 0xb5, + 0x1d, 0x4c, 0x0f, 0x90, 0x37, 0x0b, 0x8e, 0x2a, 0xe0, 0x2b, 0x6e, 0xce, 0x65, 0x44, 0xd7, 0xa8, + 0x79, 0x99, 0x17, 0x31, 0x4b, 0x50, 0xe3, 0x7d, 0x8a, 0xcf, 0xe4, 0x2e, 0x74, 0x44, 0x9a, 0x2b, + 0xa8, 0xdd, 0x0e, 0x66, 0xec, 0xdb, 0x48, 0xb9, 0x8d, 0x96, 0x18, 0x19, 0x41, 0x33, 0x4a, 0x4a, + 0x65, 0xbb, 0x48, 0xf9, 0x32, 0xd1, 0x76, 0x08, 0x39, 0x44, 0x86, 0xd0, 0x15, 0x3a, 0xc8, 0xe6, + 0xb1, 0x08, 0xdd, 0x1e, 0x6e, 0x47, 0xf5, 0xbf, 0x1a, 0x0c, 0x6c, 0x1f, 0xcc, 0xf7, 0x70, 0x60, + 0x17, 0xe9, 0x94, 0x87, 0x99, 0x12, 0xe6, 0xf2, 0x89, 0x92, 0x59, 0x4a, 0xf9, 0x99, 0xdb, 0x47, + 0x0f, 0x0f, 0x3d, 0x4e, 0xb6, 0x73, 0xb8, 0xe2, 0x49, 0xc8, 0xe9, 0xdb, 0x42, 0x78, 0xbf, 0x3b, + 0x9b, 0x27, 0x62, 0x16, 0x7c, 0x9b, 0x46, 0xcc, 0xf0, 0xf2, 0x44, 0x78, 0xb0, 0xf7, 0x74, 0x7d, + 0x07, 0x8b, 0x31, 0xd6, 0x6c, 0xb9, 0x76, 0x88, 0x15, 0x03, 0xc5, 0x67, 0xf2, 0x04, 0x3a, 0xa7, + 0xb5, 0xb7, 0xec, 0xfe, 0x4e, 0x6f, 0x59, 0x95, 0xbe, 0xf4, 0xf6, 0x58, 0xf5, 0x71, 0xa8, 0x33, + 0xaa, 0xac, 0xce, 0x5a, 0xd6, 0x07, 0x70, 0x93, 0xf2, 0x85, 0xd0, 0x86, 0x2b, 0x1e, 0xcd, 0x82, + 0xa3, 0x62, 0x7f, 0xb8, 0x76, 0x1b, 0xa3, 0xe6, 0xb8, 0x47, 0xb7, 0x83, 0xde, 0xdf, 0xce, 0xe6, + 0xd5, 0x5a, 0xa9, 0x60, 0xaf, 0xd6, 0x37, 0xb0, 0x17, 0x70, 0xa5, 0x73, 0xe7, 0x68, 0x16, 0x94, + 0x67, 0xf2, 0x8a, 0x3d, 0xd5, 0x42, 0x90, 0x87, 0xd0, 0x7d, 0xcc, 0x44, 0x9c, 0x29, 0x5b, 0x5e, + 0x7f, 0xfa, 0x61, 0xb9, 0xa8, 0x45, 0x65, 0x85, 0x97, 0xe5, 0xd0, 0x8a, 0xbc, 0xfd, 0xd8, 0x4f, + 0xdf, 0x34, 0xe1, 0x46, 0xbd, 0x89, 0xa3, 0xbc, 0x24, 0x22, 0xa0, 0x3d, 0x4b, 0x2e, 0xe4, 0x4b, + 0x4e, 0xee, 0xef, 0x78, 0xd4, 0x8b, 0xc9, 0x0f, 0xfd, 0x5d, 0xe9, 0x85, 0x44, 0xde, 0x35, 0xf2, + 0x33, 0x74, 0xcb, 0x73, 0x4f, 0x3e, 0xdb, 0xcd, 0x7b, 0xe3, 0x8b, 0x34, 0xfc, 0xfc, 0xaa, 0x6e, + 0x55, 0xf2, 0x37, 0x0e, 0xdc, 0x28, 0x87, 0xb6, 0x1a, 0xb2, 0xde, 0xb5, 0x90, 0x8d, 0xbd, 0xdf, + 0xb5, 0x90, 0xcd, 0x45, 0xf1, 0xae, 0x1d, 0x7f, 0xf2, 0xdd, 0x64, 0x21, 0xcc, 0x79, 0x36, 0xf7, + 0x43, 0xb9, 0x9c, 0x2c, 0x45, 0xa8, 0xa4, 0x96, 0x67, 0x66, 0xb2, 0x94, 0xe1, 0x44, 0xa5, 0xe1, + 0x64, 0x15, 0x73, 0x62, 0x63, 0xce, 0xdb, 0xf8, 0xed, 0xfb, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xea, 0xd2, 0xdf, 0x11, 0xa0, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -516,6 +693,12 @@ type LogicalNetworkAgentClient interface { Invoke(ctx context.Context, in *LogicalNetworkRequest, opts ...grpc.CallOption) (*LogicalNetworkResponse, error) // Prechecks whether the system is able to create specified logical networks (but does not actually create them). Precheck(ctx context.Context, in *LogicalNetworkPrecheckRequest, opts ...grpc.CallOption) (*LogicalNetworkPrecheckResponse, error) + // Replaces the registeredIPAddresses list on each referenced subnet with + // the supplied list (subnet-scoped full-replace) and applies the + // corresponding add/remove delta to the IPAM bitmap. Independent from + // spec Update(): does not run Validate/validateUpdate, does not touch + // ProvisionState, and does not fan out to nodeagents. + UpdateRegisteredIPs(ctx context.Context, in *LogicalNetworkIPUpdateRequest, opts ...grpc.CallOption) (*LogicalNetworkIPUpdateResponse, error) } type logicalNetworkAgentClient struct { @@ -544,11 +727,26 @@ func (c *logicalNetworkAgentClient) Precheck(ctx context.Context, in *LogicalNet return out, nil } +func (c *logicalNetworkAgentClient) UpdateRegisteredIPs(ctx context.Context, in *LogicalNetworkIPUpdateRequest, opts ...grpc.CallOption) (*LogicalNetworkIPUpdateResponse, error) { + out := new(LogicalNetworkIPUpdateResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.LogicalNetworkAgent/UpdateRegisteredIPs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // LogicalNetworkAgentServer is the server API for LogicalNetworkAgent service. type LogicalNetworkAgentServer interface { Invoke(context.Context, *LogicalNetworkRequest) (*LogicalNetworkResponse, error) // Prechecks whether the system is able to create specified logical networks (but does not actually create them). Precheck(context.Context, *LogicalNetworkPrecheckRequest) (*LogicalNetworkPrecheckResponse, error) + // Replaces the registeredIPAddresses list on each referenced subnet with + // the supplied list (subnet-scoped full-replace) and applies the + // corresponding add/remove delta to the IPAM bitmap. Independent from + // spec Update(): does not run Validate/validateUpdate, does not touch + // ProvisionState, and does not fan out to nodeagents. + UpdateRegisteredIPs(context.Context, *LogicalNetworkIPUpdateRequest) (*LogicalNetworkIPUpdateResponse, error) } // UnimplementedLogicalNetworkAgentServer can be embedded to have forward compatible implementations. @@ -561,6 +759,9 @@ func (*UnimplementedLogicalNetworkAgentServer) Invoke(ctx context.Context, req * func (*UnimplementedLogicalNetworkAgentServer) Precheck(ctx context.Context, req *LogicalNetworkPrecheckRequest) (*LogicalNetworkPrecheckResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") } +func (*UnimplementedLogicalNetworkAgentServer) UpdateRegisteredIPs(ctx context.Context, req *LogicalNetworkIPUpdateRequest) (*LogicalNetworkIPUpdateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRegisteredIPs not implemented") +} func RegisterLogicalNetworkAgentServer(s *grpc.Server, srv LogicalNetworkAgentServer) { s.RegisterService(&_LogicalNetworkAgent_serviceDesc, srv) @@ -602,6 +803,24 @@ func _LogicalNetworkAgent_Precheck_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _LogicalNetworkAgent_UpdateRegisteredIPs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LogicalNetworkIPUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicalNetworkAgentServer).UpdateRegisteredIPs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.LogicalNetworkAgent/UpdateRegisteredIPs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicalNetworkAgentServer).UpdateRegisteredIPs(ctx, req.(*LogicalNetworkIPUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _LogicalNetworkAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.LogicalNetworkAgent", HandlerType: (*LogicalNetworkAgentServer)(nil), @@ -614,6 +833,10 @@ var _LogicalNetworkAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Precheck", Handler: _LogicalNetworkAgent_Precheck_Handler, }, + { + MethodName: "UpdateRegisteredIPs", + Handler: _LogicalNetworkAgent_UpdateRegisteredIPs_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_logicalnetwork.proto", diff --git a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go index 212d761a..1408983e 100644 --- a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go @@ -555,6 +555,170 @@ func (m *Ipam) GetSubnets() []*Subnet { return nil } +type VirtualNetworkIPUpdateRequest struct { + // Identifies the target VNET. + GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + // Desired registered-IP list for each subnet (subnet-scoped full-replace). + // MOC routes each IP to the correct pool by range internally. + IPUpdates []*VirtualSubnetIPUpdate `protobuf:"bytes,3,rep,name=IPUpdates,proto3" json:"IPUpdates,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualNetworkIPUpdateRequest) Reset() { *m = VirtualNetworkIPUpdateRequest{} } +func (m *VirtualNetworkIPUpdateRequest) String() string { return proto.CompactTextString(m) } +func (*VirtualNetworkIPUpdateRequest) ProtoMessage() {} +func (*VirtualNetworkIPUpdateRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_65af3e74534f0214, []int{7} +} + +func (m *VirtualNetworkIPUpdateRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualNetworkIPUpdateRequest.Unmarshal(m, b) +} +func (m *VirtualNetworkIPUpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualNetworkIPUpdateRequest.Marshal(b, m, deterministic) +} +func (m *VirtualNetworkIPUpdateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualNetworkIPUpdateRequest.Merge(m, src) +} +func (m *VirtualNetworkIPUpdateRequest) XXX_Size() int { + return xxx_messageInfo_VirtualNetworkIPUpdateRequest.Size(m) +} +func (m *VirtualNetworkIPUpdateRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualNetworkIPUpdateRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualNetworkIPUpdateRequest proto.InternalMessageInfo + +func (m *VirtualNetworkIPUpdateRequest) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *VirtualNetworkIPUpdateRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *VirtualNetworkIPUpdateRequest) GetIPUpdates() []*VirtualSubnetIPUpdate { + if m != nil { + return m.IPUpdates + } + return nil +} + +type VirtualSubnetIPUpdate struct { + SubnetName string `protobuf:"bytes,1,opt,name=SubnetName,proto3" json:"SubnetName,omitempty"` + RegisteredIPAddresses []string `protobuf:"bytes,2,rep,name=RegisteredIPAddresses,proto3" json:"RegisteredIPAddresses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualSubnetIPUpdate) Reset() { *m = VirtualSubnetIPUpdate{} } +func (m *VirtualSubnetIPUpdate) String() string { return proto.CompactTextString(m) } +func (*VirtualSubnetIPUpdate) ProtoMessage() {} +func (*VirtualSubnetIPUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_65af3e74534f0214, []int{8} +} + +func (m *VirtualSubnetIPUpdate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualSubnetIPUpdate.Unmarshal(m, b) +} +func (m *VirtualSubnetIPUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualSubnetIPUpdate.Marshal(b, m, deterministic) +} +func (m *VirtualSubnetIPUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualSubnetIPUpdate.Merge(m, src) +} +func (m *VirtualSubnetIPUpdate) XXX_Size() int { + return xxx_messageInfo_VirtualSubnetIPUpdate.Size(m) +} +func (m *VirtualSubnetIPUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualSubnetIPUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualSubnetIPUpdate proto.InternalMessageInfo + +func (m *VirtualSubnetIPUpdate) GetSubnetName() string { + if m != nil { + return m.SubnetName + } + return "" +} + +func (m *VirtualSubnetIPUpdate) GetRegisteredIPAddresses() []string { + if m != nil { + return m.RegisteredIPAddresses + } + return nil +} + +type VirtualNetworkIPUpdateResponse struct { + // One list of persisted IPs for each subnet (full-replace + // semantics). Only trustworthy when the gRPC status is OK. + PersistedIPs []*VirtualSubnetIPUpdate `protobuf:"bytes,1,rep,name=PersistedIPs,proto3" json:"PersistedIPs,omitempty"` + // IP-level failures. May be non-empty even on gRPC OK (partial success). + Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` + // Overall error summary, empty on gRPC OK. + Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VirtualNetworkIPUpdateResponse) Reset() { *m = VirtualNetworkIPUpdateResponse{} } +func (m *VirtualNetworkIPUpdateResponse) String() string { return proto.CompactTextString(m) } +func (*VirtualNetworkIPUpdateResponse) ProtoMessage() {} +func (*VirtualNetworkIPUpdateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_65af3e74534f0214, []int{9} +} + +func (m *VirtualNetworkIPUpdateResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VirtualNetworkIPUpdateResponse.Unmarshal(m, b) +} +func (m *VirtualNetworkIPUpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VirtualNetworkIPUpdateResponse.Marshal(b, m, deterministic) +} +func (m *VirtualNetworkIPUpdateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_VirtualNetworkIPUpdateResponse.Merge(m, src) +} +func (m *VirtualNetworkIPUpdateResponse) XXX_Size() int { + return xxx_messageInfo_VirtualNetworkIPUpdateResponse.Size(m) +} +func (m *VirtualNetworkIPUpdateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_VirtualNetworkIPUpdateResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_VirtualNetworkIPUpdateResponse proto.InternalMessageInfo + +func (m *VirtualNetworkIPUpdateResponse) GetPersistedIPs() []*VirtualSubnetIPUpdate { + if m != nil { + return m.PersistedIPs + } + return nil +} + +func (m *VirtualNetworkIPUpdateResponse) GetFailures() []*common.IPAddressUpdateFailure { + if m != nil { + return m.Failures + } + return nil +} + +func (m *VirtualNetworkIPUpdateResponse) GetError() string { + if m != nil { + return m.Error + } + return "" +} + func init() { proto.RegisterEnum("moc.cloudagent.network.VirtualNetworkType", VirtualNetworkType_name, VirtualNetworkType_value) proto.RegisterType((*VirtualNetworkRequest)(nil), "moc.cloudagent.network.VirtualNetworkRequest") @@ -564,6 +728,9 @@ func init() { proto.RegisterType((*VirtualNetwork)(nil), "moc.cloudagent.network.VirtualNetwork") proto.RegisterType((*Subnet)(nil), "moc.cloudagent.network.Subnet") proto.RegisterType((*Ipam)(nil), "moc.cloudagent.network.Ipam") + proto.RegisterType((*VirtualNetworkIPUpdateRequest)(nil), "moc.cloudagent.network.VirtualNetworkIPUpdateRequest") + proto.RegisterType((*VirtualSubnetIPUpdate)(nil), "moc.cloudagent.network.VirtualSubnetIPUpdate") + proto.RegisterType((*VirtualNetworkIPUpdateResponse)(nil), "moc.cloudagent.network.VirtualNetworkIPUpdateResponse") } func init() { @@ -571,62 +738,72 @@ func init() { } var fileDescriptor_65af3e74534f0214 = []byte{ - // 875 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0x5e, 0x27, 0x69, 0x7e, 0x8e, 0xdb, 0xd4, 0x1a, 0xd8, 0xad, 0x15, 0xb1, 0x55, 0xe4, 0x15, - 0xab, 0xb2, 0x12, 0x8e, 0x08, 0xbf, 0x37, 0x20, 0xb5, 0x80, 0x50, 0x56, 0x6c, 0x37, 0x9a, 0x46, - 0xbd, 0x40, 0x48, 0xab, 0xa9, 0x3d, 0x49, 0xcd, 0xda, 0x33, 0xee, 0xcc, 0x38, 0xab, 0x8a, 0x17, - 0x80, 0xf7, 0x81, 0x97, 0xe0, 0x15, 0x78, 0x0c, 0xae, 0x91, 0xd0, 0x1c, 0x3b, 0xbf, 0x6c, 0xa5, - 0xf4, 0x62, 0xaf, 0xec, 0x99, 0xef, 0x3b, 0xbf, 0xdf, 0x99, 0x03, 0x4f, 0x32, 0x19, 0xbd, 0x8a, - 0x52, 0x59, 0xc4, 0x6c, 0xc6, 0x85, 0x79, 0x35, 0x4f, 0x94, 0x29, 0x58, 0x2a, 0xb8, 0x79, 0x23, - 0xd5, 0xeb, 0x30, 0x57, 0xd2, 0x48, 0xf2, 0x28, 0x93, 0x51, 0xb8, 0x22, 0x85, 0x15, 0xda, 0x3b, - 0x9e, 0x49, 0x39, 0x4b, 0xf9, 0x00, 0x59, 0x57, 0xc5, 0x74, 0xf0, 0x46, 0xb1, 0x3c, 0xe7, 0x4a, - 0x97, 0x76, 0xbd, 0x23, 0x74, 0x2e, 0xb3, 0x4c, 0x8a, 0xea, 0x53, 0x01, 0xc7, 0x6b, 0x40, 0xe5, - 0x6c, 0x1d, 0x0f, 0xfe, 0x72, 0xe0, 0xe1, 0x65, 0x99, 0xc9, 0x79, 0x09, 0x53, 0x7e, 0x53, 0x70, - 0x6d, 0xc8, 0x18, 0x0e, 0x37, 0x01, 0xed, 0x3b, 0xfd, 0xfa, 0x89, 0x3b, 0x7c, 0x1a, 0xbe, 0x3d, - 0xc9, 0x70, 0xcb, 0xcf, 0xb6, 0x39, 0xf9, 0x0c, 0x0e, 0x5e, 0xe6, 0x5c, 0x31, 0x93, 0x48, 0x31, - 0xb9, 0xcd, 0xb9, 0x5f, 0xeb, 0x3b, 0x27, 0xdd, 0x61, 0x17, 0xfd, 0x2d, 0x11, 0xba, 0x49, 0x22, - 0x1f, 0x41, 0x6b, 0xce, 0x95, 0x4e, 0xa4, 0xf0, 0xeb, 0x7d, 0xe7, 0xc4, 0x1d, 0x1e, 0x22, 0xff, - 0x34, 0x4f, 0x2e, 0xcb, 0x6b, 0xba, 0xc0, 0x83, 0x3f, 0x1c, 0x78, 0xb4, 0x5d, 0x8c, 0xce, 0xa5, - 0xd0, 0xfc, 0x1d, 0x54, 0x33, 0x84, 0x26, 0xe5, 0xba, 0x48, 0x0d, 0x96, 0xe1, 0x0e, 0x7b, 0x61, - 0xa9, 0x51, 0xb8, 0xd0, 0x28, 0x3c, 0x93, 0x32, 0xbd, 0x64, 0x69, 0xc1, 0x69, 0xc5, 0x24, 0xef, - 0xc3, 0xde, 0xf7, 0x4a, 0x49, 0x85, 0x95, 0x74, 0x68, 0x79, 0x08, 0x6e, 0xe0, 0xf1, 0xa6, 0xf3, - 0xb1, 0xe2, 0xd1, 0x35, 0x8f, 0xde, 0x9d, 0x14, 0xc1, 0x2f, 0x70, 0x7c, 0x57, 0xc8, 0xaa, 0x61, - 0xab, 0xf2, 0x9c, 0xfb, 0x97, 0x57, 0x5b, 0x2f, 0xef, 0x9f, 0x3a, 0x74, 0x37, 0x83, 0x11, 0x02, - 0x0d, 0xc1, 0x32, 0x8e, 0xae, 0x3b, 0x14, 0xff, 0x49, 0x17, 0x6a, 0x49, 0x5c, 0x59, 0xd6, 0x92, - 0x98, 0x7c, 0x05, 0x2d, 0x5d, 0x5c, 0x09, 0x6e, 0xb4, 0x5f, 0xc7, 0x62, 0x8f, 0xef, 0x2a, 0xf6, - 0x02, 0x69, 0x74, 0x41, 0x27, 0x7d, 0xa8, 0xc7, 0x42, 0xfb, 0x0d, 0xcc, 0xbb, 0x8d, 0x56, 0xdf, - 0x09, 0x7d, 0xd6, 0xf8, 0xed, 0x4f, 0xdf, 0xa1, 0x16, 0x22, 0xdf, 0x40, 0xc3, 0xd8, 0x01, 0xdc, - 0xc3, 0x01, 0x7c, 0xb6, 0x5b, 0x17, 0xed, 0x34, 0x52, 0xb4, 0x23, 0x3d, 0x68, 0x0b, 0x19, 0xf3, - 0xe9, 0x4d, 0x2c, 0xfc, 0x26, 0x66, 0xbc, 0x3c, 0x93, 0x0f, 0xa0, 0x33, 0x53, 0xb2, 0xc8, 0xcf, - 0x6d, 0x81, 0x2d, 0x04, 0x57, 0x17, 0xe4, 0x09, 0x34, 0xb5, 0x61, 0xa6, 0xd0, 0x7e, 0x1b, 0xd3, - 0x73, 0x31, 0xf6, 0x05, 0x5e, 0xd1, 0x0a, 0x22, 0x01, 0xec, 0xa7, 0x32, 0xc2, 0x27, 0x80, 0x5e, - 0x3a, 0xe8, 0x65, 0xe3, 0x8e, 0x3c, 0x05, 0x37, 0x63, 0xd1, 0x58, 0xca, 0x14, 0x29, 0x60, 0x29, - 0x55, 0x89, 0xeb, 0x00, 0x79, 0x0c, 0x0d, 0xc3, 0x66, 0xda, 0xdf, 0xc7, 0x70, 0x1d, 0x0c, 0x37, - 0x61, 0x33, 0x4d, 0xf1, 0x9a, 0x7c, 0x0d, 0xdd, 0x54, 0xce, 0x92, 0x68, 0x59, 0xa5, 0x7f, 0x80, - 0xc4, 0x87, 0x48, 0x5c, 0xbe, 0xa2, 0x29, 0x57, 0x5c, 0x44, 0x9c, 0x6e, 0x91, 0xad, 0x90, 0x51, - 0x12, 0x2b, 0xbf, 0xdb, 0xaf, 0x5b, 0x21, 0xed, 0xff, 0xf3, 0x46, 0xdb, 0xf5, 0xf6, 0x83, 0xbf, - 0x6b, 0xd0, 0x2c, 0x85, 0xd9, 0x49, 0xed, 0x85, 0xa3, 0xf2, 0x61, 0xe0, 0x3f, 0x09, 0xa0, 0xa9, - 0x64, 0x61, 0xb8, 0x95, 0xd2, 0x0e, 0x00, 0x60, 0x4e, 0xd4, 0x5e, 0xd1, 0x0a, 0x21, 0x5f, 0x02, - 0xb0, 0x74, 0xd1, 0x98, 0x4a, 0xcf, 0x23, 0xe4, 0x8d, 0xc6, 0xa7, 0x4b, 0xe0, 0x05, 0x37, 0xd7, - 0x32, 0xa6, 0x6b, 0x54, 0x1b, 0x70, 0x9e, 0xb2, 0x52, 0xbe, 0x03, 0x8a, 0xff, 0xe4, 0x43, 0x68, - 0x25, 0x79, 0x2e, 0x65, 0xaa, 0xfd, 0x16, 0x46, 0x74, 0x2b, 0x4f, 0xb6, 0x9b, 0x74, 0x81, 0x91, - 0x9f, 0xe1, 0xa8, 0x9a, 0x10, 0xcd, 0xa3, 0x42, 0x25, 0xe6, 0x16, 0xf5, 0x55, 0x7c, 0x8a, 0x4a, - 0xb9, 0xc3, 0x60, 0xbd, 0x79, 0x17, 0x15, 0xe7, 0x07, 0xcb, 0x59, 0x75, 0xf2, 0x2e, 0x17, 0x4b, - 0xc1, 0xe0, 0xad, 0x82, 0x3d, 0x6f, 0xb4, 0xdb, 0x5e, 0x27, 0x98, 0x40, 0x63, 0x94, 0xb3, 0xcc, - 0x56, 0x81, 0x83, 0x5c, 0xb5, 0x16, 0x87, 0x73, 0xed, 0xe1, 0xd4, 0xee, 0xf5, 0x70, 0x9e, 0xfd, - 0xee, 0x00, 0xf9, 0xff, 0xcc, 0x93, 0x16, 0xd4, 0xcf, 0x4f, 0x27, 0xde, 0x03, 0x72, 0x08, 0xee, - 0x44, 0x31, 0xa1, 0x73, 0xa6, 0xb8, 0x30, 0x9e, 0x43, 0xf6, 0xa1, 0xfd, 0xe3, 0xf0, 0x4c, 0x25, - 0xf1, 0x8c, 0x7b, 0xb5, 0xf2, 0x34, 0x29, 0x84, 0xe0, 0xa9, 0x57, 0xb7, 0x56, 0xa3, 0x6f, 0x2f, - 0xbc, 0x06, 0x71, 0xa1, 0x35, 0x56, 0xc9, 0x9c, 0x19, 0xee, 0xed, 0xd9, 0xc3, 0xcb, 0x39, 0x57, - 0x29, 0xbb, 0xf5, 0x9a, 0xd6, 0x60, 0x24, 0x0c, 0x57, 0x82, 0xa5, 0x5e, 0xcb, 0x9e, 0x5e, 0x24, - 0x76, 0x63, 0xf0, 0xd8, 0x6b, 0x0f, 0xff, 0x75, 0xe0, 0xbd, 0xcd, 0x5c, 0x4e, 0x6d, 0xee, 0x24, - 0x81, 0xe6, 0x48, 0xcc, 0xe5, 0x6b, 0x4e, 0x3e, 0xde, 0x71, 0xf9, 0x95, 0x4b, 0xb4, 0x17, 0xee, - 0x4a, 0x2f, 0x17, 0x60, 0xf0, 0x80, 0xfc, 0x0a, 0xed, 0xc5, 0x5a, 0x24, 0x9f, 0xef, 0x66, 0xbd, - 0xb5, 0xb9, 0x7b, 0x5f, 0xdc, 0xd7, 0x6c, 0x11, 0xfc, 0xec, 0x93, 0x9f, 0x06, 0xb3, 0xc4, 0x5c, - 0x17, 0x57, 0x61, 0x24, 0xb3, 0x41, 0x96, 0x44, 0x4a, 0x6a, 0x39, 0x35, 0x83, 0x4c, 0x46, 0x03, - 0x95, 0x47, 0x83, 0x95, 0xcf, 0x41, 0xe5, 0xf3, 0xaa, 0x89, 0xab, 0xf9, 0xd3, 0xff, 0x02, 0x00, - 0x00, 0xff, 0xff, 0x96, 0x88, 0x02, 0x94, 0x6a, 0x08, 0x00, 0x00, + // 1033 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdb, 0x6e, 0x1b, 0x45, + 0x18, 0xee, 0xda, 0x8e, 0x0f, 0xbf, 0x13, 0x67, 0x35, 0x25, 0xcd, 0xca, 0xb4, 0x51, 0xb4, 0x15, + 0x55, 0xa8, 0x54, 0x5b, 0x98, 0x42, 0xb9, 0x01, 0x29, 0xe1, 0x10, 0xb9, 0xa2, 0xa9, 0x99, 0x98, + 0x5c, 0x20, 0xa4, 0x6a, 0xb2, 0x3b, 0x76, 0x96, 0xee, 0xee, 0x6c, 0x66, 0x66, 0x5d, 0x45, 0xdc, + 0x57, 0xf0, 0x0a, 0x3c, 0x07, 0xbc, 0x00, 0x97, 0xbc, 0x02, 0x8f, 0xc1, 0x0b, 0xa0, 0xf9, 0xf7, + 0xe0, 0x03, 0x89, 0x70, 0x2e, 0x7a, 0xb5, 0x3b, 0xf3, 0x7d, 0xff, 0xf1, 0xfb, 0x67, 0x06, 0x1e, + 0x46, 0xc2, 0x7b, 0xe5, 0x85, 0x22, 0xf5, 0xd9, 0x94, 0xc7, 0xfa, 0xd5, 0x2c, 0x90, 0x3a, 0x65, + 0x61, 0xcc, 0xf5, 0x1b, 0x21, 0x5f, 0xf7, 0x12, 0x29, 0xb4, 0x20, 0xf7, 0x22, 0xe1, 0xf5, 0xe6, + 0xa4, 0x5e, 0x8e, 0x76, 0xf7, 0xa6, 0x42, 0x4c, 0x43, 0xde, 0x47, 0xd6, 0x79, 0x3a, 0xe9, 0xbf, + 0x91, 0x2c, 0x49, 0xb8, 0x54, 0x99, 0x5d, 0x77, 0x17, 0x9d, 0x8b, 0x28, 0x12, 0x71, 0xfe, 0xc9, + 0x81, 0xbd, 0x05, 0x20, 0x77, 0xb6, 0x88, 0xbb, 0x7f, 0x59, 0xb0, 0x73, 0x96, 0x65, 0x72, 0x92, + 0xc1, 0x94, 0x5f, 0xa6, 0x5c, 0x69, 0x32, 0x82, 0xed, 0x65, 0x40, 0x39, 0xd6, 0x7e, 0xf5, 0xa0, + 0x3d, 0x78, 0xd4, 0xbb, 0x3e, 0xc9, 0xde, 0x8a, 0x9f, 0x55, 0x73, 0xf2, 0x14, 0xb6, 0x5e, 0x26, + 0x5c, 0x32, 0x1d, 0x88, 0x78, 0x7c, 0x95, 0x70, 0xa7, 0xb2, 0x6f, 0x1d, 0x74, 0x06, 0x1d, 0xf4, + 0x57, 0x22, 0x74, 0x99, 0x44, 0x3e, 0x84, 0xc6, 0x8c, 0x4b, 0x15, 0x88, 0xd8, 0xa9, 0xee, 0x5b, + 0x07, 0xed, 0xc1, 0x36, 0xf2, 0x0f, 0x93, 0xe0, 0x2c, 0xdb, 0xa6, 0x05, 0xee, 0xfe, 0x6e, 0xc1, + 0xbd, 0xd5, 0x62, 0x54, 0x22, 0x62, 0xc5, 0xdf, 0x41, 0x35, 0x03, 0xa8, 0x53, 0xae, 0xd2, 0x50, + 0x63, 0x19, 0xed, 0x41, 0xb7, 0x97, 0x69, 0xd4, 0x2b, 0x34, 0xea, 0x1d, 0x09, 0x11, 0x9e, 0xb1, + 0x30, 0xe5, 0x34, 0x67, 0x92, 0xf7, 0x60, 0xe3, 0x6b, 0x29, 0x85, 0xc4, 0x4a, 0x5a, 0x34, 0x5b, + 0xb8, 0x97, 0xf0, 0x60, 0xd9, 0xf9, 0x48, 0x72, 0xef, 0x82, 0x7b, 0xef, 0x4e, 0x0a, 0xf7, 0x27, + 0xd8, 0xbb, 0x29, 0x64, 0xde, 0xb0, 0x79, 0x79, 0xd6, 0xed, 0xcb, 0xab, 0x2c, 0x96, 0xf7, 0x4f, + 0x15, 0x3a, 0xcb, 0xc1, 0x08, 0x81, 0x5a, 0xcc, 0x22, 0x8e, 0xae, 0x5b, 0x14, 0xff, 0x49, 0x07, + 0x2a, 0x81, 0x9f, 0x5b, 0x56, 0x02, 0x9f, 0x7c, 0x06, 0x0d, 0x95, 0x9e, 0xc7, 0x5c, 0x2b, 0xa7, + 0x8a, 0xc5, 0xee, 0xdd, 0x54, 0xec, 0x29, 0xd2, 0x68, 0x41, 0x27, 0xfb, 0x50, 0xf5, 0x63, 0xe5, + 0xd4, 0x30, 0xef, 0x26, 0x5a, 0x7d, 0x15, 0xab, 0xa3, 0xda, 0x2f, 0x7f, 0x38, 0x16, 0x35, 0x10, + 0xf9, 0x02, 0x6a, 0xda, 0x0c, 0xe0, 0x06, 0x0e, 0xe0, 0xe3, 0xf5, 0xba, 0x68, 0xa6, 0x91, 0xa2, + 0x1d, 0xe9, 0x42, 0x33, 0x16, 0x3e, 0x9f, 0x5c, 0xfa, 0xb1, 0x53, 0xc7, 0x8c, 0xcb, 0x35, 0xb9, + 0x0f, 0xad, 0xa9, 0x14, 0x69, 0x72, 0x62, 0x0a, 0x6c, 0x20, 0x38, 0xdf, 0x20, 0x0f, 0xa1, 0xae, + 0x34, 0xd3, 0xa9, 0x72, 0x9a, 0x98, 0x5e, 0x1b, 0x63, 0x9f, 0xe2, 0x16, 0xcd, 0x21, 0xe2, 0xc2, + 0x66, 0x28, 0x3c, 0x3c, 0x02, 0xe8, 0xa5, 0x85, 0x5e, 0x96, 0xf6, 0xc8, 0x23, 0x68, 0x47, 0xcc, + 0x1b, 0x09, 0x11, 0x22, 0x05, 0x0c, 0x25, 0x2f, 0x71, 0x11, 0x20, 0x0f, 0xa0, 0xa6, 0xd9, 0x54, + 0x39, 0x9b, 0x18, 0xae, 0x85, 0xe1, 0xc6, 0x6c, 0xaa, 0x28, 0x6e, 0x93, 0xcf, 0xa1, 0x13, 0x8a, + 0x69, 0xe0, 0x95, 0x55, 0x3a, 0x5b, 0x48, 0xdc, 0x41, 0x62, 0x79, 0x8a, 0x26, 0x5c, 0xf2, 0xd8, + 0xe3, 0x74, 0x85, 0x6c, 0x84, 0xf4, 0x02, 0x5f, 0x3a, 0x9d, 0xfd, 0xaa, 0x11, 0xd2, 0xfc, 0x3f, + 0xaf, 0x35, 0xdb, 0xf6, 0xa6, 0xfb, 0x77, 0x05, 0xea, 0x99, 0x30, 0x6b, 0xa9, 0x5d, 0x38, 0xca, + 0x0e, 0x06, 0xfe, 0x13, 0x17, 0xea, 0x52, 0xa4, 0x9a, 0x1b, 0x29, 0xcd, 0x00, 0x00, 0xe6, 0x44, + 0xcd, 0x16, 0xcd, 0x11, 0xf2, 0x0c, 0x80, 0x85, 0x45, 0x63, 0x72, 0x3d, 0x77, 0x91, 0x37, 0x1c, + 0x1d, 0x96, 0xc0, 0x0b, 0xae, 0x2f, 0x84, 0x4f, 0x17, 0xa8, 0x26, 0xe0, 0x2c, 0x64, 0x99, 0x7c, + 0x5b, 0x14, 0xff, 0xc9, 0x07, 0xd0, 0x08, 0x92, 0x44, 0x88, 0x50, 0x39, 0x0d, 0x8c, 0xd8, 0xce, + 0x3d, 0x99, 0x6e, 0xd2, 0x02, 0x23, 0x3f, 0xc2, 0x6e, 0x3e, 0x21, 0x8a, 0x7b, 0xa9, 0x0c, 0xf4, + 0x15, 0xea, 0x2b, 0xf9, 0x04, 0x95, 0x6a, 0x0f, 0xdc, 0xc5, 0xe6, 0x9d, 0xe6, 0x9c, 0x63, 0xc3, + 0x99, 0x77, 0xf2, 0x26, 0x17, 0xa5, 0x60, 0x70, 0xad, 0x60, 0xcf, 0x6b, 0xcd, 0xa6, 0xdd, 0x72, + 0xc7, 0x50, 0x1b, 0x26, 0x2c, 0x32, 0x55, 0xe0, 0x20, 0xe7, 0xad, 0xc5, 0xe1, 0x5c, 0x38, 0x38, + 0x95, 0x5b, 0x1d, 0x1c, 0xf7, 0x37, 0x6b, 0xf5, 0x26, 0x1a, 0x8e, 0xbe, 0x4f, 0x7c, 0xa6, 0x79, + 0x71, 0x13, 0xdd, 0x87, 0xd6, 0x71, 0x39, 0xdc, 0x59, 0xd0, 0xf9, 0x86, 0xc9, 0x06, 0x81, 0x4c, + 0x56, 0xfc, 0x27, 0xc7, 0xd0, 0x38, 0x5d, 0x3a, 0xc6, 0x4f, 0xfe, 0xe7, 0xb4, 0x65, 0xec, 0x32, + 0x70, 0x61, 0xed, 0xb2, 0xf2, 0xa1, 0x5a, 0x66, 0x94, 0x51, 0xad, 0x85, 0xa8, 0x4f, 0x61, 0x87, + 0xf2, 0x69, 0xa0, 0x34, 0x97, 0xdc, 0x1f, 0x8e, 0x0e, 0x7d, 0x5f, 0x72, 0xa5, 0x78, 0xd6, 0x91, + 0x16, 0xbd, 0x1e, 0x74, 0xff, 0xb4, 0x56, 0xaf, 0xc5, 0x79, 0xfd, 0xf9, 0xb5, 0xf8, 0x1d, 0x6c, + 0x8e, 0xcc, 0x6b, 0xa3, 0xb4, 0x31, 0x2d, 0xee, 0xe1, 0x5b, 0xd6, 0xb4, 0xe4, 0x82, 0x3c, 0x83, + 0xe6, 0x37, 0x2c, 0x08, 0x53, 0xc9, 0x0b, 0xc1, 0xde, 0x2f, 0x06, 0x38, 0xcb, 0x2c, 0xb3, 0xca, + 0x39, 0xb4, 0x24, 0x5f, 0xff, 0x9a, 0x3c, 0xfe, 0xd5, 0x02, 0xf2, 0xdf, 0x8b, 0x8b, 0x34, 0xa0, + 0x7a, 0x72, 0x38, 0xb6, 0xef, 0x90, 0x6d, 0x68, 0x8f, 0x25, 0x8b, 0x55, 0xc2, 0x24, 0x8f, 0xb5, + 0x6d, 0x91, 0x4d, 0x68, 0x7e, 0x3b, 0x38, 0x92, 0x81, 0x3f, 0xe5, 0x76, 0x25, 0x5b, 0x8d, 0xd3, + 0x38, 0xe6, 0xa1, 0x5d, 0x35, 0x56, 0xc3, 0x2f, 0x4f, 0xed, 0x1a, 0x69, 0x43, 0x63, 0x24, 0x83, + 0x19, 0xd3, 0xdc, 0xde, 0x30, 0x8b, 0x97, 0x33, 0x2e, 0x43, 0x76, 0x65, 0xd7, 0x8d, 0xc1, 0x30, + 0xd6, 0x5c, 0xc6, 0x2c, 0xb4, 0x1b, 0x66, 0xf5, 0x22, 0x30, 0x79, 0x70, 0xdf, 0x6e, 0x0e, 0xde, + 0x56, 0xe1, 0xee, 0x72, 0x2e, 0x87, 0xa6, 0x3d, 0x24, 0x80, 0xfa, 0x30, 0x9e, 0x89, 0xd7, 0x9c, + 0x3c, 0x59, 0xf3, 0x05, 0xcb, 0xe6, 0xaf, 0xdb, 0x5b, 0x97, 0x9e, 0xc9, 0xe5, 0xde, 0x21, 0x3f, + 0x43, 0xb3, 0x78, 0xdb, 0xc8, 0x27, 0xeb, 0x59, 0xaf, 0x3c, 0xbf, 0xdd, 0x4f, 0x6f, 0x6b, 0x56, + 0x06, 0x7f, 0x6b, 0xc1, 0xdd, 0x62, 0x80, 0xe6, 0x03, 0xa7, 0xd6, 0x4d, 0x64, 0xe5, 0xf4, 0xad, + 0x9b, 0xc8, 0xea, 0xd0, 0xba, 0x77, 0x8e, 0x3e, 0xfa, 0xa1, 0x3f, 0x0d, 0xf4, 0x45, 0x7a, 0xde, + 0xf3, 0x44, 0xd4, 0x8f, 0x02, 0x4f, 0x0a, 0x25, 0x26, 0xba, 0x1f, 0x09, 0xaf, 0x2f, 0x13, 0xaf, + 0x3f, 0xf7, 0xd9, 0xcf, 0x7d, 0x9e, 0xd7, 0xf1, 0xa1, 0xff, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x5a, 0xa7, 0xe6, 0x51, 0xb8, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -644,6 +821,12 @@ type VirtualNetworkAgentClient interface { Invoke(ctx context.Context, in *VirtualNetworkRequest, opts ...grpc.CallOption) (*VirtualNetworkResponse, error) // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). Precheck(ctx context.Context, in *VirtualNetworkPrecheckRequest, opts ...grpc.CallOption) (*VirtualNetworkPrecheckResponse, error) + // Replaces the registeredIPAddresses list on each referenced subnet with + // the supplied list (subnet-scoped full-replace) and applies the + // corresponding add/remove delta to the IPAM bitmap. Independent from + // spec Update(): does not run Validate/validateUpdate, does not touch + // ProvisionState, and does not fan out to nodeagents. + UpdateRegisteredIPs(ctx context.Context, in *VirtualNetworkIPUpdateRequest, opts ...grpc.CallOption) (*VirtualNetworkIPUpdateResponse, error) } type virtualNetworkAgentClient struct { @@ -672,11 +855,26 @@ func (c *virtualNetworkAgentClient) Precheck(ctx context.Context, in *VirtualNet return out, nil } +func (c *virtualNetworkAgentClient) UpdateRegisteredIPs(ctx context.Context, in *VirtualNetworkIPUpdateRequest, opts ...grpc.CallOption) (*VirtualNetworkIPUpdateResponse, error) { + out := new(VirtualNetworkIPUpdateResponse) + err := c.cc.Invoke(ctx, "/moc.cloudagent.network.VirtualNetworkAgent/UpdateRegisteredIPs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // VirtualNetworkAgentServer is the server API for VirtualNetworkAgent service. type VirtualNetworkAgentServer interface { Invoke(context.Context, *VirtualNetworkRequest) (*VirtualNetworkResponse, error) // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). Precheck(context.Context, *VirtualNetworkPrecheckRequest) (*VirtualNetworkPrecheckResponse, error) + // Replaces the registeredIPAddresses list on each referenced subnet with + // the supplied list (subnet-scoped full-replace) and applies the + // corresponding add/remove delta to the IPAM bitmap. Independent from + // spec Update(): does not run Validate/validateUpdate, does not touch + // ProvisionState, and does not fan out to nodeagents. + UpdateRegisteredIPs(context.Context, *VirtualNetworkIPUpdateRequest) (*VirtualNetworkIPUpdateResponse, error) } // UnimplementedVirtualNetworkAgentServer can be embedded to have forward compatible implementations. @@ -689,6 +887,9 @@ func (*UnimplementedVirtualNetworkAgentServer) Invoke(ctx context.Context, req * func (*UnimplementedVirtualNetworkAgentServer) Precheck(ctx context.Context, req *VirtualNetworkPrecheckRequest) (*VirtualNetworkPrecheckResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Precheck not implemented") } +func (*UnimplementedVirtualNetworkAgentServer) UpdateRegisteredIPs(ctx context.Context, req *VirtualNetworkIPUpdateRequest) (*VirtualNetworkIPUpdateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRegisteredIPs not implemented") +} func RegisterVirtualNetworkAgentServer(s *grpc.Server, srv VirtualNetworkAgentServer) { s.RegisterService(&_VirtualNetworkAgent_serviceDesc, srv) @@ -730,6 +931,24 @@ func _VirtualNetworkAgent_Precheck_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _VirtualNetworkAgent_UpdateRegisteredIPs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VirtualNetworkIPUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VirtualNetworkAgentServer).UpdateRegisteredIPs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/moc.cloudagent.network.VirtualNetworkAgent/UpdateRegisteredIPs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VirtualNetworkAgentServer).UpdateRegisteredIPs(ctx, req.(*VirtualNetworkIPUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _VirtualNetworkAgent_serviceDesc = grpc.ServiceDesc{ ServiceName: "moc.cloudagent.network.VirtualNetworkAgent", HandlerType: (*VirtualNetworkAgentServer)(nil), @@ -742,6 +961,10 @@ var _VirtualNetworkAgent_serviceDesc = grpc.ServiceDesc{ MethodName: "Precheck", Handler: _VirtualNetworkAgent_Precheck_Handler, }, + { + MethodName: "UpdateRegisteredIPs", + Handler: _VirtualNetworkAgent_UpdateRegisteredIPs_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "moc_cloudagent_virtualnetwork.proto", diff --git a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto index 019f9afc..caf8b764 100644 --- a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto +++ b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto @@ -85,5 +85,43 @@ service VirtualNetworkAgent { // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). rpc Precheck(VirtualNetworkPrecheckRequest) returns (VirtualNetworkPrecheckResponse) {} + + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. + rpc UpdateRegisteredIPs(VirtualNetworkIPUpdateRequest) returns (VirtualNetworkIPUpdateResponse) {} +} + +message VirtualNetworkIPUpdateRequest { + // Identifies the target VNET. + string GroupName = 1; + string Name = 2; + + // Desired registered-IP list for each subnet. Each list replaces + // the stored list across every pool in that subnet. MOC routes each + // IP to the correct pool by range internally. + repeated VirtualSubnetIPUpdate IPUpdates = 3; +} + +message VirtualSubnetIPUpdate { + string SubnetName = 1; + repeated string RegisteredIPAddresses = 2; +} + +message VirtualNetworkIPUpdateResponse { + // One list of persisted IPs for each subnet (full-replace semantics). + // Only trustworthy when the gRPC status is OK. + repeated VirtualSubnetIPUpdate PersistedIPs = 1; + + // IP-level failures. May be non-empty even when the gRPC status is OK + // (partial success). + repeated IPAddressUpdateFailure Failures = 2; + + // Overall error summary. Empty when the gRPC status is OK. + string Error = 3; } diff --git a/rpc/common/moc_common_networkcommon.pb.go b/rpc/common/moc_common_networkcommon.pb.go index 04a4dd06..aebd75b4 100644 --- a/rpc/common/moc_common_networkcommon.pb.go +++ b/rpc/common/moc_common_networkcommon.pb.go @@ -5,8 +5,9 @@ package common import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -160,6 +161,47 @@ func (IPVersion) EnumDescriptor() ([]byte, []int) { return fileDescriptor_ba09ae1dfdbe03d2, []int{4} } +type IPUpdateErrorCode int32 + +const ( + IPUpdateErrorCode_IP_UPDATE_UNKNOWN IPUpdateErrorCode = 0 + IPUpdateErrorCode_IP_UPDATE_INVALID_FORMAT IPUpdateErrorCode = 1 + IPUpdateErrorCode_IP_UPDATE_OUT_OF_RANGE IPUpdateErrorCode = 2 + IPUpdateErrorCode_IP_UPDATE_SUBNET_NOT_FOUND IPUpdateErrorCode = 3 + IPUpdateErrorCode_IP_UPDATE_ALREADY_ALLOCATED IPUpdateErrorCode = 4 + // LoadBalancer, or system reservation (gateway / network / + // broadcast / DNS) and is not currently in the registered + // list - registering it would create a single-bit bitmap + // co-occupancy that breaks refcount on later release. + IPUpdateErrorCode_IP_UPDATE_NO_POOLS_IN_SUBNET IPUpdateErrorCode = 5 +) + +var IPUpdateErrorCode_name = map[int32]string{ + 0: "IP_UPDATE_UNKNOWN", + 1: "IP_UPDATE_INVALID_FORMAT", + 2: "IP_UPDATE_OUT_OF_RANGE", + 3: "IP_UPDATE_SUBNET_NOT_FOUND", + 4: "IP_UPDATE_ALREADY_ALLOCATED", + 5: "IP_UPDATE_NO_POOLS_IN_SUBNET", +} + +var IPUpdateErrorCode_value = map[string]int32{ + "IP_UPDATE_UNKNOWN": 0, + "IP_UPDATE_INVALID_FORMAT": 1, + "IP_UPDATE_OUT_OF_RANGE": 2, + "IP_UPDATE_SUBNET_NOT_FOUND": 3, + "IP_UPDATE_ALREADY_ALLOCATED": 4, + "IP_UPDATE_NO_POOLS_IN_SUBNET": 5, +} + +func (x IPUpdateErrorCode) String() string { + return proto.EnumName(IPUpdateErrorCode_name, int32(x)) +} + +func (IPUpdateErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ba09ae1dfdbe03d2, []int{5} +} + type NetworkPolicyType int32 const ( @@ -183,7 +225,7 @@ func (x NetworkPolicyType) String() string { } func (NetworkPolicyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{5} + return fileDescriptor_ba09ae1dfdbe03d2, []int{6} } type Dns struct { @@ -297,15 +339,24 @@ func (m *IPPoolInfo) GetAvailable() string { } type IPPool struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type IPPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=moc.IPPoolType" json:"type,omitempty"` - Start string `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` - End string `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` - Info *IPPoolInfo `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"` - Tags *Tags `protobuf:"bytes,6,opt,name=tags,proto3" json:"tags,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type IPPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=moc.IPPoolType" json:"type,omitempty"` + Start string `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` + End string `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` + Info *IPPoolInfo `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"` + Tags *Tags `protobuf:"bytes,6,opt,name=tags,proto3" json:"tags,omitempty"` + // IPs explicitly registered as allocated outside of MOC (e.g., by the + // IPAM operator). Reserved in the IPAM bitmap during + // InitSubnet and on UpdateRegisteredIPs runtime updates so MOC will not + // hand them out to AKS workloads. Field is IPAM-layer only and never + // fanned out to nodeagents. + // Stored on each pool internally but exposed at the subnet level in the + // UpdateRegisteredIPs API - MOC routes each IP to the correct pool + // by range. + RegisteredIPAddresses []string `protobuf:"bytes,7,rep,name=registeredIPAddresses,proto3" json:"registeredIPAddresses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *IPPool) Reset() { *m = IPPool{} } @@ -375,6 +426,78 @@ func (m *IPPool) GetTags() *Tags { return nil } +func (m *IPPool) GetRegisteredIPAddresses() []string { + if m != nil { + return m.RegisteredIPAddresses + } + return nil +} + +// IPAddressUpdateFailure is the single-IP failure record returned by +// UpdateRegisteredIPs RPCs. Shared between Logical and Virtual Network flows. +type IPAddressUpdateFailure struct { + SubnetName string `protobuf:"bytes,1,opt,name=SubnetName,proto3" json:"SubnetName,omitempty"` + IPAddress string `protobuf:"bytes,2,opt,name=IPAddress,proto3" json:"IPAddress,omitempty"` + Code IPUpdateErrorCode `protobuf:"varint,3,opt,name=Code,proto3,enum=moc.IPUpdateErrorCode" json:"Code,omitempty"` + Error string `protobuf:"bytes,4,opt,name=Error,proto3" json:"Error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IPAddressUpdateFailure) Reset() { *m = IPAddressUpdateFailure{} } +func (m *IPAddressUpdateFailure) String() string { return proto.CompactTextString(m) } +func (*IPAddressUpdateFailure) ProtoMessage() {} +func (*IPAddressUpdateFailure) Descriptor() ([]byte, []int) { + return fileDescriptor_ba09ae1dfdbe03d2, []int{3} +} + +func (m *IPAddressUpdateFailure) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IPAddressUpdateFailure.Unmarshal(m, b) +} +func (m *IPAddressUpdateFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IPAddressUpdateFailure.Marshal(b, m, deterministic) +} +func (m *IPAddressUpdateFailure) XXX_Merge(src proto.Message) { + xxx_messageInfo_IPAddressUpdateFailure.Merge(m, src) +} +func (m *IPAddressUpdateFailure) XXX_Size() int { + return xxx_messageInfo_IPAddressUpdateFailure.Size(m) +} +func (m *IPAddressUpdateFailure) XXX_DiscardUnknown() { + xxx_messageInfo_IPAddressUpdateFailure.DiscardUnknown(m) +} + +var xxx_messageInfo_IPAddressUpdateFailure proto.InternalMessageInfo + +func (m *IPAddressUpdateFailure) GetSubnetName() string { + if m != nil { + return m.SubnetName + } + return "" +} + +func (m *IPAddressUpdateFailure) GetIPAddress() string { + if m != nil { + return m.IPAddress + } + return "" +} + +func (m *IPAddressUpdateFailure) GetCode() IPUpdateErrorCode { + if m != nil { + return m.Code + } + return IPUpdateErrorCode_IP_UPDATE_UNKNOWN +} + +func (m *IPAddressUpdateFailure) GetError() string { + if m != nil { + return m.Error + } + return "" +} + type Route struct { NextHop string `protobuf:"bytes,1,opt,name=nextHop,proto3" json:"nextHop,omitempty"` DestinationPrefix string `protobuf:"bytes,2,opt,name=destinationPrefix,proto3" json:"destinationPrefix,omitempty"` @@ -388,7 +511,7 @@ func (m *Route) Reset() { *m = Route{} } func (m *Route) String() string { return proto.CompactTextString(m) } func (*Route) ProtoMessage() {} func (*Route) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{3} + return fileDescriptor_ba09ae1dfdbe03d2, []int{4} } func (m *Route) XXX_Unmarshal(b []byte) error { @@ -442,7 +565,7 @@ func (m *ResourceReference) Reset() { *m = ResourceReference{} } func (m *ResourceReference) String() string { return proto.CompactTextString(m) } func (*ResourceReference) ProtoMessage() {} func (*ResourceReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{4} + return fileDescriptor_ba09ae1dfdbe03d2, []int{5} } func (m *ResourceReference) XXX_Unmarshal(b []byte) error { @@ -481,7 +604,7 @@ func (m *NetworkSecurityGroupReference) Reset() { *m = NetworkSecurityGr func (m *NetworkSecurityGroupReference) String() string { return proto.CompactTextString(m) } func (*NetworkSecurityGroupReference) ProtoMessage() {} func (*NetworkSecurityGroupReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{5} + return fileDescriptor_ba09ae1dfdbe03d2, []int{6} } func (m *NetworkSecurityGroupReference) XXX_Unmarshal(b []byte) error { @@ -521,7 +644,7 @@ func (m *NetworkReference) Reset() { *m = NetworkReference{} } func (m *NetworkReference) String() string { return proto.CompactTextString(m) } func (*NetworkReference) ProtoMessage() {} func (*NetworkReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{6} + return fileDescriptor_ba09ae1dfdbe03d2, []int{7} } func (m *NetworkReference) XXX_Unmarshal(b []byte) error { @@ -568,7 +691,7 @@ func (m *SubnetReference) Reset() { *m = SubnetReference{} } func (m *SubnetReference) String() string { return proto.CompactTextString(m) } func (*SubnetReference) ProtoMessage() {} func (*SubnetReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{7} + return fileDescriptor_ba09ae1dfdbe03d2, []int{8} } func (m *SubnetReference) XXX_Unmarshal(b []byte) error { @@ -614,7 +737,7 @@ func (m *PublicIPAddressReference) Reset() { *m = PublicIPAddressReferen func (m *PublicIPAddressReference) String() string { return proto.CompactTextString(m) } func (*PublicIPAddressReference) ProtoMessage() {} func (*PublicIPAddressReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{8} + return fileDescriptor_ba09ae1dfdbe03d2, []int{9} } func (m *PublicIPAddressReference) XXX_Unmarshal(b []byte) error { @@ -654,7 +777,7 @@ func (m *AdvancedNetworkPolicy) Reset() { *m = AdvancedNetworkPolicy{} } func (m *AdvancedNetworkPolicy) String() string { return proto.CompactTextString(m) } func (*AdvancedNetworkPolicy) ProtoMessage() {} func (*AdvancedNetworkPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{9} + return fileDescriptor_ba09ae1dfdbe03d2, []int{10} } func (m *AdvancedNetworkPolicy) XXX_Unmarshal(b []byte) error { @@ -700,7 +823,7 @@ func (m *ProbeReference) Reset() { *m = ProbeReference{} } func (m *ProbeReference) String() string { return proto.CompactTextString(m) } func (*ProbeReference) ProtoMessage() {} func (*ProbeReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{10} + return fileDescriptor_ba09ae1dfdbe03d2, []int{11} } func (m *ProbeReference) XXX_Unmarshal(b []byte) error { @@ -739,7 +862,7 @@ func (m *FrontendIPConfigurationReference) Reset() { *m = FrontendIPConf func (m *FrontendIPConfigurationReference) String() string { return proto.CompactTextString(m) } func (*FrontendIPConfigurationReference) ProtoMessage() {} func (*FrontendIPConfigurationReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{11} + return fileDescriptor_ba09ae1dfdbe03d2, []int{12} } func (m *FrontendIPConfigurationReference) XXX_Unmarshal(b []byte) error { @@ -778,7 +901,7 @@ func (m *LoadBalancerReference) Reset() { *m = LoadBalancerReference{} } func (m *LoadBalancerReference) String() string { return proto.CompactTextString(m) } func (*LoadBalancerReference) ProtoMessage() {} func (*LoadBalancerReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{12} + return fileDescriptor_ba09ae1dfdbe03d2, []int{13} } func (m *LoadBalancerReference) XXX_Unmarshal(b []byte) error { @@ -818,7 +941,7 @@ func (m *BackendAddressPoolReference) Reset() { *m = BackendAddressPoolR func (m *BackendAddressPoolReference) String() string { return proto.CompactTextString(m) } func (*BackendAddressPoolReference) ProtoMessage() {} func (*BackendAddressPoolReference) Descriptor() ([]byte, []int) { - return fileDescriptor_ba09ae1dfdbe03d2, []int{13} + return fileDescriptor_ba09ae1dfdbe03d2, []int{14} } func (m *BackendAddressPoolReference) XXX_Unmarshal(b []byte) error { @@ -859,10 +982,12 @@ func init() { proto.RegisterEnum("moc.IPPoolType", IPPoolType_name, IPPoolType_value) proto.RegisterEnum("moc.NetworkType", NetworkType_name, NetworkType_value) proto.RegisterEnum("moc.IPVersion", IPVersion_name, IPVersion_value) + proto.RegisterEnum("moc.IPUpdateErrorCode", IPUpdateErrorCode_name, IPUpdateErrorCode_value) proto.RegisterEnum("moc.NetworkPolicyType", NetworkPolicyType_name, NetworkPolicyType_value) proto.RegisterType((*Dns)(nil), "moc.Dns") proto.RegisterType((*IPPoolInfo)(nil), "moc.IPPoolInfo") proto.RegisterType((*IPPool)(nil), "moc.IPPool") + proto.RegisterType((*IPAddressUpdateFailure)(nil), "moc.IPAddressUpdateFailure") proto.RegisterType((*Route)(nil), "moc.Route") proto.RegisterType((*ResourceReference)(nil), "moc.ResourceReference") proto.RegisterType((*NetworkSecurityGroupReference)(nil), "moc.NetworkSecurityGroupReference") @@ -879,56 +1004,69 @@ func init() { func init() { proto.RegisterFile("moc_common_networkcommon.proto", fileDescriptor_ba09ae1dfdbe03d2) } var fileDescriptor_ba09ae1dfdbe03d2 = []byte{ - // 812 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x51, 0x6f, 0xe3, 0x44, - 0x10, 0xae, 0xe3, 0x34, 0x6d, 0x26, 0xba, 0xeb, 0x76, 0xa1, 0xc5, 0x3a, 0x38, 0x28, 0x3e, 0x21, - 0x4a, 0x84, 0x1a, 0xa9, 0x9c, 0x4e, 0x08, 0x09, 0xa4, 0xf4, 0xd2, 0x1e, 0x86, 0x5c, 0xce, 0x38, - 0x69, 0x10, 0x08, 0x54, 0x6d, 0xd6, 0x9b, 0x74, 0x75, 0xf6, 0xae, 0xb5, 0x5e, 0x87, 0x8b, 0xc4, - 0x03, 0x7f, 0x84, 0x9f, 0xc0, 0x7f, 0x44, 0xbb, 0x76, 0x88, 0xef, 0xda, 0x07, 0x1e, 0xf2, 0x36, - 0x33, 0xfb, 0x7d, 0xdf, 0xce, 0x7c, 0x1e, 0xdb, 0xf0, 0x71, 0x2a, 0xe9, 0x0d, 0x95, 0x69, 0x2a, - 0xc5, 0x8d, 0x60, 0xfa, 0x0f, 0xa9, 0x5e, 0x97, 0xd9, 0x59, 0xa6, 0xa4, 0x96, 0xd8, 0x4d, 0x25, - 0x7d, 0xf4, 0x41, 0x0d, 0x54, 0x3f, 0xf5, 0x39, 0xb8, 0x03, 0x91, 0x63, 0x0f, 0xf6, 0x72, 0xa6, - 0x96, 0x4c, 0xe5, 0x9e, 0x73, 0xe2, 0x9e, 0xb6, 0xa3, 0x75, 0x8a, 0x8f, 0xa1, 0x15, 0xcb, 0x94, - 0x70, 0xe1, 0x35, 0x4e, 0x9c, 0xd3, 0x76, 0x54, 0x65, 0xa6, 0x9e, 0x33, 0xa2, 0xe8, 0xad, 0xe7, - 0x5a, 0x42, 0x95, 0x19, 0x25, 0x99, 0x69, 0x2e, 0x45, 0xee, 0x35, 0x4b, 0xa5, 0x2a, 0xf5, 0xbf, - 0x03, 0x08, 0xc2, 0x50, 0xca, 0x24, 0x10, 0x73, 0x89, 0x31, 0x34, 0x8b, 0x9c, 0xc5, 0x9e, 0x63, - 0x55, 0x6d, 0x8c, 0x3f, 0x82, 0x36, 0x59, 0x12, 0x9e, 0x90, 0x59, 0xc2, 0xaa, 0xeb, 0x36, 0x05, - 0xff, 0x1f, 0x07, 0x5a, 0xa5, 0x80, 0x21, 0x0b, 0x92, 0xb2, 0x35, 0xd9, 0xc4, 0xf8, 0x09, 0x34, - 0xf5, 0x2a, 0x2b, 0x79, 0x0f, 0xcf, 0x0f, 0xce, 0x52, 0x49, 0xcf, 0x4a, 0xf8, 0x64, 0x95, 0xb1, - 0xc8, 0x1e, 0xe2, 0xf7, 0x61, 0x37, 0xd7, 0x44, 0x69, 0xcf, 0xb5, 0xcc, 0x32, 0xc1, 0x08, 0x5c, - 0x26, 0x62, 0xaf, 0x69, 0x6b, 0x26, 0x34, 0x62, 0x5c, 0xcc, 0xa5, 0xb7, 0x7b, 0xe2, 0x9c, 0x76, - 0xde, 0x12, 0x33, 0xcd, 0x47, 0xf6, 0x10, 0x3f, 0x86, 0xa6, 0x26, 0x8b, 0xdc, 0x6b, 0x59, 0x50, - 0xdb, 0x82, 0x26, 0x64, 0x91, 0x47, 0xb6, 0xec, 0x2f, 0x60, 0x37, 0x92, 0x85, 0x66, 0xc6, 0x12, - 0xc1, 0xde, 0xe8, 0xef, 0x65, 0x56, 0x35, 0xbc, 0x4e, 0xf1, 0x97, 0x70, 0x18, 0xb3, 0x5c, 0x73, - 0x41, 0x8c, 0x45, 0xa1, 0x62, 0x73, 0xfe, 0xa6, 0x1a, 0xfc, 0xee, 0x81, 0xb1, 0x3c, 0x65, 0x5a, - 0x71, 0x6a, 0xbb, 0x7f, 0x10, 0x55, 0x99, 0xff, 0x39, 0x1c, 0x46, 0x2c, 0x97, 0x85, 0xa2, 0x2c, - 0x62, 0x73, 0xa6, 0x98, 0xa0, 0xec, 0x3e, 0x8b, 0xfc, 0x5f, 0xe0, 0xf1, 0xa8, 0xdc, 0x90, 0x31, - 0xa3, 0x85, 0xe2, 0x7a, 0xf5, 0x42, 0xc9, 0x22, 0xdb, 0x90, 0xbe, 0x86, 0x8e, 0xda, 0x28, 0x59, - 0x6e, 0xe7, 0xfc, 0xd8, 0x0e, 0x76, 0xe7, 0x86, 0xa8, 0x0e, 0xf5, 0xff, 0x72, 0x00, 0x55, 0xda, - 0x5b, 0x90, 0xc3, 0xe7, 0xd0, 0xa9, 0x76, 0x79, 0xb2, 0x79, 0xa6, 0xc8, 0x32, 0x47, 0x9b, 0x7a, - 0x54, 0x07, 0xf9, 0x7f, 0xc2, 0xc1, 0xb8, 0x98, 0x09, 0xa6, 0x37, 0x0d, 0xf4, 0x8c, 0xf3, 0x16, - 0x51, 0x5d, 0x7e, 0x54, 0x97, 0xd8, 0xdc, 0xbd, 0x46, 0xbd, 0xdb, 0x71, 0xe3, 0xff, 0x1b, 0x30, - 0x01, 0x2f, 0x2c, 0x66, 0x09, 0xa7, 0x41, 0xd8, 0x8f, 0x63, 0xc5, 0xf2, 0x7c, 0x1b, 0xb6, 0xfe, - 0x0e, 0x47, 0xfd, 0x78, 0x49, 0x04, 0x65, 0x71, 0xd5, 0x74, 0x28, 0x13, 0x4e, 0x57, 0xb8, 0x5b, - 0x6d, 0xbb, 0x63, 0x9d, 0x39, 0xae, 0x8f, 0x55, 0x22, 0x6a, 0x4b, 0xef, 0xc1, 0x1e, 0x13, 0xe6, - 0x15, 0x8a, 0xed, 0x40, 0xfb, 0xd1, 0x3a, 0xf5, 0x7f, 0x80, 0x87, 0xa1, 0x92, 0x33, 0xb6, 0x8d, - 0x56, 0x7f, 0x83, 0x93, 0x2b, 0x25, 0x85, 0x66, 0x22, 0x0e, 0xc2, 0xe7, 0x52, 0xcc, 0xf9, 0xa2, - 0x50, 0x76, 0x7d, 0xb7, 0xa1, 0xfe, 0x13, 0x1c, 0x0d, 0x25, 0x89, 0x2f, 0x48, 0x62, 0xcc, 0x50, - 0xdb, 0x90, 0xfc, 0xdb, 0x81, 0x0f, 0x2f, 0x08, 0x7d, 0xcd, 0x44, 0x5c, 0x3d, 0x31, 0xf3, 0x7e, - 0x6f, 0x63, 0x7b, 0x07, 0x70, 0x90, 0xbc, 0xdd, 0x6c, 0xb5, 0x49, 0x8f, 0x2c, 0xfb, 0xde, 0x41, - 0xa2, 0x77, 0x29, 0xdd, 0x6f, 0x61, 0x3f, 0x34, 0xdf, 0x68, 0x2a, 0x13, 0xbc, 0x07, 0x6e, 0x3f, - 0x49, 0xd0, 0x8e, 0x09, 0x26, 0x34, 0x43, 0x8e, 0x09, 0xae, 0xe3, 0x0c, 0x35, 0x30, 0x40, 0x2b, - 0xa0, 0x69, 0xb6, 0x7c, 0x8a, 0xdc, 0xff, 0xe2, 0x67, 0xa8, 0xd9, 0xfd, 0x06, 0x70, 0x10, 0xf6, - 0x93, 0x44, 0x52, 0xfb, 0x10, 0x5e, 0x32, 0x7d, 0x2b, 0x63, 0xdc, 0x81, 0xbd, 0x40, 0x2c, 0x49, - 0xc2, 0x63, 0xb4, 0x63, 0x92, 0xc1, 0x4a, 0x90, 0x94, 0x53, 0xe4, 0x18, 0xee, 0x58, 0x13, 0xcd, - 0x29, 0x6a, 0x74, 0x3f, 0x5d, 0x7f, 0xaa, 0xcd, 0x16, 0xe1, 0x16, 0x34, 0xa6, 0x2f, 0x4b, 0xf8, - 0xb4, 0x2c, 0x23, 0xa7, 0x7b, 0x05, 0x9d, 0xda, 0x9b, 0x88, 0xdf, 0x83, 0x83, 0x69, 0x10, 0x4d, - 0xae, 0xfb, 0xc3, 0x9b, 0xd1, 0xe5, 0xe4, 0xe7, 0x57, 0xd1, 0x8f, 0x68, 0xc7, 0x14, 0x87, 0xaf, - 0x5e, 0x04, 0xcf, 0x6b, 0x45, 0x07, 0x3f, 0x80, 0xf6, 0xf5, 0x68, 0x70, 0x79, 0x15, 0x8c, 0x2e, - 0x07, 0xa8, 0xd1, 0xfd, 0x04, 0xda, 0x41, 0x38, 0x65, 0x2a, 0xe7, 0x52, 0xe0, 0x7d, 0x68, 0x06, - 0xe1, 0xf2, 0x29, 0xda, 0xa9, 0xa2, 0x67, 0xc8, 0xe9, 0x7e, 0x01, 0x87, 0x77, 0x16, 0xdb, 0x8e, - 0x31, 0x9a, 0xf6, 0x87, 0xc1, 0xa0, 0xf4, 0x64, 0x3c, 0x18, 0x21, 0xe7, 0xe2, 0xb3, 0x5f, 0x9f, - 0x2c, 0xb8, 0xbe, 0x2d, 0x66, 0x67, 0x54, 0xa6, 0xbd, 0x94, 0x53, 0x25, 0x73, 0x39, 0xd7, 0xbd, - 0x54, 0xd2, 0x9e, 0xca, 0x68, 0xaf, 0xfc, 0xf3, 0xcd, 0x5a, 0xf6, 0xd7, 0xf7, 0xd5, 0xbf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x54, 0x0a, 0xfa, 0xbf, 0x3a, 0x07, 0x00, 0x00, + // 1013 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x5f, 0x6f, 0xe3, 0x44, + 0x10, 0xaf, 0x93, 0x34, 0xbd, 0x4e, 0x74, 0xd7, 0xed, 0x42, 0x8b, 0xd5, 0xeb, 0xf5, 0x4a, 0x4e, + 0x88, 0x12, 0xa1, 0x56, 0x2a, 0xd5, 0x09, 0x21, 0x81, 0xe4, 0x36, 0x49, 0x31, 0x97, 0xda, 0xc6, + 0x71, 0x7a, 0x3a, 0x04, 0xb2, 0x9c, 0xf5, 0x26, 0xb5, 0xce, 0xde, 0xb5, 0xd6, 0x4e, 0xb8, 0x4a, + 0x3c, 0xf0, 0x31, 0x78, 0xe1, 0xf3, 0xf0, 0x41, 0xf8, 0x22, 0x68, 0xd7, 0x4e, 0x9d, 0x5e, 0xfb, + 0xc0, 0x43, 0xde, 0x66, 0x7e, 0x33, 0xf3, 0xdb, 0xf9, 0xb7, 0x6b, 0xc3, 0x41, 0xc2, 0x89, 0x4f, + 0x78, 0x92, 0x70, 0xe6, 0x33, 0x9a, 0xff, 0xce, 0xc5, 0xfb, 0x42, 0x3b, 0x4e, 0x05, 0xcf, 0x39, + 0xae, 0x27, 0x9c, 0xec, 0x7d, 0xb6, 0xe4, 0xb4, 0x6c, 0x6d, 0x47, 0x50, 0xef, 0xb2, 0x0c, 0xeb, + 0xb0, 0x91, 0x51, 0x31, 0xa7, 0x22, 0xd3, 0xb5, 0xc3, 0xfa, 0xd1, 0xa6, 0xbb, 0x50, 0xf1, 0x2e, + 0x34, 0x43, 0x9e, 0x04, 0x11, 0xd3, 0x6b, 0x87, 0xda, 0xd1, 0xa6, 0x5b, 0x6a, 0x12, 0xcf, 0x68, + 0x20, 0xc8, 0x8d, 0x5e, 0x57, 0x01, 0xa5, 0x26, 0x99, 0x78, 0x9a, 0x47, 0x9c, 0x65, 0x7a, 0xa3, + 0x60, 0x2a, 0xd5, 0xf6, 0x0f, 0x00, 0xa6, 0xe3, 0x70, 0x1e, 0x9b, 0x6c, 0xc2, 0x31, 0x86, 0xc6, + 0x2c, 0xa3, 0xa1, 0xae, 0x29, 0x56, 0x25, 0xe3, 0x7d, 0xd8, 0x0c, 0xe6, 0x41, 0x14, 0x07, 0xe3, + 0x98, 0x96, 0xc7, 0x55, 0x40, 0xfb, 0x5f, 0x0d, 0x9a, 0x05, 0x81, 0x0c, 0x66, 0x41, 0x42, 0x17, + 0xc1, 0x52, 0xc6, 0xaf, 0xa0, 0x91, 0xdf, 0xa6, 0x45, 0xdc, 0xb3, 0xd3, 0xad, 0xe3, 0x84, 0x93, + 0xe3, 0xc2, 0xdd, 0xbb, 0x4d, 0xa9, 0xab, 0x8c, 0xf8, 0x53, 0x58, 0xcf, 0xf2, 0x40, 0xe4, 0x7a, + 0x5d, 0x45, 0x16, 0x0a, 0x46, 0x50, 0xa7, 0x2c, 0xd4, 0x1b, 0x0a, 0x93, 0xa2, 0x24, 0x8b, 0xd8, + 0x84, 0xeb, 0xeb, 0x87, 0xda, 0x51, 0xeb, 0x1e, 0x99, 0x4c, 0xde, 0x55, 0x46, 0xfc, 0x02, 0x1a, + 0x79, 0x30, 0xcd, 0xf4, 0xa6, 0x72, 0xda, 0x54, 0x4e, 0x5e, 0x30, 0xcd, 0x5c, 0x05, 0xe3, 0x33, + 0xd8, 0x11, 0x74, 0x1a, 0x65, 0x39, 0x15, 0x34, 0x34, 0x1d, 0x23, 0x0c, 0x05, 0xcd, 0x32, 0x9a, + 0xe9, 0x1b, 0xaa, 0x2f, 0x8f, 0x1b, 0xdb, 0x7f, 0x69, 0xb0, 0x7b, 0xa7, 0x8f, 0xd2, 0x30, 0xc8, + 0x69, 0x3f, 0x88, 0xe2, 0x99, 0xa0, 0xf8, 0x00, 0x60, 0x38, 0x1b, 0x33, 0x9a, 0x5b, 0x55, 0xed, + 0x4b, 0x88, 0x6c, 0xdf, 0x5d, 0xe4, 0xa2, 0x7d, 0x77, 0x00, 0xee, 0x40, 0xe3, 0x82, 0x87, 0x54, + 0x55, 0xfe, 0xec, 0x74, 0xb7, 0x2c, 0xa9, 0x38, 0xa1, 0x27, 0x04, 0x17, 0xd2, 0xea, 0x2a, 0x1f, + 0xd9, 0x26, 0x05, 0x95, 0x2d, 0x29, 0x94, 0xf6, 0x14, 0xd6, 0x5d, 0x3e, 0xcb, 0xa9, 0x9c, 0x31, + 0xa3, 0x1f, 0xf2, 0x1f, 0x79, 0x5a, 0x66, 0xb1, 0x50, 0xf1, 0xd7, 0xb0, 0x1d, 0xd2, 0x2c, 0x8f, + 0x58, 0x20, 0x67, 0xee, 0x08, 0x3a, 0x89, 0x3e, 0x94, 0xa9, 0x3c, 0x34, 0xc8, 0x1d, 0x4a, 0x68, + 0x2e, 0x22, 0xa2, 0x92, 0x7a, 0xea, 0x96, 0x5a, 0xfb, 0x4b, 0xd8, 0x76, 0x69, 0xc6, 0x67, 0x82, + 0x50, 0x97, 0x4e, 0xa8, 0xa0, 0x8c, 0xd0, 0xc7, 0x66, 0xde, 0x7e, 0x07, 0x2f, 0xac, 0x62, 0xe5, + 0x87, 0x94, 0xcc, 0x44, 0x94, 0xdf, 0x5e, 0x0a, 0x3e, 0x4b, 0xab, 0xa0, 0x6f, 0xa1, 0x25, 0x2a, + 0x26, 0x15, 0xdb, 0x2a, 0x6b, 0x7f, 0x70, 0x82, 0xbb, 0xec, 0xda, 0xfe, 0x53, 0x03, 0x54, 0x72, + 0xaf, 0x80, 0x0e, 0x9f, 0x42, 0xab, 0xbc, 0x9c, 0x5e, 0xb5, 0xa4, 0x48, 0x45, 0x5a, 0x15, 0xee, + 0x2e, 0x3b, 0xb5, 0xff, 0x80, 0xad, 0x62, 0xba, 0x55, 0x02, 0x27, 0xb2, 0xf3, 0xca, 0xa3, 0x3c, + 0x7c, 0x67, 0x99, 0xa2, 0x3a, 0x7b, 0xe1, 0xf5, 0x71, 0xc6, 0xb5, 0xff, 0xdf, 0x00, 0x0f, 0x74, + 0x67, 0x36, 0x8e, 0x23, 0x72, 0xb7, 0x42, 0xab, 0x68, 0xeb, 0x6f, 0xb0, 0x63, 0x84, 0xf3, 0x80, + 0x11, 0x1a, 0x96, 0x49, 0x3b, 0x3c, 0x8e, 0xc8, 0xad, 0x5c, 0x4f, 0x75, 0x7d, 0xb5, 0xa5, 0xf5, + 0xbc, 0xe7, 0xb1, 0x74, 0x8b, 0x75, 0xd8, 0xa0, 0x4c, 0xbe, 0x09, 0xa1, 0x2a, 0xe8, 0x89, 0xbb, + 0x50, 0xdb, 0x3f, 0xc1, 0x33, 0x47, 0xf0, 0x31, 0x5d, 0x45, 0xaa, 0xbf, 0xc2, 0x61, 0x5f, 0x70, + 0x96, 0x53, 0x16, 0x9a, 0xce, 0x05, 0x67, 0x93, 0x68, 0x3a, 0x13, 0x6a, 0x7d, 0x57, 0xc1, 0xfe, + 0x33, 0xec, 0x0c, 0x78, 0x10, 0x9e, 0x07, 0xb1, 0x6c, 0x86, 0x58, 0x05, 0xe5, 0xdf, 0x1a, 0x3c, + 0x3f, 0x0f, 0xc8, 0x7b, 0xca, 0xc2, 0x72, 0x62, 0xf2, 0xc1, 0x5a, 0xc5, 0xf6, 0x76, 0x61, 0x2b, + 0xbe, 0x9f, 0x6c, 0xb9, 0x49, 0x7b, 0x2a, 0xfa, 0xd1, 0x42, 0xdc, 0x8f, 0x43, 0x3a, 0xdf, 0xc3, + 0x13, 0x47, 0x7e, 0x74, 0x08, 0x8f, 0xf1, 0x06, 0xd4, 0x8d, 0x38, 0x46, 0x6b, 0x52, 0xf0, 0x48, + 0x8a, 0x34, 0x29, 0x8c, 0xc2, 0x14, 0xd5, 0x30, 0x40, 0xd3, 0x24, 0x49, 0x3a, 0x3f, 0x43, 0xf5, + 0x3b, 0xf9, 0x35, 0x6a, 0x74, 0xbe, 0x03, 0x6c, 0x3a, 0x46, 0x1c, 0x73, 0xa2, 0x86, 0x70, 0x45, + 0xf3, 0x1b, 0x1e, 0xe2, 0x16, 0x6c, 0x98, 0x6c, 0x1e, 0xc4, 0x51, 0x88, 0xd6, 0xa4, 0xd2, 0xbd, + 0x65, 0x41, 0x12, 0x11, 0xa4, 0xc9, 0xd8, 0x61, 0x1e, 0xe4, 0x11, 0x41, 0xb5, 0xce, 0xe7, 0x8b, + 0x6f, 0x8f, 0xdc, 0x22, 0xdc, 0x84, 0xda, 0xf5, 0x55, 0xe1, 0x7e, 0x5d, 0xc0, 0x48, 0xeb, 0xf4, + 0xa1, 0xb5, 0x74, 0x13, 0xf1, 0x27, 0xb0, 0x75, 0x6d, 0xba, 0xde, 0xc8, 0x18, 0xf8, 0x56, 0xcf, + 0x7b, 0x6b, 0xbb, 0x6f, 0xd0, 0x9a, 0x04, 0x07, 0xf6, 0xa5, 0x79, 0xb1, 0x04, 0x6a, 0xf8, 0x29, + 0x6c, 0x8e, 0xac, 0x6e, 0xaf, 0x6f, 0x5a, 0xbd, 0x2e, 0xaa, 0x75, 0x5e, 0xca, 0x57, 0xf8, 0x9a, + 0x8a, 0x2c, 0xe2, 0x0c, 0x3f, 0x81, 0x86, 0xe9, 0xcc, 0xcf, 0xd0, 0x5a, 0x29, 0xbd, 0x46, 0x5a, + 0xe7, 0x1f, 0x0d, 0xb6, 0x1f, 0x3c, 0xbc, 0x78, 0x47, 0x82, 0xfe, 0xc8, 0xe9, 0x1a, 0x5e, 0xcf, + 0x1f, 0x59, 0x6f, 0x2c, 0xfb, 0xad, 0x85, 0xd6, 0xf0, 0x3e, 0xe8, 0x15, 0x6c, 0x5a, 0xd7, 0xc6, + 0xc0, 0xec, 0xfa, 0x7d, 0xdb, 0xbd, 0x32, 0x3c, 0xa4, 0xe1, 0x3d, 0xf9, 0xad, 0x58, 0x58, 0xed, + 0x91, 0xe7, 0xdb, 0x7d, 0xdf, 0x35, 0xac, 0xcb, 0x1e, 0xaa, 0xe1, 0x03, 0xd8, 0xab, 0x6c, 0xc3, + 0xd1, 0xb9, 0xd5, 0xf3, 0x7c, 0xcb, 0xf6, 0xfc, 0xbe, 0x3d, 0xb2, 0xba, 0xa8, 0x8e, 0x5f, 0xc2, + 0xf3, 0xca, 0x6e, 0x0c, 0xdc, 0x9e, 0xd1, 0x7d, 0xe7, 0x1b, 0x83, 0x81, 0x7d, 0x61, 0x78, 0xbd, + 0x2e, 0x6a, 0xe0, 0x43, 0xd8, 0xaf, 0x1c, 0x2c, 0xdb, 0x77, 0x6c, 0x7b, 0x30, 0xf4, 0x4d, 0xab, + 0x24, 0x43, 0xeb, 0x9d, 0xaf, 0x60, 0xfb, 0xc1, 0x15, 0x55, 0x03, 0x29, 0xf2, 0x2c, 0xa6, 0x3b, + 0xec, 0x5a, 0x48, 0x3b, 0xff, 0xe2, 0x97, 0x57, 0xd3, 0x28, 0xbf, 0x99, 0x8d, 0x8f, 0x09, 0x4f, + 0x4e, 0x92, 0x88, 0x08, 0x9e, 0xf1, 0x49, 0x7e, 0x92, 0x70, 0x72, 0x22, 0x52, 0x72, 0x52, 0xfc, + 0x94, 0x8c, 0x9b, 0xea, 0xaf, 0xe4, 0x9b, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x07, 0x44, 0xa4, + 0x0e, 0xd5, 0x08, 0x00, 0x00, } diff --git a/rpc/common/moc_common_networkcommon.proto b/rpc/common/moc_common_networkcommon.proto index 593b7c80..bf4db7a3 100644 --- a/rpc/common/moc_common_networkcommon.proto +++ b/rpc/common/moc_common_networkcommon.proto @@ -56,6 +56,43 @@ message IPPool { string end = 4; IPPoolInfo info = 5; Tags tags = 6; + repeated string registeredIPAddresses = 7; +} + +// IPAddressUpdateFailure is the single-IP failure record returned by +// UpdateRegisteredIPs. Shared between the LogicalNetwork and VirtualNetwork +// flows. +message IPAddressUpdateFailure { + string SubnetName = 1; + string IPAddress = 2; + IPUpdateErrorCode Code = 3; + string Error = 4; +} + +enum IPUpdateErrorCode { + IP_UPDATE_UNKNOWN = 0; + + // Malformed IP literal (parse failure). + IP_UPDATE_INVALID_FORMAT = 1; + + // IP does not fall within any pool's [Start, End] range on this subnet. + IP_UPDATE_OUT_OF_RANGE = 2; + + // Subnet name in the request is not present on the stored network spec. + IP_UPDATE_SUBNET_NOT_FOUND = 3; + + // The IPAM bitmap bit is already set by another owner - a NIC, a + // LoadBalancer, or a system reservation (gateway / network / + // broadcast / DNS) - and the IP is not currently in the registered + // list. Registering it would create two owners for one bitmap bit; + // a later release would then clear the bit out from under the real + // owner. + IP_UPDATE_ALREADY_ALLOCATED = 4; + + // Subnet exists in the network spec but declares no IPPools. + // registeredIPAddresses needs at least one pool to route each IP into, + // and without pools there is no IPAM bitmap to reserve against. + IP_UPDATE_NO_POOLS_IN_SUBNET = 5; } message Route { From 944d459a263c5558008b62cbf9befc700bd54617 Mon Sep 17 00:00:00 2001 From: Yingxin Zhang Date: Tue, 19 May 2026 00:26:37 +0000 Subject: [PATCH 2/3] Drop dead Error field from *IPUpdateResponse The Error field on LogicalNetworkIPUpdateResponse and VirtualNetworkIPUpdateResponse was never reachable on the wire: the cloudagent only set it together with a non-OK gRPC status, and gRPC clients discard the response body on non-OK status. Document Failures as the per-IP failure channel and the gRPC status as the whole-batch failure channel; regenerate the .pb.go files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- go.mod | 6 +- go.sum | 32 +-- .../moc_cloudagent_logicalnetwork.proto | 11 +- .../moc_cloudagent_logicalnetwork.pb.go | 171 +++++++------- .../moc_cloudagent_virtualnetwork.pb.go | 210 ++++++++++-------- .../moc_cloudagent_virtualnetwork.proto | 19 +- rpc/common/moc_common_networkcommon.pb.go | 58 ++--- 7 files changed, 257 insertions(+), 250 deletions(-) diff --git a/go.mod b/go.mod index f5a6fa0d..f87baca0 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.8.3 go.uber.org/multierr v1.11.0 - google.golang.org/grpc v1.79.3 + google.golang.org/grpc v1.59.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -21,8 +21,8 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/sys v0.39.0 // indirect - golang.org/x/text v0.33.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 // indirect + golang.org/x/text v0.37.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/go.sum b/go.sum index 8440453b..0ae95281 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,8 @@ -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= @@ -16,8 +12,6 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb h1:PGufWXXDq9yaev6xX1YQauaO1MV90e6Mpoq1I7Lz/VM= github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -33,18 +27,6 @@ github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gt github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= -go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= -go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= -go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= -go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= -go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= @@ -87,8 +69,8 @@ golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -104,12 +86,10 @@ golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 h1:sNrWoksmOyF5bvJUcnmbeAmQi8baNhqg5IWaI3llQqU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= -google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60 h1:seT2EwLWM78plQ7wcDfuWBc/4FAEAXDDiaSol4ku4qo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto index 19861186..7bdd7ec1 100644 --- a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto +++ b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto @@ -95,11 +95,12 @@ message LogicalNetworkIPUpdateResponse { // Only trustworthy when the gRPC status is OK. repeated LogicalSubnetIPUpdate PersistedIPs = 1; - // IP-level failures. May be non-empty even when the gRPC status is OK - // (partial success). + // IP-level failures. Per-IP validation/allocation failures (e.g., IP + // already taken, IP outside CIDR). These are returned alongside + // PersistedIPs as normal "partial success" outcomes; the gRPC status + // is still OK in this case. Whole-batch / infrastructure failures + // (e.g. store persistence) are reported via the gRPC status code + // instead and do not populate this list. repeated IPAddressUpdateFailure Failures = 2; - - // Overall error summary. Empty when the gRPC status is OK. - string Error = 3; } diff --git a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go index 5fde8d18..a08d58aa 100644 --- a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go @@ -442,8 +442,9 @@ type LogicalNetworkIPUpdateRequest struct { // Identifies the target LNET. LocationName string `protobuf:"bytes,1,opt,name=LocationName,proto3" json:"LocationName,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - // Desired registered-IP list for each subnet (subnet-scoped full-replace). - // MOC routes each IP to the correct pool by range internally. + // Desired registered-IP list for each subnet. Each list replaces + // the stored list across every pool in that subnet. MOC routes each + // IP to the correct pool by range internally. IPUpdates []*LogicalSubnetIPUpdate `protobuf:"bytes,3,rep,name=IPUpdates,proto3" json:"IPUpdates,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -544,16 +545,19 @@ func (m *LogicalSubnetIPUpdate) GetRegisteredIPAddresses() []string { } type LogicalNetworkIPUpdateResponse struct { - // One list of persisted IPs for each subnet (full-replace - // semantics). Only trustworthy when the gRPC status is OK. + // One list of persisted IPs for each subnet (full-replace semantics). + // Only trustworthy when the gRPC status is OK. PersistedIPs []*LogicalSubnetIPUpdate `protobuf:"bytes,1,rep,name=PersistedIPs,proto3" json:"PersistedIPs,omitempty"` - // IP-level failures. May be non-empty even on gRPC OK (partial success). - Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` - // Overall error summary, empty on gRPC OK. - Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // IP-level failures. Per-IP validation/allocation failures (e.g., IP + // already taken, IP outside CIDR). These are returned alongside + // PersistedIPs as normal "partial success" outcomes; the gRPC status + // is still OK in this case. Whole-batch / infrastructure failures + // (e.g. store persistence) are reported via the gRPC status code + // instead and do not populate this list. + Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *LogicalNetworkIPUpdateResponse) Reset() { *m = LogicalNetworkIPUpdateResponse{} } @@ -595,13 +599,6 @@ func (m *LogicalNetworkIPUpdateResponse) GetFailures() []*common.IPAddressUpdate return nil } -func (m *LogicalNetworkIPUpdateResponse) GetError() string { - if m != nil { - return m.Error - } - return "" -} - func init() { proto.RegisterType((*LogicalNetworkRequest)(nil), "moc.cloudagent.network.LogicalNetworkRequest") proto.RegisterType((*LogicalNetworkResponse)(nil), "moc.cloudagent.network.LogicalNetworkResponse") @@ -619,63 +616,63 @@ func init() { } var fileDescriptor_37e4212e5c247b0a = []byte{ - // 889 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdd, 0x8e, 0xdb, 0x44, - 0x14, 0xae, 0x93, 0x34, 0x3f, 0x27, 0xbb, 0x01, 0x4d, 0x69, 0xd7, 0x0a, 0x74, 0x15, 0xb9, 0xb4, - 0xca, 0x4d, 0x1d, 0x11, 0x0a, 0xbd, 0x44, 0xbb, 0xa2, 0xad, 0x22, 0x95, 0xc5, 0xcc, 0x96, 0x5e, - 0x20, 0xa4, 0x6a, 0x62, 0xcf, 0x66, 0x87, 0x3a, 0x1e, 0x77, 0x66, 0xbc, 0x65, 0xe1, 0xbe, 0xe2, - 0x96, 0x27, 0x80, 0x07, 0xe0, 0x12, 0x5e, 0x80, 0x27, 0x43, 0x3e, 0x1e, 0x3b, 0x71, 0x48, 0x21, - 0x7b, 0xd1, 0xab, 0x38, 0xe7, 0xfb, 0xce, 0xdf, 0x77, 0x8e, 0x8f, 0xe1, 0xce, 0x52, 0x86, 0x2f, - 0xc2, 0x58, 0x66, 0x11, 0x5b, 0xf0, 0xc4, 0xbc, 0x88, 0xe5, 0x42, 0x84, 0x2c, 0x4e, 0xb8, 0x79, - 0x2d, 0xd5, 0x4b, 0x3f, 0x55, 0xd2, 0x48, 0x72, 0x6b, 0x29, 0x43, 0x7f, 0x45, 0xf2, 0x2d, 0x3a, - 0x3c, 0x5c, 0x48, 0xb9, 0x88, 0xf9, 0x04, 0x59, 0xf3, 0xec, 0x6c, 0xf2, 0x5a, 0xb1, 0x34, 0xe5, - 0x4a, 0x17, 0x7e, 0xc3, 0x03, 0x0c, 0x2e, 0x97, 0x4b, 0x99, 0xd8, 0x1f, 0x0b, 0x1c, 0xae, 0x01, - 0x36, 0xd8, 0x3a, 0xee, 0xfd, 0xe6, 0xc0, 0xcd, 0xa7, 0x45, 0x25, 0x27, 0x05, 0x4c, 0xf9, 0xab, - 0x8c, 0x6b, 0x43, 0x02, 0x78, 0xaf, 0x0e, 0x68, 0xd7, 0x19, 0x35, 0xc7, 0xfd, 0xe9, 0x3d, 0x7f, - 0x7b, 0x91, 0xfe, 0x46, 0x9c, 0x4d, 0x77, 0xf2, 0x00, 0xf6, 0xbf, 0x4e, 0xb9, 0x62, 0x46, 0xc8, - 0xe4, 0xd9, 0x65, 0xca, 0xdd, 0xc6, 0xc8, 0x19, 0x0f, 0xa6, 0x03, 0x8c, 0x57, 0x21, 0xb4, 0x4e, - 0xf2, 0xfe, 0x74, 0xe0, 0xd6, 0x66, 0x85, 0x3a, 0x95, 0x89, 0xe6, 0xef, 0xa0, 0xc4, 0x29, 0xb4, - 0x29, 0xd7, 0x59, 0x6c, 0xb0, 0xb6, 0xfe, 0x74, 0xe8, 0x17, 0xc2, 0xfb, 0xa5, 0xf0, 0xfe, 0xb1, - 0x94, 0xf1, 0x73, 0x16, 0x67, 0x9c, 0x5a, 0x26, 0xf9, 0x00, 0xae, 0x3f, 0x52, 0x4a, 0x2a, 0xb7, - 0x39, 0x72, 0xc6, 0x3d, 0x5a, 0xfc, 0xf1, 0x5e, 0xc1, 0xed, 0x7a, 0xf0, 0x40, 0xf1, 0xf0, 0x9c, - 0x87, 0xef, 0x4e, 0x5f, 0xef, 0x07, 0x38, 0x7c, 0x5b, 0x4a, 0x2b, 0xd8, 0xaa, 0x3d, 0xe7, 0xea, - 0xed, 0x35, 0xd6, 0xdb, 0xfb, 0xb5, 0x09, 0x83, 0x7a, 0x32, 0x42, 0xa0, 0x95, 0xb0, 0x25, 0xc7, - 0xd0, 0x3d, 0x8a, 0xcf, 0x64, 0x00, 0x0d, 0x11, 0x59, 0xcf, 0x86, 0x88, 0xc8, 0x17, 0xd0, 0xd1, - 0xd9, 0x3c, 0xe1, 0x46, 0xbb, 0x4d, 0x6c, 0xf6, 0xee, 0xff, 0x34, 0x7b, 0x8a, 0x6c, 0x5a, 0x7a, - 0x91, 0x63, 0xf8, 0xc8, 0x32, 0x9e, 0x0b, 0x65, 0x32, 0x16, 0x8b, 0x9f, 0x70, 0x55, 0x1e, 0x25, - 0x6c, 0x1e, 0xf3, 0xc8, 0x6d, 0x8d, 0x9c, 0x71, 0x97, 0xfe, 0x27, 0x87, 0xdc, 0x81, 0xb6, 0x36, - 0xcc, 0x64, 0xda, 0xbd, 0x8e, 0x2a, 0xf4, 0xb1, 0x86, 0x53, 0x34, 0x51, 0x0b, 0x11, 0x0f, 0xf6, - 0x62, 0x19, 0xa2, 0xdf, 0x49, 0xde, 0x55, 0x1b, 0x7b, 0xa8, 0xd9, 0xc8, 0x3d, 0xe8, 0x2f, 0x59, - 0x18, 0x48, 0x19, 0x23, 0xa5, 0x93, 0x53, 0x8e, 0x5b, 0xbf, 0xfc, 0xe5, 0x3a, 0x74, 0x1d, 0x20, - 0xb7, 0xa1, 0x65, 0xd8, 0x42, 0xbb, 0x5d, 0x4c, 0xd7, 0xc3, 0x74, 0xcf, 0xd8, 0x42, 0x53, 0x34, - 0x93, 0xc7, 0xf0, 0x3e, 0x8b, 0x2e, 0x58, 0x12, 0xf2, 0x28, 0x90, 0xb1, 0x08, 0x05, 0xd7, 0x6e, - 0x0f, 0xd5, 0x19, 0x22, 0xf5, 0xc8, 0x82, 0xe5, 0x54, 0x73, 0xce, 0x25, 0xfd, 0x97, 0x8f, 0xf7, - 0x47, 0x13, 0xf6, 0x6b, 0xb2, 0xed, 0x34, 0x92, 0x8f, 0x61, 0x9f, 0x45, 0x91, 0xe2, 0x5a, 0x07, - 0x8a, 0x9f, 0x89, 0x1f, 0xed, 0x1a, 0xd7, 0x8d, 0xc4, 0x83, 0xb6, 0x92, 0x99, 0xe1, 0xda, 0x6d, - 0x61, 0x65, 0x80, 0x95, 0xd1, 0xdc, 0x44, 0x2d, 0x42, 0x1e, 0x02, 0xb0, 0xb8, 0x14, 0x08, 0xb5, - 0x1d, 0x4c, 0x0f, 0x90, 0x37, 0x0b, 0x8e, 0x2a, 0xe0, 0x2b, 0x6e, 0xce, 0x65, 0x44, 0xd7, 0xa8, - 0x79, 0x99, 0x17, 0x31, 0x4b, 0x50, 0xe3, 0x7d, 0x8a, 0xcf, 0xe4, 0x2e, 0x74, 0x44, 0x9a, 0x2b, - 0xa8, 0xdd, 0x0e, 0x66, 0xec, 0xdb, 0x48, 0xb9, 0x8d, 0x96, 0x18, 0x19, 0x41, 0x33, 0x4a, 0x4a, - 0x65, 0xbb, 0x48, 0xf9, 0x32, 0xd1, 0x76, 0x08, 0x39, 0x44, 0x86, 0xd0, 0x15, 0x3a, 0xc8, 0xe6, - 0xb1, 0x08, 0xdd, 0x1e, 0x6e, 0x47, 0xf5, 0xbf, 0x1a, 0x0c, 0x6c, 0x1f, 0xcc, 0xf7, 0x70, 0x60, - 0x17, 0xe9, 0x94, 0x87, 0x99, 0x12, 0xe6, 0xf2, 0x89, 0x92, 0x59, 0x4a, 0xf9, 0x99, 0xdb, 0x47, - 0x0f, 0x0f, 0x3d, 0x4e, 0xb6, 0x73, 0xb8, 0xe2, 0x49, 0xc8, 0xe9, 0xdb, 0x42, 0x78, 0xbf, 0x3b, - 0x9b, 0x27, 0x62, 0x16, 0x7c, 0x9b, 0x46, 0xcc, 0xf0, 0xf2, 0x44, 0x78, 0xb0, 0xf7, 0x74, 0x7d, - 0x07, 0x8b, 0x31, 0xd6, 0x6c, 0xb9, 0x76, 0x88, 0x15, 0x03, 0xc5, 0x67, 0xf2, 0x04, 0x3a, 0xa7, - 0xb5, 0xb7, 0xec, 0xfe, 0x4e, 0x6f, 0x59, 0x95, 0xbe, 0xf4, 0xf6, 0x58, 0xf5, 0x71, 0xa8, 0x33, - 0xaa, 0xac, 0xce, 0x5a, 0xd6, 0x07, 0x70, 0x93, 0xf2, 0x85, 0xd0, 0x86, 0x2b, 0x1e, 0xcd, 0x82, - 0xa3, 0x62, 0x7f, 0xb8, 0x76, 0x1b, 0xa3, 0xe6, 0xb8, 0x47, 0xb7, 0x83, 0xde, 0xdf, 0xce, 0xe6, - 0xd5, 0x5a, 0xa9, 0x60, 0xaf, 0xd6, 0x37, 0xb0, 0x17, 0x70, 0xa5, 0x73, 0xe7, 0x68, 0x16, 0x94, - 0x67, 0xf2, 0x8a, 0x3d, 0xd5, 0x42, 0x90, 0x87, 0xd0, 0x7d, 0xcc, 0x44, 0x9c, 0x29, 0x5b, 0x5e, - 0x7f, 0xfa, 0x61, 0xb9, 0xa8, 0x45, 0x65, 0x85, 0x97, 0xe5, 0xd0, 0x8a, 0xbc, 0xfd, 0xd8, 0x4f, - 0xdf, 0x34, 0xe1, 0x46, 0xbd, 0x89, 0xa3, 0xbc, 0x24, 0x22, 0xa0, 0x3d, 0x4b, 0x2e, 0xe4, 0x4b, - 0x4e, 0xee, 0xef, 0x78, 0xd4, 0x8b, 0xc9, 0x0f, 0xfd, 0x5d, 0xe9, 0x85, 0x44, 0xde, 0x35, 0xf2, - 0x33, 0x74, 0xcb, 0x73, 0x4f, 0x3e, 0xdb, 0xcd, 0x7b, 0xe3, 0x8b, 0x34, 0xfc, 0xfc, 0xaa, 0x6e, - 0x55, 0xf2, 0x37, 0x0e, 0xdc, 0x28, 0x87, 0xb6, 0x1a, 0xb2, 0xde, 0xb5, 0x90, 0x8d, 0xbd, 0xdf, - 0xb5, 0x90, 0xcd, 0x45, 0xf1, 0xae, 0x1d, 0x7f, 0xf2, 0xdd, 0x64, 0x21, 0xcc, 0x79, 0x36, 0xf7, - 0x43, 0xb9, 0x9c, 0x2c, 0x45, 0xa8, 0xa4, 0x96, 0x67, 0x66, 0xb2, 0x94, 0xe1, 0x44, 0xa5, 0xe1, - 0x64, 0x15, 0x73, 0x62, 0x63, 0xce, 0xdb, 0xf8, 0xed, 0xfb, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xea, 0xd2, 0xdf, 0x11, 0xa0, 0x09, 0x00, 0x00, + // 890 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x41, 0x8f, 0xdb, 0x44, + 0x14, 0xae, 0x93, 0x34, 0x9b, 0xbc, 0xec, 0x06, 0x34, 0xa5, 0x5d, 0x2b, 0xd0, 0x55, 0xe4, 0xd2, + 0x2a, 0x97, 0x3a, 0x22, 0x14, 0x7a, 0x44, 0xbb, 0xa2, 0x45, 0x11, 0x65, 0x31, 0xb3, 0xa5, 0x07, + 0x84, 0x54, 0x4d, 0xec, 0xd9, 0xec, 0x50, 0xdb, 0xe3, 0xce, 0x8c, 0xb7, 0x2c, 0xdc, 0x2b, 0xae, + 0xfc, 0x02, 0x2e, 0x1c, 0x7b, 0x84, 0xff, 0x87, 0xfc, 0x3c, 0x4e, 0x62, 0xb3, 0x85, 0xec, 0xa1, + 0xa7, 0x38, 0xef, 0xfb, 0xde, 0x9b, 0xef, 0x7d, 0xef, 0x79, 0x0c, 0x77, 0x12, 0x19, 0x3e, 0x0f, + 0x63, 0x99, 0x47, 0x6c, 0xc9, 0x53, 0xf3, 0x3c, 0x96, 0x4b, 0x11, 0xb2, 0x38, 0xe5, 0xe6, 0x95, + 0x54, 0x2f, 0xfc, 0x4c, 0x49, 0x23, 0xc9, 0xad, 0x44, 0x86, 0xfe, 0x9a, 0xe4, 0x5b, 0x74, 0x74, + 0xb0, 0x94, 0x72, 0x19, 0xf3, 0x29, 0xb2, 0x16, 0xf9, 0xe9, 0xf4, 0x95, 0x62, 0x59, 0xc6, 0x95, + 0x2e, 0xf3, 0x46, 0xfb, 0x58, 0x5c, 0x26, 0x89, 0x4c, 0xed, 0x8f, 0x05, 0x0e, 0x36, 0x00, 0x5b, + 0x6c, 0x13, 0xf7, 0xfe, 0x70, 0xe0, 0xe6, 0x93, 0x52, 0xc9, 0x71, 0x09, 0x53, 0xfe, 0x32, 0xe7, + 0xda, 0x90, 0x00, 0xde, 0xab, 0x03, 0xda, 0x75, 0xc6, 0xed, 0xc9, 0x60, 0x76, 0xcf, 0xbf, 0x5c, + 0xa4, 0xdf, 0xa8, 0xd3, 0x4c, 0x27, 0x0f, 0x60, 0xef, 0xdb, 0x8c, 0x2b, 0x66, 0x84, 0x4c, 0x9f, + 0x5e, 0x64, 0xdc, 0x6d, 0x8d, 0x9d, 0xc9, 0x70, 0x36, 0xc4, 0x7a, 0x2b, 0x84, 0xd6, 0x49, 0xde, + 0x5f, 0x0e, 0xdc, 0x6a, 0x2a, 0xd4, 0x99, 0x4c, 0x35, 0x7f, 0x07, 0x12, 0x67, 0xd0, 0xa5, 0x5c, + 0xe7, 0xb1, 0x41, 0x6d, 0x83, 0xd9, 0xc8, 0x2f, 0x8d, 0xf7, 0x2b, 0xe3, 0xfd, 0x23, 0x29, 0xe3, + 0x67, 0x2c, 0xce, 0x39, 0xb5, 0x4c, 0xf2, 0x01, 0x5c, 0x7f, 0xa4, 0x94, 0x54, 0x6e, 0x7b, 0xec, + 0x4c, 0xfa, 0xb4, 0xfc, 0xe3, 0xbd, 0x84, 0xdb, 0xf5, 0xe2, 0x81, 0xe2, 0xe1, 0x19, 0x0f, 0xdf, + 0x9d, 0xbf, 0xde, 0x4f, 0x70, 0xf0, 0xb6, 0x23, 0xad, 0x61, 0xeb, 0xf6, 0x9c, 0xab, 0xb7, 0xd7, + 0xda, 0x6c, 0xef, 0xf7, 0x36, 0x0c, 0xeb, 0x87, 0x11, 0x02, 0x9d, 0x94, 0x25, 0x1c, 0x4b, 0xf7, + 0x29, 0x3e, 0x93, 0x21, 0xb4, 0x44, 0x64, 0x33, 0x5b, 0x22, 0x22, 0x5f, 0xc0, 0x8e, 0xce, 0x17, + 0x29, 0x37, 0xda, 0x6d, 0x63, 0xb3, 0x77, 0xff, 0xa7, 0xd9, 0x13, 0x64, 0xd3, 0x2a, 0x8b, 0x1c, + 0xc1, 0x47, 0x96, 0xf1, 0x4c, 0x28, 0x93, 0xb3, 0x58, 0xfc, 0x82, 0xab, 0xf2, 0x28, 0x65, 0x8b, + 0x98, 0x47, 0x6e, 0x67, 0xec, 0x4c, 0x7a, 0xf4, 0x3f, 0x39, 0xe4, 0x0e, 0x74, 0xb5, 0x61, 0x26, + 0xd7, 0xee, 0x75, 0x74, 0x61, 0x80, 0x1a, 0x4e, 0x30, 0x44, 0x2d, 0x44, 0x3c, 0xd8, 0x8d, 0x65, + 0x88, 0x79, 0xc7, 0x45, 0x57, 0x5d, 0xec, 0xa1, 0x16, 0x23, 0xf7, 0x60, 0x90, 0xb0, 0x30, 0x90, + 0x32, 0x46, 0xca, 0x4e, 0x41, 0x39, 0xea, 0xfc, 0xf6, 0xb7, 0xeb, 0xd0, 0x4d, 0x80, 0xdc, 0x86, + 0x8e, 0x61, 0x4b, 0xed, 0xf6, 0xf0, 0xb8, 0x3e, 0x1e, 0xf7, 0x94, 0x2d, 0x35, 0xc5, 0x30, 0x79, + 0x0c, 0xef, 0xb3, 0xe8, 0x9c, 0xa5, 0x21, 0x8f, 0x02, 0x19, 0x8b, 0x50, 0x70, 0xed, 0xf6, 0xd1, + 0x9d, 0x11, 0x52, 0x0f, 0x2d, 0x58, 0x4d, 0xb5, 0xe0, 0x5c, 0xd0, 0x7f, 0xe5, 0x78, 0x6f, 0xda, + 0xb0, 0x57, 0xb3, 0x6d, 0xab, 0x91, 0x7c, 0x0c, 0x7b, 0x2c, 0x8a, 0x14, 0xd7, 0x3a, 0x50, 0xfc, + 0x54, 0xfc, 0x6c, 0xd7, 0xb8, 0x1e, 0x24, 0x1e, 0x74, 0x95, 0xcc, 0x0d, 0xd7, 0x6e, 0x07, 0x95, + 0x01, 0x2a, 0xa3, 0x45, 0x88, 0x5a, 0x84, 0x3c, 0x04, 0x60, 0x71, 0x65, 0x10, 0x7a, 0x3b, 0x9c, + 0xed, 0x23, 0x6f, 0x1e, 0x1c, 0xae, 0x80, 0x6f, 0xb8, 0x39, 0x93, 0x11, 0xdd, 0xa0, 0x16, 0x32, + 0xcf, 0x63, 0x96, 0xa2, 0xc7, 0x7b, 0x14, 0x9f, 0xc9, 0x5d, 0xd8, 0x11, 0x59, 0xe1, 0xa0, 0x76, + 0x77, 0xf0, 0xc4, 0x81, 0xad, 0x54, 0xc4, 0x68, 0x85, 0x91, 0x31, 0xb4, 0xa3, 0xb4, 0x72, 0xb6, + 0x87, 0x94, 0x2f, 0x53, 0x6d, 0x87, 0x50, 0x40, 0x64, 0x04, 0x3d, 0xa1, 0x83, 0x7c, 0x11, 0x8b, + 0xd0, 0xed, 0xe3, 0x76, 0xac, 0xfe, 0xaf, 0x06, 0x03, 0x97, 0x0f, 0xe6, 0x47, 0xd8, 0xb7, 0x8b, + 0x74, 0xc2, 0xc3, 0x5c, 0x09, 0x73, 0xf1, 0x95, 0x92, 0x79, 0x46, 0xf9, 0xa9, 0x3b, 0xc0, 0x0c, + 0x0f, 0x33, 0x8e, 0x2f, 0xe7, 0x70, 0xc5, 0xd3, 0x90, 0xd3, 0xb7, 0x95, 0xf0, 0xfe, 0x74, 0x9a, + 0x57, 0xc4, 0x3c, 0xf8, 0x3e, 0x8b, 0x98, 0xe1, 0xd5, 0x15, 0xe1, 0xc1, 0xee, 0x93, 0xcd, 0x1d, + 0x2c, 0xc7, 0x58, 0x8b, 0x15, 0xde, 0x21, 0x56, 0x0e, 0x14, 0x9f, 0xc9, 0xd7, 0xd0, 0xaf, 0x4a, + 0x55, 0xef, 0xd9, 0xfd, 0xad, 0xde, 0xb3, 0x95, 0x80, 0x75, 0xbe, 0x97, 0xac, 0x3e, 0x10, 0x75, + 0x0e, 0x39, 0x00, 0x28, 0x23, 0x1b, 0xda, 0x36, 0x22, 0xe4, 0x01, 0xdc, 0xa4, 0x7c, 0x29, 0xb4, + 0xe1, 0x8a, 0x47, 0xf3, 0xe0, 0xb0, 0xdc, 0x27, 0xae, 0xdd, 0xd6, 0xb8, 0x3d, 0xe9, 0xd3, 0xcb, + 0x41, 0xef, 0x8d, 0xd3, 0xbc, 0xc5, 0xd6, 0xae, 0xd8, 0x5b, 0xec, 0x3b, 0xd8, 0x0d, 0xb8, 0xd2, + 0x45, 0x72, 0x34, 0x0f, 0xaa, 0x6b, 0xf3, 0x8a, 0x1d, 0xd6, 0x4a, 0x90, 0x87, 0xd0, 0x7b, 0xcc, + 0x44, 0x9c, 0x2b, 0x2b, 0x6f, 0x30, 0xfb, 0xb0, 0x5a, 0xdc, 0x52, 0x59, 0x99, 0x65, 0x39, 0x74, + 0x45, 0x9e, 0xbd, 0x6e, 0xc3, 0x8d, 0xba, 0xdc, 0xc3, 0xe2, 0x70, 0x22, 0xa0, 0x3b, 0x4f, 0xcf, + 0xe5, 0x0b, 0x4e, 0xee, 0x6f, 0x79, 0x9d, 0x97, 0x33, 0x1f, 0xf9, 0xdb, 0xd2, 0x4b, 0x33, 0xbc, + 0x6b, 0xe4, 0x57, 0xe8, 0x55, 0x17, 0x3d, 0xf9, 0x6c, 0xbb, 0xec, 0xc6, 0xb7, 0x68, 0xf4, 0xf9, + 0x55, 0xd3, 0x56, 0x87, 0xbf, 0x76, 0xe0, 0x46, 0x35, 0x9e, 0xf5, 0x38, 0xf5, 0xb6, 0x42, 0x1a, + 0x1b, 0xbf, 0xad, 0x90, 0xe6, 0x4a, 0x78, 0xd7, 0x8e, 0x3e, 0xf9, 0x61, 0xba, 0x14, 0xe6, 0x2c, + 0x5f, 0xf8, 0xa1, 0x4c, 0xa6, 0x89, 0x08, 0x95, 0xd4, 0xf2, 0xd4, 0x4c, 0x13, 0x19, 0x4e, 0x55, + 0x16, 0x4e, 0xd7, 0x35, 0xa7, 0xb6, 0xe6, 0xa2, 0x8b, 0x5f, 0xbd, 0x4f, 0xff, 0x09, 0x00, 0x00, + 0xff, 0xff, 0xef, 0xd9, 0x1c, 0x28, 0x9a, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -693,11 +690,13 @@ type LogicalNetworkAgentClient interface { Invoke(ctx context.Context, in *LogicalNetworkRequest, opts ...grpc.CallOption) (*LogicalNetworkResponse, error) // Prechecks whether the system is able to create specified logical networks (but does not actually create them). Precheck(ctx context.Context, in *LogicalNetworkPrecheckRequest, opts ...grpc.CallOption) (*LogicalNetworkPrecheckResponse, error) - // Replaces the registeredIPAddresses list on each referenced subnet with - // the supplied list (subnet-scoped full-replace) and applies the - // corresponding add/remove delta to the IPAM bitmap. Independent from - // spec Update(): does not run Validate/validateUpdate, does not touch - // ProvisionState, and does not fan out to nodeagents. + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. UpdateRegisteredIPs(ctx context.Context, in *LogicalNetworkIPUpdateRequest, opts ...grpc.CallOption) (*LogicalNetworkIPUpdateResponse, error) } @@ -741,11 +740,13 @@ type LogicalNetworkAgentServer interface { Invoke(context.Context, *LogicalNetworkRequest) (*LogicalNetworkResponse, error) // Prechecks whether the system is able to create specified logical networks (but does not actually create them). Precheck(context.Context, *LogicalNetworkPrecheckRequest) (*LogicalNetworkPrecheckResponse, error) - // Replaces the registeredIPAddresses list on each referenced subnet with - // the supplied list (subnet-scoped full-replace) and applies the - // corresponding add/remove delta to the IPAM bitmap. Independent from - // spec Update(): does not run Validate/validateUpdate, does not touch - // ProvisionState, and does not fan out to nodeagents. + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. UpdateRegisteredIPs(context.Context, *LogicalNetworkIPUpdateRequest) (*LogicalNetworkIPUpdateResponse, error) } diff --git a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go index 1408983e..e6fe6c4f 100644 --- a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go @@ -559,12 +559,20 @@ type VirtualNetworkIPUpdateRequest struct { // Identifies the target VNET. GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - // Desired registered-IP list for each subnet (subnet-scoped full-replace). - // MOC routes each IP to the correct pool by range internally. - IPUpdates []*VirtualSubnetIPUpdate `protobuf:"bytes,3,rep,name=IPUpdates,proto3" json:"IPUpdates,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Desired registered-IP list for each subnet. Each list replaces + // the stored list across every pool in that subnet. MOC routes each + // IP to the correct pool by range internally. + IPUpdates []*VirtualSubnetIPUpdate `protobuf:"bytes,3,rep,name=IPUpdates,proto3" json:"IPUpdates,omitempty"` + // Wire API version. nil/v1 follows the cluster-wide migration + // shim (see shouldRouteVnetToLnet). Setting Major>=2 opts the + // caller out of the LNET migration shim, so registered-IP writes + // land on the VNET provider even when the cluster has + // disableLogicalNetworkMigration=false. Mirrors the Version field + // on VirtualNetworkRequest. + Version *common.ApiVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *VirtualNetworkIPUpdateRequest) Reset() { *m = VirtualNetworkIPUpdateRequest{} } @@ -613,6 +621,13 @@ func (m *VirtualNetworkIPUpdateRequest) GetIPUpdates() []*VirtualSubnetIPUpdate return nil } +func (m *VirtualNetworkIPUpdateRequest) GetVersion() *common.ApiVersion { + if m != nil { + return m.Version + } + return nil +} + type VirtualSubnetIPUpdate struct { SubnetName string `protobuf:"bytes,1,opt,name=SubnetName,proto3" json:"SubnetName,omitempty"` RegisteredIPAddresses []string `protobuf:"bytes,2,rep,name=RegisteredIPAddresses,proto3" json:"RegisteredIPAddresses,omitempty"` @@ -661,16 +676,19 @@ func (m *VirtualSubnetIPUpdate) GetRegisteredIPAddresses() []string { } type VirtualNetworkIPUpdateResponse struct { - // One list of persisted IPs for each subnet (full-replace - // semantics). Only trustworthy when the gRPC status is OK. + // One list of persisted IPs for each subnet (full-replace semantics). + // Only trustworthy when the gRPC status is OK. PersistedIPs []*VirtualSubnetIPUpdate `protobuf:"bytes,1,rep,name=PersistedIPs,proto3" json:"PersistedIPs,omitempty"` - // IP-level failures. May be non-empty even on gRPC OK (partial success). - Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` - // Overall error summary, empty on gRPC OK. - Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // IP-level failures. Per-IP validation/allocation failures (e.g., IP + // already taken, IP outside CIDR). These are returned alongside + // PersistedIPs as normal "partial success" outcomes; the gRPC status + // is still OK in this case. Whole-batch / infrastructure failures + // (e.g. store persistence) are reported via the gRPC status code + // instead and do not populate this list. + Failures []*common.IPAddressUpdateFailure `protobuf:"bytes,2,rep,name=Failures,proto3" json:"Failures,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *VirtualNetworkIPUpdateResponse) Reset() { *m = VirtualNetworkIPUpdateResponse{} } @@ -712,13 +730,6 @@ func (m *VirtualNetworkIPUpdateResponse) GetFailures() []*common.IPAddressUpdate return nil } -func (m *VirtualNetworkIPUpdateResponse) GetError() string { - if m != nil { - return m.Error - } - return "" -} - func init() { proto.RegisterEnum("moc.cloudagent.network.VirtualNetworkType", VirtualNetworkType_name, VirtualNetworkType_value) proto.RegisterType((*VirtualNetworkRequest)(nil), "moc.cloudagent.network.VirtualNetworkRequest") @@ -738,72 +749,73 @@ func init() { } var fileDescriptor_65af3e74534f0214 = []byte{ - // 1033 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdb, 0x6e, 0x1b, 0x45, + // 1042 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdb, 0x6e, 0x1b, 0x45, 0x18, 0xee, 0xda, 0x8e, 0x0f, 0xbf, 0x13, 0x67, 0x35, 0x25, 0xcd, 0xca, 0xb4, 0x51, 0xb4, 0x15, - 0x55, 0xa8, 0x54, 0x5b, 0x98, 0x42, 0xb9, 0x01, 0x29, 0xe1, 0x10, 0xb9, 0xa2, 0xa9, 0x99, 0x98, - 0x5c, 0x20, 0xa4, 0x6a, 0xb2, 0x3b, 0x76, 0x96, 0xee, 0xee, 0x6c, 0x66, 0x66, 0x5d, 0x45, 0xdc, - 0x57, 0xf0, 0x0a, 0x3c, 0x07, 0xbc, 0x00, 0x97, 0xbc, 0x02, 0x8f, 0xc1, 0x0b, 0xa0, 0xf9, 0xf7, - 0xe0, 0x03, 0x89, 0x70, 0x2e, 0x7a, 0xb5, 0x3b, 0xf3, 0x7d, 0xff, 0xf1, 0xfb, 0x67, 0x06, 0x1e, - 0x46, 0xc2, 0x7b, 0xe5, 0x85, 0x22, 0xf5, 0xd9, 0x94, 0xc7, 0xfa, 0xd5, 0x2c, 0x90, 0x3a, 0x65, - 0x61, 0xcc, 0xf5, 0x1b, 0x21, 0x5f, 0xf7, 0x12, 0x29, 0xb4, 0x20, 0xf7, 0x22, 0xe1, 0xf5, 0xe6, - 0xa4, 0x5e, 0x8e, 0x76, 0xf7, 0xa6, 0x42, 0x4c, 0x43, 0xde, 0x47, 0xd6, 0x79, 0x3a, 0xe9, 0xbf, - 0x91, 0x2c, 0x49, 0xb8, 0x54, 0x99, 0x5d, 0x77, 0x17, 0x9d, 0x8b, 0x28, 0x12, 0x71, 0xfe, 0xc9, - 0x81, 0xbd, 0x05, 0x20, 0x77, 0xb6, 0x88, 0xbb, 0x7f, 0x59, 0xb0, 0x73, 0x96, 0x65, 0x72, 0x92, - 0xc1, 0x94, 0x5f, 0xa6, 0x5c, 0x69, 0x32, 0x82, 0xed, 0x65, 0x40, 0x39, 0xd6, 0x7e, 0xf5, 0xa0, - 0x3d, 0x78, 0xd4, 0xbb, 0x3e, 0xc9, 0xde, 0x8a, 0x9f, 0x55, 0x73, 0xf2, 0x14, 0xb6, 0x5e, 0x26, - 0x5c, 0x32, 0x1d, 0x88, 0x78, 0x7c, 0x95, 0x70, 0xa7, 0xb2, 0x6f, 0x1d, 0x74, 0x06, 0x1d, 0xf4, - 0x57, 0x22, 0x74, 0x99, 0x44, 0x3e, 0x84, 0xc6, 0x8c, 0x4b, 0x15, 0x88, 0xd8, 0xa9, 0xee, 0x5b, - 0x07, 0xed, 0xc1, 0x36, 0xf2, 0x0f, 0x93, 0xe0, 0x2c, 0xdb, 0xa6, 0x05, 0xee, 0xfe, 0x6e, 0xc1, - 0xbd, 0xd5, 0x62, 0x54, 0x22, 0x62, 0xc5, 0xdf, 0x41, 0x35, 0x03, 0xa8, 0x53, 0xae, 0xd2, 0x50, - 0x63, 0x19, 0xed, 0x41, 0xb7, 0x97, 0x69, 0xd4, 0x2b, 0x34, 0xea, 0x1d, 0x09, 0x11, 0x9e, 0xb1, - 0x30, 0xe5, 0x34, 0x67, 0x92, 0xf7, 0x60, 0xe3, 0x6b, 0x29, 0x85, 0xc4, 0x4a, 0x5a, 0x34, 0x5b, - 0xb8, 0x97, 0xf0, 0x60, 0xd9, 0xf9, 0x48, 0x72, 0xef, 0x82, 0x7b, 0xef, 0x4e, 0x0a, 0xf7, 0x27, - 0xd8, 0xbb, 0x29, 0x64, 0xde, 0xb0, 0x79, 0x79, 0xd6, 0xed, 0xcb, 0xab, 0x2c, 0x96, 0xf7, 0x4f, - 0x15, 0x3a, 0xcb, 0xc1, 0x08, 0x81, 0x5a, 0xcc, 0x22, 0x8e, 0xae, 0x5b, 0x14, 0xff, 0x49, 0x07, - 0x2a, 0x81, 0x9f, 0x5b, 0x56, 0x02, 0x9f, 0x7c, 0x06, 0x0d, 0x95, 0x9e, 0xc7, 0x5c, 0x2b, 0xa7, - 0x8a, 0xc5, 0xee, 0xdd, 0x54, 0xec, 0x29, 0xd2, 0x68, 0x41, 0x27, 0xfb, 0x50, 0xf5, 0x63, 0xe5, - 0xd4, 0x30, 0xef, 0x26, 0x5a, 0x7d, 0x15, 0xab, 0xa3, 0xda, 0x2f, 0x7f, 0x38, 0x16, 0x35, 0x10, - 0xf9, 0x02, 0x6a, 0xda, 0x0c, 0xe0, 0x06, 0x0e, 0xe0, 0xe3, 0xf5, 0xba, 0x68, 0xa6, 0x91, 0xa2, - 0x1d, 0xe9, 0x42, 0x33, 0x16, 0x3e, 0x9f, 0x5c, 0xfa, 0xb1, 0x53, 0xc7, 0x8c, 0xcb, 0x35, 0xb9, - 0x0f, 0xad, 0xa9, 0x14, 0x69, 0x72, 0x62, 0x0a, 0x6c, 0x20, 0x38, 0xdf, 0x20, 0x0f, 0xa1, 0xae, - 0x34, 0xd3, 0xa9, 0x72, 0x9a, 0x98, 0x5e, 0x1b, 0x63, 0x9f, 0xe2, 0x16, 0xcd, 0x21, 0xe2, 0xc2, - 0x66, 0x28, 0x3c, 0x3c, 0x02, 0xe8, 0xa5, 0x85, 0x5e, 0x96, 0xf6, 0xc8, 0x23, 0x68, 0x47, 0xcc, - 0x1b, 0x09, 0x11, 0x22, 0x05, 0x0c, 0x25, 0x2f, 0x71, 0x11, 0x20, 0x0f, 0xa0, 0xa6, 0xd9, 0x54, - 0x39, 0x9b, 0x18, 0xae, 0x85, 0xe1, 0xc6, 0x6c, 0xaa, 0x28, 0x6e, 0x93, 0xcf, 0xa1, 0x13, 0x8a, - 0x69, 0xe0, 0x95, 0x55, 0x3a, 0x5b, 0x48, 0xdc, 0x41, 0x62, 0x79, 0x8a, 0x26, 0x5c, 0xf2, 0xd8, - 0xe3, 0x74, 0x85, 0x6c, 0x84, 0xf4, 0x02, 0x5f, 0x3a, 0x9d, 0xfd, 0xaa, 0x11, 0xd2, 0xfc, 0x3f, - 0xaf, 0x35, 0xdb, 0xf6, 0xa6, 0xfb, 0x77, 0x05, 0xea, 0x99, 0x30, 0x6b, 0xa9, 0x5d, 0x38, 0xca, - 0x0e, 0x06, 0xfe, 0x13, 0x17, 0xea, 0x52, 0xa4, 0x9a, 0x1b, 0x29, 0xcd, 0x00, 0x00, 0xe6, 0x44, - 0xcd, 0x16, 0xcd, 0x11, 0xf2, 0x0c, 0x80, 0x85, 0x45, 0x63, 0x72, 0x3d, 0x77, 0x91, 0x37, 0x1c, - 0x1d, 0x96, 0xc0, 0x0b, 0xae, 0x2f, 0x84, 0x4f, 0x17, 0xa8, 0x26, 0xe0, 0x2c, 0x64, 0x99, 0x7c, - 0x5b, 0x14, 0xff, 0xc9, 0x07, 0xd0, 0x08, 0x92, 0x44, 0x88, 0x50, 0x39, 0x0d, 0x8c, 0xd8, 0xce, - 0x3d, 0x99, 0x6e, 0xd2, 0x02, 0x23, 0x3f, 0xc2, 0x6e, 0x3e, 0x21, 0x8a, 0x7b, 0xa9, 0x0c, 0xf4, - 0x15, 0xea, 0x2b, 0xf9, 0x04, 0x95, 0x6a, 0x0f, 0xdc, 0xc5, 0xe6, 0x9d, 0xe6, 0x9c, 0x63, 0xc3, - 0x99, 0x77, 0xf2, 0x26, 0x17, 0xa5, 0x60, 0x70, 0xad, 0x60, 0xcf, 0x6b, 0xcd, 0xa6, 0xdd, 0x72, - 0xc7, 0x50, 0x1b, 0x26, 0x2c, 0x32, 0x55, 0xe0, 0x20, 0xe7, 0xad, 0xc5, 0xe1, 0x5c, 0x38, 0x38, - 0x95, 0x5b, 0x1d, 0x1c, 0xf7, 0x37, 0x6b, 0xf5, 0x26, 0x1a, 0x8e, 0xbe, 0x4f, 0x7c, 0xa6, 0x79, - 0x71, 0x13, 0xdd, 0x87, 0xd6, 0x71, 0x39, 0xdc, 0x59, 0xd0, 0xf9, 0x86, 0xc9, 0x06, 0x81, 0x4c, - 0x56, 0xfc, 0x27, 0xc7, 0xd0, 0x38, 0x5d, 0x3a, 0xc6, 0x4f, 0xfe, 0xe7, 0xb4, 0x65, 0xec, 0x32, - 0x70, 0x61, 0xed, 0xb2, 0xf2, 0xa1, 0x5a, 0x66, 0x94, 0x51, 0xad, 0x85, 0xa8, 0x4f, 0x61, 0x87, - 0xf2, 0x69, 0xa0, 0x34, 0x97, 0xdc, 0x1f, 0x8e, 0x0e, 0x7d, 0x5f, 0x72, 0xa5, 0x78, 0xd6, 0x91, - 0x16, 0xbd, 0x1e, 0x74, 0xff, 0xb4, 0x56, 0xaf, 0xc5, 0x79, 0xfd, 0xf9, 0xb5, 0xf8, 0x1d, 0x6c, - 0x8e, 0xcc, 0x6b, 0xa3, 0xb4, 0x31, 0x2d, 0xee, 0xe1, 0x5b, 0xd6, 0xb4, 0xe4, 0x82, 0x3c, 0x83, - 0xe6, 0x37, 0x2c, 0x08, 0x53, 0xc9, 0x0b, 0xc1, 0xde, 0x2f, 0x06, 0x38, 0xcb, 0x2c, 0xb3, 0xca, - 0x39, 0xb4, 0x24, 0x5f, 0xff, 0x9a, 0x3c, 0xfe, 0xd5, 0x02, 0xf2, 0xdf, 0x8b, 0x8b, 0x34, 0xa0, - 0x7a, 0x72, 0x38, 0xb6, 0xef, 0x90, 0x6d, 0x68, 0x8f, 0x25, 0x8b, 0x55, 0xc2, 0x24, 0x8f, 0xb5, - 0x6d, 0x91, 0x4d, 0x68, 0x7e, 0x3b, 0x38, 0x92, 0x81, 0x3f, 0xe5, 0x76, 0x25, 0x5b, 0x8d, 0xd3, - 0x38, 0xe6, 0xa1, 0x5d, 0x35, 0x56, 0xc3, 0x2f, 0x4f, 0xed, 0x1a, 0x69, 0x43, 0x63, 0x24, 0x83, - 0x19, 0xd3, 0xdc, 0xde, 0x30, 0x8b, 0x97, 0x33, 0x2e, 0x43, 0x76, 0x65, 0xd7, 0x8d, 0xc1, 0x30, - 0xd6, 0x5c, 0xc6, 0x2c, 0xb4, 0x1b, 0x66, 0xf5, 0x22, 0x30, 0x79, 0x70, 0xdf, 0x6e, 0x0e, 0xde, - 0x56, 0xe1, 0xee, 0x72, 0x2e, 0x87, 0xa6, 0x3d, 0x24, 0x80, 0xfa, 0x30, 0x9e, 0x89, 0xd7, 0x9c, - 0x3c, 0x59, 0xf3, 0x05, 0xcb, 0xe6, 0xaf, 0xdb, 0x5b, 0x97, 0x9e, 0xc9, 0xe5, 0xde, 0x21, 0x3f, - 0x43, 0xb3, 0x78, 0xdb, 0xc8, 0x27, 0xeb, 0x59, 0xaf, 0x3c, 0xbf, 0xdd, 0x4f, 0x6f, 0x6b, 0x56, - 0x06, 0x7f, 0x6b, 0xc1, 0xdd, 0x62, 0x80, 0xe6, 0x03, 0xa7, 0xd6, 0x4d, 0x64, 0xe5, 0xf4, 0xad, - 0x9b, 0xc8, 0xea, 0xd0, 0xba, 0x77, 0x8e, 0x3e, 0xfa, 0xa1, 0x3f, 0x0d, 0xf4, 0x45, 0x7a, 0xde, - 0xf3, 0x44, 0xd4, 0x8f, 0x02, 0x4f, 0x0a, 0x25, 0x26, 0xba, 0x1f, 0x09, 0xaf, 0x2f, 0x13, 0xaf, - 0x3f, 0xf7, 0xd9, 0xcf, 0x7d, 0x9e, 0xd7, 0xf1, 0xa1, 0xff, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x5a, 0xa7, 0xe6, 0x51, 0xb8, 0x0a, 0x00, 0x00, + 0x55, 0xa8, 0x54, 0x5b, 0x98, 0x42, 0xb9, 0x01, 0x29, 0xe1, 0x50, 0xb9, 0xd0, 0xd4, 0x4c, 0x4c, + 0x2e, 0x10, 0x52, 0xb5, 0xd9, 0x1d, 0x3b, 0x4b, 0x77, 0x67, 0x36, 0x33, 0xb3, 0xae, 0x22, 0xee, + 0x2b, 0x78, 0x17, 0x2e, 0xe1, 0x21, 0xe0, 0x15, 0x78, 0x0c, 0x5e, 0x00, 0xcd, 0xbf, 0x07, 0x1f, + 0x48, 0x54, 0xe7, 0xa2, 0x57, 0xde, 0x99, 0xef, 0xfb, 0x8f, 0xdf, 0x3f, 0x33, 0x86, 0xfb, 0xb1, + 0xf0, 0x5f, 0xfa, 0x91, 0x48, 0x03, 0x6f, 0xca, 0xb8, 0x7e, 0x39, 0x0b, 0xa5, 0x4e, 0xbd, 0x88, + 0x33, 0xfd, 0x5a, 0xc8, 0x57, 0xbd, 0x44, 0x0a, 0x2d, 0xc8, 0x9d, 0x58, 0xf8, 0xbd, 0x39, 0xa9, + 0x97, 0xa3, 0xdd, 0xbd, 0xa9, 0x10, 0xd3, 0x88, 0xf5, 0x91, 0x75, 0x96, 0x4e, 0xfa, 0xaf, 0xa5, + 0x97, 0x24, 0x4c, 0xaa, 0xcc, 0xae, 0xbb, 0x8b, 0xce, 0x45, 0x1c, 0x0b, 0x9e, 0xff, 0xe4, 0xc0, + 0xde, 0x02, 0x90, 0x3b, 0x5b, 0xc4, 0xdd, 0xbf, 0x2d, 0xd8, 0x39, 0xcd, 0x32, 0x39, 0xce, 0x60, + 0xca, 0x2e, 0x52, 0xa6, 0x34, 0x19, 0xc1, 0xf6, 0x32, 0xa0, 0x1c, 0x6b, 0xbf, 0x7a, 0xd0, 0x1e, + 0x3c, 0xe8, 0x5d, 0x9d, 0x64, 0x6f, 0xc5, 0xcf, 0xaa, 0x39, 0x79, 0x0c, 0x5b, 0x2f, 0x12, 0x26, + 0x3d, 0x1d, 0x0a, 0x3e, 0xbe, 0x4c, 0x98, 0x53, 0xd9, 0xb7, 0x0e, 0x3a, 0x83, 0x0e, 0xfa, 0x2b, + 0x11, 0xba, 0x4c, 0x22, 0x1f, 0x42, 0x63, 0xc6, 0xa4, 0x0a, 0x05, 0x77, 0xaa, 0xfb, 0xd6, 0x41, + 0x7b, 0xb0, 0x8d, 0xfc, 0xc3, 0x24, 0x3c, 0xcd, 0xb6, 0x69, 0x81, 0xbb, 0x7f, 0x58, 0x70, 0x67, + 0xb5, 0x18, 0x95, 0x08, 0xae, 0xd8, 0x3b, 0xa8, 0x66, 0x00, 0x75, 0xca, 0x54, 0x1a, 0x69, 0x2c, + 0xa3, 0x3d, 0xe8, 0xf6, 0x32, 0x8d, 0x7a, 0x85, 0x46, 0xbd, 0x23, 0x21, 0xa2, 0x53, 0x2f, 0x4a, + 0x19, 0xcd, 0x99, 0xe4, 0x3d, 0xd8, 0xf8, 0x5a, 0x4a, 0x21, 0xb1, 0x92, 0x16, 0xcd, 0x16, 0xee, + 0x05, 0xdc, 0x5b, 0x76, 0x3e, 0x92, 0xcc, 0x3f, 0x67, 0xfe, 0xbb, 0x93, 0xc2, 0xfd, 0x19, 0xf6, + 0xae, 0x0b, 0x99, 0x37, 0x6c, 0x5e, 0x9e, 0x75, 0xf3, 0xf2, 0x2a, 0x8b, 0xe5, 0xfd, 0x5b, 0x85, + 0xce, 0x72, 0x30, 0x42, 0xa0, 0xc6, 0xbd, 0x98, 0xa1, 0xeb, 0x16, 0xc5, 0x6f, 0xd2, 0x81, 0x4a, + 0x18, 0xe4, 0x96, 0x95, 0x30, 0x20, 0x9f, 0x41, 0x43, 0xa5, 0x67, 0x9c, 0x69, 0xe5, 0x54, 0xb1, + 0xd8, 0xbd, 0xeb, 0x8a, 0x3d, 0x41, 0x1a, 0x2d, 0xe8, 0x64, 0x1f, 0xaa, 0x01, 0x57, 0x4e, 0x0d, + 0xf3, 0x6e, 0xa2, 0xd5, 0x57, 0x5c, 0x1d, 0xd5, 0x7e, 0xfd, 0xd3, 0xb1, 0xa8, 0x81, 0xc8, 0x17, + 0x50, 0xd3, 0x66, 0x00, 0x37, 0x70, 0x00, 0x1f, 0xae, 0xd7, 0x45, 0x33, 0x8d, 0x14, 0xed, 0x48, + 0x17, 0x9a, 0x5c, 0x04, 0x6c, 0x72, 0x11, 0x70, 0xa7, 0x8e, 0x19, 0x97, 0x6b, 0x72, 0x17, 0x5a, + 0x53, 0x29, 0xd2, 0xe4, 0xd8, 0x14, 0xd8, 0x40, 0x70, 0xbe, 0x41, 0xee, 0x43, 0x5d, 0x69, 0x4f, + 0xa7, 0xca, 0x69, 0x62, 0x7a, 0x6d, 0x8c, 0x7d, 0x82, 0x5b, 0x34, 0x87, 0x88, 0x0b, 0x9b, 0x91, + 0xf0, 0xf1, 0x08, 0xa0, 0x97, 0x16, 0x7a, 0x59, 0xda, 0x23, 0x0f, 0xa0, 0x1d, 0x7b, 0xfe, 0x48, + 0x88, 0x08, 0x29, 0x60, 0x28, 0x79, 0x89, 0x8b, 0x00, 0xb9, 0x07, 0x35, 0xed, 0x4d, 0x95, 0xb3, + 0x89, 0xe1, 0x5a, 0x18, 0x6e, 0xec, 0x4d, 0x15, 0xc5, 0x6d, 0xf2, 0x39, 0x74, 0x22, 0x31, 0x0d, + 0xfd, 0xb2, 0x4a, 0x67, 0x0b, 0x89, 0x3b, 0x48, 0x2c, 0x4f, 0xd1, 0x84, 0x49, 0xc6, 0x7d, 0x46, + 0x57, 0xc8, 0x46, 0x48, 0x3f, 0x0c, 0xa4, 0xd3, 0xd9, 0xaf, 0x1a, 0x21, 0xcd, 0xf7, 0xb3, 0x5a, + 0xb3, 0x6d, 0x6f, 0xba, 0xff, 0x54, 0xa0, 0x9e, 0x09, 0xb3, 0x96, 0xda, 0x85, 0xa3, 0xec, 0x60, + 0xe0, 0x37, 0x71, 0xa1, 0x2e, 0x45, 0xaa, 0x99, 0x91, 0xd2, 0x0c, 0x00, 0x60, 0x4e, 0xd4, 0x6c, + 0xd1, 0x1c, 0x21, 0x4f, 0x00, 0xbc, 0xa8, 0x68, 0x4c, 0xae, 0xe7, 0x2e, 0xf2, 0x86, 0xa3, 0xc3, + 0x12, 0x78, 0xce, 0xf4, 0xb9, 0x08, 0xe8, 0x02, 0xd5, 0x04, 0x9c, 0x45, 0x5e, 0x26, 0xdf, 0x16, + 0xc5, 0x6f, 0xf2, 0x01, 0x34, 0xc2, 0x24, 0x11, 0x22, 0x52, 0x4e, 0x03, 0x23, 0xb6, 0x73, 0x4f, + 0xa6, 0x9b, 0xb4, 0xc0, 0xc8, 0x4f, 0xb0, 0x9b, 0x4f, 0x88, 0x62, 0x7e, 0x2a, 0x43, 0x7d, 0x89, + 0xfa, 0x4a, 0x36, 0x41, 0xa5, 0xda, 0x03, 0x77, 0xb1, 0x79, 0x27, 0x39, 0xe7, 0xa9, 0xe1, 0xcc, + 0x3b, 0x79, 0x9d, 0x8b, 0x52, 0x30, 0xb8, 0x52, 0xb0, 0x67, 0xb5, 0x66, 0xd3, 0x6e, 0xb9, 0x63, + 0xa8, 0x0d, 0x13, 0x2f, 0x36, 0x55, 0xe0, 0x20, 0xe7, 0xad, 0xc5, 0xe1, 0x5c, 0x38, 0x38, 0x95, + 0x1b, 0x1d, 0x1c, 0xf7, 0x2f, 0x6b, 0xf5, 0x26, 0x1a, 0x8e, 0x7e, 0x48, 0x02, 0x4f, 0xb3, 0xe2, + 0x26, 0xba, 0x0b, 0xad, 0xa7, 0xe5, 0x70, 0x67, 0x41, 0xe7, 0x1b, 0x26, 0x1b, 0x04, 0x32, 0x59, + 0xf1, 0x9b, 0x7c, 0x0b, 0xad, 0xc2, 0x49, 0x71, 0x90, 0x1f, 0xbd, 0xe5, 0xbc, 0x65, 0x69, 0x95, + 0xa1, 0xe7, 0xf6, 0x8b, 0x6f, 0x41, 0xed, 0x2d, 0x6f, 0x41, 0x5c, 0xbe, 0x6b, 0xcb, 0xee, 0xc8, + 0x1e, 0x40, 0xb6, 0xb3, 0x50, 0xc3, 0xc2, 0x0e, 0x79, 0x0c, 0x3b, 0x94, 0x4d, 0x43, 0xa5, 0x99, + 0x64, 0xc1, 0x70, 0x74, 0x18, 0x04, 0x92, 0x29, 0xc5, 0xb2, 0x66, 0xb6, 0xe8, 0xd5, 0xa0, 0xfb, + 0xbb, 0xb5, 0x7a, 0xa3, 0xce, 0x5b, 0x97, 0xdf, 0xa8, 0xdf, 0xc3, 0xe6, 0xc8, 0x24, 0xa7, 0xb4, + 0x31, 0x2d, 0xae, 0xf0, 0x1b, 0x36, 0x63, 0xc9, 0x05, 0x79, 0x02, 0xcd, 0x6f, 0xbc, 0x30, 0x4a, + 0x25, 0x2b, 0xb4, 0x7e, 0xbf, 0x98, 0xfd, 0x2c, 0xb3, 0xcc, 0x2a, 0xe7, 0xd0, 0x92, 0xfc, 0xf0, + 0x37, 0x0b, 0xc8, 0xff, 0x6f, 0x37, 0xd2, 0x80, 0xea, 0xf1, 0xe1, 0xd8, 0xbe, 0x45, 0xb6, 0xa1, + 0x3d, 0x96, 0x1e, 0x57, 0x89, 0x27, 0x19, 0xd7, 0xb6, 0x45, 0x36, 0xa1, 0xf9, 0xdd, 0xe0, 0x48, + 0x86, 0xc1, 0x94, 0xd9, 0x95, 0x6c, 0x35, 0x4e, 0x39, 0x67, 0x91, 0x5d, 0x35, 0x56, 0xc3, 0x2f, + 0x4f, 0xec, 0x1a, 0x69, 0x43, 0x63, 0x24, 0xc3, 0x99, 0xa7, 0x99, 0xbd, 0x61, 0x16, 0x2f, 0x66, + 0x4c, 0x46, 0xde, 0xa5, 0x5d, 0x37, 0x06, 0x43, 0xae, 0x99, 0xe4, 0x5e, 0x64, 0x37, 0xcc, 0xea, + 0x79, 0x68, 0xde, 0x06, 0x16, 0xd8, 0xcd, 0xc1, 0x9b, 0x2a, 0xdc, 0x5e, 0xce, 0xe5, 0xd0, 0x34, + 0x82, 0x84, 0x50, 0x1f, 0xf2, 0x99, 0x78, 0xc5, 0xc8, 0xa3, 0x35, 0x9f, 0xb9, 0x6c, 0x48, 0xbb, + 0xbd, 0x75, 0xe9, 0x99, 0x30, 0xee, 0x2d, 0xf2, 0x0b, 0x34, 0x8b, 0x07, 0x90, 0x7c, 0xb2, 0x9e, + 0xf5, 0xca, 0x1b, 0xdd, 0xfd, 0xf4, 0xa6, 0x66, 0x65, 0xf0, 0x37, 0x16, 0xdc, 0x2e, 0x46, 0x65, + 0x3e, 0x5a, 0x6a, 0xdd, 0x44, 0x56, 0x8e, 0xe8, 0xba, 0x89, 0xac, 0x8e, 0xa7, 0x7b, 0xeb, 0xe8, + 0xa3, 0x1f, 0xfb, 0xd3, 0x50, 0x9f, 0xa7, 0x67, 0x3d, 0x5f, 0xc4, 0xfd, 0x38, 0xf4, 0xa5, 0x50, + 0x62, 0xa2, 0xfb, 0xb1, 0xf0, 0xfb, 0x32, 0xf1, 0xfb, 0x73, 0x9f, 0xfd, 0xdc, 0xe7, 0x59, 0x1d, + 0xff, 0x0d, 0x7c, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa8, 0x34, 0x77, 0xe3, 0xdd, 0x0a, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -821,11 +833,13 @@ type VirtualNetworkAgentClient interface { Invoke(ctx context.Context, in *VirtualNetworkRequest, opts ...grpc.CallOption) (*VirtualNetworkResponse, error) // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). Precheck(ctx context.Context, in *VirtualNetworkPrecheckRequest, opts ...grpc.CallOption) (*VirtualNetworkPrecheckResponse, error) - // Replaces the registeredIPAddresses list on each referenced subnet with - // the supplied list (subnet-scoped full-replace) and applies the - // corresponding add/remove delta to the IPAM bitmap. Independent from - // spec Update(): does not run Validate/validateUpdate, does not touch - // ProvisionState, and does not fan out to nodeagents. + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. UpdateRegisteredIPs(ctx context.Context, in *VirtualNetworkIPUpdateRequest, opts ...grpc.CallOption) (*VirtualNetworkIPUpdateResponse, error) } @@ -869,11 +883,13 @@ type VirtualNetworkAgentServer interface { Invoke(context.Context, *VirtualNetworkRequest) (*VirtualNetworkResponse, error) // Prechecks whether the system is able to create specified virtual networks (but does not actually create them). Precheck(context.Context, *VirtualNetworkPrecheckRequest) (*VirtualNetworkPrecheckResponse, error) - // Replaces the registeredIPAddresses list on each referenced subnet with - // the supplied list (subnet-scoped full-replace) and applies the - // corresponding add/remove delta to the IPAM bitmap. Independent from - // spec Update(): does not run Validate/validateUpdate, does not touch - // ProvisionState, and does not fan out to nodeagents. + // Replaces the registeredIPAddresses list on each referenced subnet + // (subnet-scoped full-replace) and applies the resulting add / remove + // delta to the IPAM bitmap. + // + // This RPC is independent of spec Update: it does not run Validate or + // validateUpdate, does not touch ProvisionState, and does not fan out + // to nodeagents. UpdateRegisteredIPs(context.Context, *VirtualNetworkIPUpdateRequest) (*VirtualNetworkIPUpdateResponse, error) } diff --git a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto index caf8b764..966e45a3 100644 --- a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto +++ b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto @@ -105,6 +105,14 @@ message VirtualNetworkIPUpdateRequest { // the stored list across every pool in that subnet. MOC routes each // IP to the correct pool by range internally. repeated VirtualSubnetIPUpdate IPUpdates = 3; + + // Wire API version. nil/v1 follows the cluster-wide migration + // shim (see shouldRouteVnetToLnet). Setting Major>=2 opts the + // caller out of the LNET migration shim, so registered-IP writes + // land on the VNET provider even when the cluster has + // disableLogicalNetworkMigration=false. Mirrors the Version field + // on VirtualNetworkRequest. + ApiVersion version = 4; } message VirtualSubnetIPUpdate { @@ -117,11 +125,12 @@ message VirtualNetworkIPUpdateResponse { // Only trustworthy when the gRPC status is OK. repeated VirtualSubnetIPUpdate PersistedIPs = 1; - // IP-level failures. May be non-empty even when the gRPC status is OK - // (partial success). + // IP-level failures. Per-IP validation/allocation failures (e.g., IP + // already taken, IP outside CIDR). These are returned alongside + // PersistedIPs as normal "partial success" outcomes; the gRPC status + // is still OK in this case. Whole-batch / infrastructure failures + // (e.g. store persistence) are reported via the gRPC status code + // instead and do not populate this list. repeated IPAddressUpdateFailure Failures = 2; - - // Overall error summary. Empty when the gRPC status is OK. - string Error = 3; } diff --git a/rpc/common/moc_common_networkcommon.pb.go b/rpc/common/moc_common_networkcommon.pb.go index aebd75b4..bc4b59c9 100644 --- a/rpc/common/moc_common_networkcommon.pb.go +++ b/rpc/common/moc_common_networkcommon.pb.go @@ -5,9 +5,8 @@ package common import ( fmt "fmt" - math "math" - proto "github.com/golang/protobuf/proto" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. @@ -164,15 +163,23 @@ func (IPVersion) EnumDescriptor() ([]byte, []int) { type IPUpdateErrorCode int32 const ( - IPUpdateErrorCode_IP_UPDATE_UNKNOWN IPUpdateErrorCode = 0 - IPUpdateErrorCode_IP_UPDATE_INVALID_FORMAT IPUpdateErrorCode = 1 - IPUpdateErrorCode_IP_UPDATE_OUT_OF_RANGE IPUpdateErrorCode = 2 - IPUpdateErrorCode_IP_UPDATE_SUBNET_NOT_FOUND IPUpdateErrorCode = 3 + IPUpdateErrorCode_IP_UPDATE_UNKNOWN IPUpdateErrorCode = 0 + // Malformed IP literal (parse failure). + IPUpdateErrorCode_IP_UPDATE_INVALID_FORMAT IPUpdateErrorCode = 1 + // IP does not fall within any pool's [Start, End] range on this subnet. + IPUpdateErrorCode_IP_UPDATE_OUT_OF_RANGE IPUpdateErrorCode = 2 + // Subnet name in the request is not present on the stored network spec. + IPUpdateErrorCode_IP_UPDATE_SUBNET_NOT_FOUND IPUpdateErrorCode = 3 + // The IPAM bitmap bit is already set by another owner - a NIC, a + // LoadBalancer, or a system reservation (gateway / network / + // broadcast / DNS) - and the IP is not currently in the registered + // list. Registering it would create two owners for one bitmap bit; + // a later release would then clear the bit out from under the real + // owner. IPUpdateErrorCode_IP_UPDATE_ALREADY_ALLOCATED IPUpdateErrorCode = 4 - // LoadBalancer, or system reservation (gateway / network / - // broadcast / DNS) and is not currently in the registered - // list - registering it would create a single-bit bitmap - // co-occupancy that breaks refcount on later release. + // Subnet exists in the network spec but declares no IPPools. + // registeredIPAddresses needs at least one pool to route each IP into, + // and without pools there is no IPAM bitmap to reserve against. IPUpdateErrorCode_IP_UPDATE_NO_POOLS_IN_SUBNET IPUpdateErrorCode = 5 ) @@ -339,24 +346,16 @@ func (m *IPPoolInfo) GetAvailable() string { } type IPPool struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type IPPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=moc.IPPoolType" json:"type,omitempty"` - Start string `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` - End string `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` - Info *IPPoolInfo `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"` - Tags *Tags `protobuf:"bytes,6,opt,name=tags,proto3" json:"tags,omitempty"` - // IPs explicitly registered as allocated outside of MOC (e.g., by the - // IPAM operator). Reserved in the IPAM bitmap during - // InitSubnet and on UpdateRegisteredIPs runtime updates so MOC will not - // hand them out to AKS workloads. Field is IPAM-layer only and never - // fanned out to nodeagents. - // Stored on each pool internally but exposed at the subnet level in the - // UpdateRegisteredIPs API - MOC routes each IP to the correct pool - // by range. - RegisteredIPAddresses []string `protobuf:"bytes,7,rep,name=registeredIPAddresses,proto3" json:"registeredIPAddresses,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type IPPoolType `protobuf:"varint,2,opt,name=type,proto3,enum=moc.IPPoolType" json:"type,omitempty"` + Start string `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` + End string `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` + Info *IPPoolInfo `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"` + Tags *Tags `protobuf:"bytes,6,opt,name=tags,proto3" json:"tags,omitempty"` + RegisteredIPAddresses []string `protobuf:"bytes,7,rep,name=registeredIPAddresses,proto3" json:"registeredIPAddresses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *IPPool) Reset() { *m = IPPool{} } @@ -434,7 +433,8 @@ func (m *IPPool) GetRegisteredIPAddresses() []string { } // IPAddressUpdateFailure is the single-IP failure record returned by -// UpdateRegisteredIPs RPCs. Shared between Logical and Virtual Network flows. +// UpdateRegisteredIPs. Shared between the LogicalNetwork and VirtualNetwork +// flows. type IPAddressUpdateFailure struct { SubnetName string `protobuf:"bytes,1,opt,name=SubnetName,proto3" json:"SubnetName,omitempty"` IPAddress string `protobuf:"bytes,2,opt,name=IPAddress,proto3" json:"IPAddress,omitempty"` From 9d01de6202a6051eb36217c0283a211883181990 Mon Sep 17 00:00:00 2001 From: Yingxin Zhang Date: Thu, 4 Jun 2026 20:29:06 +0000 Subject: [PATCH 3/3] Mark registered IP proto fields sensitive Mark IP-bearing fields in registeredIPAddresses protos with [(sensitive) = true] so that redact.RedactedMessage() scrubs them from cloudagent span logs and telemetry. IPAddressUpdateFailure.Error is intentionally left visible (the failure reason is meaningful for debugging), with callers responsible for keeping IPs out of the error string. Affected fields: - IPPool.registeredIPAddresses - IPAddressUpdateFailure.IPAddress - LogicalSubnetIPUpdate.RegisteredIPAddresses - VirtualSubnetIPUpdate.RegisteredIPAddresses Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../moc_cloudagent_logicalnetwork.proto | 2 +- .../moc_cloudagent_logicalnetwork.pb.go | 112 +++++++-------- .../moc_cloudagent_virtualnetwork.pb.go | 134 +++++++++--------- .../moc_cloudagent_virtualnetwork.proto | 2 +- rpc/common/moc_common_networkcommon.pb.go | 131 ++++++++--------- rpc/common/moc_common_networkcommon.proto | 4 +- 6 files changed, 193 insertions(+), 192 deletions(-) diff --git a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto index 7bdd7ec1..a4107304 100644 --- a/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto +++ b/rpc/cloudagent/network/logicalnetwork/moc_cloudagent_logicalnetwork.proto @@ -87,7 +87,7 @@ message LogicalNetworkIPUpdateRequest { message LogicalSubnetIPUpdate { string SubnetName = 1; - repeated string RegisteredIPAddresses = 2; + repeated string RegisteredIPAddresses = 2 [(sensitive) = true]; } message LogicalNetworkIPUpdateResponse { diff --git a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go index a08d58aa..1e2b124a 100644 --- a/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_logicalnetwork.pb.go @@ -616,63 +616,63 @@ func init() { } var fileDescriptor_37e4212e5c247b0a = []byte{ - // 890 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x41, 0x8f, 0xdb, 0x44, + // 892 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcf, 0x8f, 0xdb, 0x44, 0x14, 0xae, 0x93, 0x34, 0x9b, 0xbc, 0xec, 0x06, 0x34, 0xa5, 0x5d, 0x2b, 0xd0, 0x55, 0xe4, 0xd2, - 0x2a, 0x97, 0x3a, 0x22, 0x14, 0x7a, 0x44, 0xbb, 0xa2, 0x45, 0x11, 0x65, 0x31, 0xb3, 0xa5, 0x07, - 0x84, 0x54, 0x4d, 0xec, 0xd9, 0xec, 0x50, 0xdb, 0xe3, 0xce, 0x8c, 0xb7, 0x2c, 0xdc, 0x2b, 0xae, - 0xfc, 0x02, 0x2e, 0x1c, 0x7b, 0x84, 0xff, 0x87, 0xfc, 0x3c, 0x4e, 0x62, 0xb3, 0x85, 0xec, 0xa1, - 0xa7, 0x38, 0xef, 0xfb, 0xde, 0x9b, 0xef, 0x7d, 0xef, 0x79, 0x0c, 0x77, 0x12, 0x19, 0x3e, 0x0f, - 0x63, 0x99, 0x47, 0x6c, 0xc9, 0x53, 0xf3, 0x3c, 0x96, 0x4b, 0x11, 0xb2, 0x38, 0xe5, 0xe6, 0x95, - 0x54, 0x2f, 0xfc, 0x4c, 0x49, 0x23, 0xc9, 0xad, 0x44, 0x86, 0xfe, 0x9a, 0xe4, 0x5b, 0x74, 0x74, - 0xb0, 0x94, 0x72, 0x19, 0xf3, 0x29, 0xb2, 0x16, 0xf9, 0xe9, 0xf4, 0x95, 0x62, 0x59, 0xc6, 0x95, - 0x2e, 0xf3, 0x46, 0xfb, 0x58, 0x5c, 0x26, 0x89, 0x4c, 0xed, 0x8f, 0x05, 0x0e, 0x36, 0x00, 0x5b, - 0x6c, 0x13, 0xf7, 0xfe, 0x70, 0xe0, 0xe6, 0x93, 0x52, 0xc9, 0x71, 0x09, 0x53, 0xfe, 0x32, 0xe7, - 0xda, 0x90, 0x00, 0xde, 0xab, 0x03, 0xda, 0x75, 0xc6, 0xed, 0xc9, 0x60, 0x76, 0xcf, 0xbf, 0x5c, - 0xa4, 0xdf, 0xa8, 0xd3, 0x4c, 0x27, 0x0f, 0x60, 0xef, 0xdb, 0x8c, 0x2b, 0x66, 0x84, 0x4c, 0x9f, - 0x5e, 0x64, 0xdc, 0x6d, 0x8d, 0x9d, 0xc9, 0x70, 0x36, 0xc4, 0x7a, 0x2b, 0x84, 0xd6, 0x49, 0xde, - 0x5f, 0x0e, 0xdc, 0x6a, 0x2a, 0xd4, 0x99, 0x4c, 0x35, 0x7f, 0x07, 0x12, 0x67, 0xd0, 0xa5, 0x5c, - 0xe7, 0xb1, 0x41, 0x6d, 0x83, 0xd9, 0xc8, 0x2f, 0x8d, 0xf7, 0x2b, 0xe3, 0xfd, 0x23, 0x29, 0xe3, - 0x67, 0x2c, 0xce, 0x39, 0xb5, 0x4c, 0xf2, 0x01, 0x5c, 0x7f, 0xa4, 0x94, 0x54, 0x6e, 0x7b, 0xec, - 0x4c, 0xfa, 0xb4, 0xfc, 0xe3, 0xbd, 0x84, 0xdb, 0xf5, 0xe2, 0x81, 0xe2, 0xe1, 0x19, 0x0f, 0xdf, - 0x9d, 0xbf, 0xde, 0x4f, 0x70, 0xf0, 0xb6, 0x23, 0xad, 0x61, 0xeb, 0xf6, 0x9c, 0xab, 0xb7, 0xd7, - 0xda, 0x6c, 0xef, 0xf7, 0x36, 0x0c, 0xeb, 0x87, 0x11, 0x02, 0x9d, 0x94, 0x25, 0x1c, 0x4b, 0xf7, - 0x29, 0x3e, 0x93, 0x21, 0xb4, 0x44, 0x64, 0x33, 0x5b, 0x22, 0x22, 0x5f, 0xc0, 0x8e, 0xce, 0x17, - 0x29, 0x37, 0xda, 0x6d, 0x63, 0xb3, 0x77, 0xff, 0xa7, 0xd9, 0x13, 0x64, 0xd3, 0x2a, 0x8b, 0x1c, - 0xc1, 0x47, 0x96, 0xf1, 0x4c, 0x28, 0x93, 0xb3, 0x58, 0xfc, 0x82, 0xab, 0xf2, 0x28, 0x65, 0x8b, - 0x98, 0x47, 0x6e, 0x67, 0xec, 0x4c, 0x7a, 0xf4, 0x3f, 0x39, 0xe4, 0x0e, 0x74, 0xb5, 0x61, 0x26, - 0xd7, 0xee, 0x75, 0x74, 0x61, 0x80, 0x1a, 0x4e, 0x30, 0x44, 0x2d, 0x44, 0x3c, 0xd8, 0x8d, 0x65, - 0x88, 0x79, 0xc7, 0x45, 0x57, 0x5d, 0xec, 0xa1, 0x16, 0x23, 0xf7, 0x60, 0x90, 0xb0, 0x30, 0x90, - 0x32, 0x46, 0xca, 0x4e, 0x41, 0x39, 0xea, 0xfc, 0xf6, 0xb7, 0xeb, 0xd0, 0x4d, 0x80, 0xdc, 0x86, - 0x8e, 0x61, 0x4b, 0xed, 0xf6, 0xf0, 0xb8, 0x3e, 0x1e, 0xf7, 0x94, 0x2d, 0x35, 0xc5, 0x30, 0x79, - 0x0c, 0xef, 0xb3, 0xe8, 0x9c, 0xa5, 0x21, 0x8f, 0x02, 0x19, 0x8b, 0x50, 0x70, 0xed, 0xf6, 0xd1, - 0x9d, 0x11, 0x52, 0x0f, 0x2d, 0x58, 0x4d, 0xb5, 0xe0, 0x5c, 0xd0, 0x7f, 0xe5, 0x78, 0x6f, 0xda, - 0xb0, 0x57, 0xb3, 0x6d, 0xab, 0x91, 0x7c, 0x0c, 0x7b, 0x2c, 0x8a, 0x14, 0xd7, 0x3a, 0x50, 0xfc, - 0x54, 0xfc, 0x6c, 0xd7, 0xb8, 0x1e, 0x24, 0x1e, 0x74, 0x95, 0xcc, 0x0d, 0xd7, 0x6e, 0x07, 0x95, - 0x01, 0x2a, 0xa3, 0x45, 0x88, 0x5a, 0x84, 0x3c, 0x04, 0x60, 0x71, 0x65, 0x10, 0x7a, 0x3b, 0x9c, - 0xed, 0x23, 0x6f, 0x1e, 0x1c, 0xae, 0x80, 0x6f, 0xb8, 0x39, 0x93, 0x11, 0xdd, 0xa0, 0x16, 0x32, - 0xcf, 0x63, 0x96, 0xa2, 0xc7, 0x7b, 0x14, 0x9f, 0xc9, 0x5d, 0xd8, 0x11, 0x59, 0xe1, 0xa0, 0x76, - 0x77, 0xf0, 0xc4, 0x81, 0xad, 0x54, 0xc4, 0x68, 0x85, 0x91, 0x31, 0xb4, 0xa3, 0xb4, 0x72, 0xb6, - 0x87, 0x94, 0x2f, 0x53, 0x6d, 0x87, 0x50, 0x40, 0x64, 0x04, 0x3d, 0xa1, 0x83, 0x7c, 0x11, 0x8b, - 0xd0, 0xed, 0xe3, 0x76, 0xac, 0xfe, 0xaf, 0x06, 0x03, 0x97, 0x0f, 0xe6, 0x47, 0xd8, 0xb7, 0x8b, - 0x74, 0xc2, 0xc3, 0x5c, 0x09, 0x73, 0xf1, 0x95, 0x92, 0x79, 0x46, 0xf9, 0xa9, 0x3b, 0xc0, 0x0c, - 0x0f, 0x33, 0x8e, 0x2f, 0xe7, 0x70, 0xc5, 0xd3, 0x90, 0xd3, 0xb7, 0x95, 0xf0, 0xfe, 0x74, 0x9a, - 0x57, 0xc4, 0x3c, 0xf8, 0x3e, 0x8b, 0x98, 0xe1, 0xd5, 0x15, 0xe1, 0xc1, 0xee, 0x93, 0xcd, 0x1d, - 0x2c, 0xc7, 0x58, 0x8b, 0x15, 0xde, 0x21, 0x56, 0x0e, 0x14, 0x9f, 0xc9, 0xd7, 0xd0, 0xaf, 0x4a, - 0x55, 0xef, 0xd9, 0xfd, 0xad, 0xde, 0xb3, 0x95, 0x80, 0x75, 0xbe, 0x97, 0xac, 0x3e, 0x10, 0x75, - 0x0e, 0x39, 0x00, 0x28, 0x23, 0x1b, 0xda, 0x36, 0x22, 0xe4, 0x01, 0xdc, 0xa4, 0x7c, 0x29, 0xb4, - 0xe1, 0x8a, 0x47, 0xf3, 0xe0, 0xb0, 0xdc, 0x27, 0xae, 0xdd, 0xd6, 0xb8, 0x3d, 0xe9, 0xd3, 0xcb, - 0x41, 0xef, 0x8d, 0xd3, 0xbc, 0xc5, 0xd6, 0xae, 0xd8, 0x5b, 0xec, 0x3b, 0xd8, 0x0d, 0xb8, 0xd2, - 0x45, 0x72, 0x34, 0x0f, 0xaa, 0x6b, 0xf3, 0x8a, 0x1d, 0xd6, 0x4a, 0x90, 0x87, 0xd0, 0x7b, 0xcc, - 0x44, 0x9c, 0x2b, 0x2b, 0x6f, 0x30, 0xfb, 0xb0, 0x5a, 0xdc, 0x52, 0x59, 0x99, 0x65, 0x39, 0x74, - 0x45, 0x9e, 0xbd, 0x6e, 0xc3, 0x8d, 0xba, 0xdc, 0xc3, 0xe2, 0x70, 0x22, 0xa0, 0x3b, 0x4f, 0xcf, - 0xe5, 0x0b, 0x4e, 0xee, 0x6f, 0x79, 0x9d, 0x97, 0x33, 0x1f, 0xf9, 0xdb, 0xd2, 0x4b, 0x33, 0xbc, - 0x6b, 0xe4, 0x57, 0xe8, 0x55, 0x17, 0x3d, 0xf9, 0x6c, 0xbb, 0xec, 0xc6, 0xb7, 0x68, 0xf4, 0xf9, - 0x55, 0xd3, 0x56, 0x87, 0xbf, 0x76, 0xe0, 0x46, 0x35, 0x9e, 0xf5, 0x38, 0xf5, 0xb6, 0x42, 0x1a, - 0x1b, 0xbf, 0xad, 0x90, 0xe6, 0x4a, 0x78, 0xd7, 0x8e, 0x3e, 0xf9, 0x61, 0xba, 0x14, 0xe6, 0x2c, - 0x5f, 0xf8, 0xa1, 0x4c, 0xa6, 0x89, 0x08, 0x95, 0xd4, 0xf2, 0xd4, 0x4c, 0x13, 0x19, 0x4e, 0x55, - 0x16, 0x4e, 0xd7, 0x35, 0xa7, 0xb6, 0xe6, 0xa2, 0x8b, 0x5f, 0xbd, 0x4f, 0xff, 0x09, 0x00, 0x00, - 0xff, 0xff, 0xef, 0xd9, 0x1c, 0x28, 0x9a, 0x09, 0x00, 0x00, + 0x6a, 0x2f, 0x75, 0x44, 0xf8, 0x51, 0x89, 0x0b, 0xda, 0x15, 0x2d, 0x8a, 0x28, 0x8b, 0x99, 0x2d, + 0x3d, 0x20, 0xa4, 0x6a, 0x62, 0xcf, 0x66, 0x87, 0xda, 0x1e, 0x77, 0x66, 0xbc, 0x65, 0xe1, 0x5e, + 0x71, 0xe5, 0x2f, 0xe0, 0xc2, 0xb1, 0x47, 0xf8, 0xff, 0x90, 0x9f, 0xc7, 0x4e, 0x1c, 0x52, 0xc8, + 0x1e, 0x7a, 0x8a, 0xf3, 0xbe, 0xef, 0xbd, 0xf9, 0xde, 0xf7, 0x9e, 0xc7, 0x70, 0x27, 0x91, 0xe1, + 0xb3, 0x30, 0x96, 0x79, 0xc4, 0x16, 0x3c, 0x35, 0xcf, 0x62, 0xb9, 0x10, 0x21, 0x8b, 0x53, 0x6e, + 0x5e, 0x4a, 0xf5, 0xdc, 0xcf, 0x94, 0x34, 0x92, 0xdc, 0x4a, 0x64, 0xe8, 0x2f, 0x49, 0xbe, 0x45, + 0x47, 0x07, 0x0b, 0x29, 0x17, 0x31, 0x9f, 0x20, 0x6b, 0x9e, 0x9f, 0x4d, 0x5e, 0x2a, 0x96, 0x65, + 0x5c, 0xe9, 0x32, 0x6f, 0xb4, 0x8f, 0xc5, 0x65, 0x92, 0xc8, 0xd4, 0xfe, 0x58, 0xe0, 0x60, 0x05, + 0xb0, 0xc5, 0x56, 0x71, 0xef, 0x0f, 0x07, 0x6e, 0x3e, 0x2e, 0x95, 0x9c, 0x94, 0x30, 0xe5, 0x2f, + 0x72, 0xae, 0x0d, 0x09, 0xe0, 0x9d, 0x26, 0xa0, 0x5d, 0x67, 0xdc, 0x3e, 0x1c, 0x4c, 0xef, 0xf9, + 0x9b, 0x45, 0xfa, 0x6b, 0x75, 0xd6, 0xd3, 0xc9, 0x27, 0xb0, 0xf7, 0x6d, 0xc6, 0x15, 0x33, 0x42, + 0xa6, 0x4f, 0x2e, 0x33, 0xee, 0xb6, 0xc6, 0xce, 0xe1, 0x70, 0x3a, 0xc4, 0x7a, 0x35, 0x42, 0x9b, + 0x24, 0xef, 0x2f, 0x07, 0x6e, 0xad, 0x2b, 0xd4, 0x99, 0x4c, 0x35, 0x7f, 0x0b, 0x12, 0xa7, 0xd0, + 0xa5, 0x5c, 0xe7, 0xb1, 0x41, 0x6d, 0x83, 0xe9, 0xc8, 0x2f, 0x8d, 0xf7, 0x2b, 0xe3, 0xfd, 0x63, + 0x29, 0xe3, 0xa7, 0x2c, 0xce, 0x39, 0xb5, 0x4c, 0xf2, 0x1e, 0x5c, 0x7f, 0xa8, 0x94, 0x54, 0x6e, + 0x7b, 0xec, 0x1c, 0xf6, 0x69, 0xf9, 0xc7, 0x7b, 0x01, 0xb7, 0x9b, 0xc5, 0x03, 0xc5, 0xc3, 0x73, + 0x1e, 0xbe, 0x3d, 0x7f, 0xbd, 0x9f, 0xe0, 0xe0, 0x4d, 0x47, 0x5a, 0xc3, 0x96, 0xed, 0x39, 0x57, + 0x6f, 0xaf, 0xb5, 0xda, 0xde, 0xef, 0x6d, 0x18, 0x36, 0x0f, 0x23, 0x04, 0x3a, 0x29, 0x4b, 0x38, + 0x96, 0xee, 0x53, 0x7c, 0x26, 0x43, 0x68, 0x89, 0xc8, 0x66, 0xb6, 0x44, 0x44, 0xbe, 0x80, 0x1d, + 0x9d, 0xcf, 0x53, 0x6e, 0xb4, 0xdb, 0xc6, 0x66, 0xef, 0xfe, 0x4f, 0xb3, 0xa7, 0xc8, 0xa6, 0x55, + 0x16, 0x39, 0x86, 0x0f, 0x2c, 0xe3, 0xa9, 0x50, 0x26, 0x67, 0xb1, 0xf8, 0x05, 0x57, 0xe5, 0x61, + 0xca, 0xe6, 0x31, 0x8f, 0xdc, 0xce, 0xd8, 0x39, 0xec, 0xd1, 0xff, 0xe4, 0x90, 0x3b, 0xd0, 0xd5, + 0x86, 0x99, 0x5c, 0xbb, 0xd7, 0xd1, 0x85, 0x01, 0x6a, 0x38, 0xc5, 0x10, 0xb5, 0x10, 0xf1, 0x60, + 0x37, 0x96, 0x21, 0xe6, 0x9d, 0x14, 0x5d, 0x75, 0xb1, 0x87, 0x46, 0x8c, 0xdc, 0x83, 0x41, 0xc2, + 0xc2, 0x40, 0xca, 0x18, 0x29, 0x3b, 0x05, 0xe5, 0xb8, 0xf3, 0xdb, 0xdf, 0xae, 0x43, 0x57, 0x01, + 0x72, 0x1b, 0x3a, 0x86, 0x2d, 0xb4, 0xdb, 0xc3, 0xe3, 0xfa, 0x78, 0xdc, 0x13, 0xb6, 0xd0, 0x14, + 0xc3, 0xe4, 0x11, 0xbc, 0xcb, 0xa2, 0x0b, 0x96, 0x86, 0x3c, 0x0a, 0x64, 0x2c, 0x42, 0xc1, 0xb5, + 0xdb, 0x47, 0x77, 0x46, 0x48, 0x3d, 0xb2, 0x60, 0x35, 0xd5, 0x82, 0x73, 0x49, 0xff, 0x95, 0xe3, + 0xbd, 0x6e, 0xc3, 0x5e, 0xc3, 0xb6, 0xad, 0x46, 0xf2, 0x21, 0xec, 0xb1, 0x28, 0x52, 0x5c, 0xeb, + 0x40, 0xf1, 0x33, 0xf1, 0xb3, 0x5d, 0xe3, 0x66, 0x90, 0x78, 0xd0, 0x55, 0x32, 0x37, 0x5c, 0xbb, + 0x1d, 0x54, 0x06, 0xa8, 0x8c, 0x16, 0x21, 0x6a, 0x11, 0xf2, 0x00, 0x80, 0xc5, 0x95, 0x41, 0xe8, + 0xed, 0x70, 0xba, 0x8f, 0xbc, 0x59, 0x70, 0x54, 0x03, 0xdf, 0x70, 0x73, 0x2e, 0x23, 0xba, 0x42, + 0x2d, 0x64, 0x5e, 0xc4, 0x2c, 0x45, 0x8f, 0xf7, 0x28, 0x3e, 0x93, 0xbb, 0xb0, 0x23, 0xb2, 0xc2, + 0x41, 0xed, 0xee, 0xe0, 0x89, 0x03, 0x5b, 0xa9, 0x88, 0xd1, 0x0a, 0x23, 0x63, 0x68, 0x47, 0x69, + 0xe5, 0x6c, 0x0f, 0x29, 0x5f, 0xa6, 0xda, 0x0e, 0xa1, 0x80, 0xc8, 0x08, 0x7a, 0x42, 0x07, 0xf9, + 0x3c, 0x16, 0xa1, 0xdb, 0xc7, 0xed, 0xa8, 0xff, 0xd7, 0x83, 0x81, 0xcd, 0x83, 0xf9, 0x11, 0xf6, + 0xed, 0x22, 0x9d, 0xf2, 0x30, 0x57, 0xc2, 0x5c, 0x7e, 0xa5, 0x64, 0x9e, 0x51, 0x7e, 0xe6, 0x0e, + 0x30, 0xc3, 0xc3, 0x8c, 0x93, 0xcd, 0x1c, 0xae, 0x78, 0x1a, 0x72, 0xfa, 0xa6, 0x12, 0xde, 0x9f, + 0xce, 0xfa, 0x15, 0x31, 0x0b, 0xbe, 0xcf, 0x22, 0x66, 0x78, 0x75, 0x45, 0x78, 0xb0, 0xfb, 0x78, + 0x75, 0x07, 0xcb, 0x31, 0x36, 0x62, 0x85, 0x77, 0x88, 0x95, 0x03, 0xc5, 0x67, 0xf2, 0x35, 0xf4, + 0xab, 0x52, 0xd5, 0x7b, 0x76, 0x7f, 0xab, 0xf7, 0xac, 0x16, 0xb0, 0xcc, 0xf7, 0x74, 0xfd, 0x81, + 0x68, 0x72, 0xc8, 0x01, 0x40, 0x19, 0x59, 0xd1, 0xb6, 0x12, 0x21, 0x9f, 0xc3, 0x4d, 0xca, 0x17, + 0x42, 0x1b, 0xae, 0x78, 0x34, 0x0b, 0x8e, 0xca, 0x7d, 0xe2, 0xda, 0x6d, 0x8d, 0xdb, 0xf5, 0x7b, + 0xb2, 0x99, 0xe2, 0xbd, 0x76, 0xd6, 0xef, 0xb2, 0xa5, 0x37, 0xf6, 0x2e, 0xfb, 0x0e, 0x76, 0x03, + 0xae, 0x74, 0x91, 0x1c, 0xcd, 0x82, 0xea, 0xf2, 0xbc, 0x62, 0x9f, 0x8d, 0x12, 0xe4, 0x01, 0xf4, + 0x1e, 0x31, 0x11, 0xe7, 0xca, 0x8a, 0x1c, 0x4c, 0xdf, 0xaf, 0xd6, 0xb7, 0x54, 0x56, 0x66, 0x59, + 0x0e, 0xad, 0xc9, 0xd3, 0x57, 0x6d, 0xb8, 0xd1, 0x94, 0x7b, 0x54, 0x1c, 0x4e, 0x04, 0x74, 0x67, + 0xe9, 0x85, 0x7c, 0xce, 0xc9, 0xfd, 0x2d, 0x2f, 0xf5, 0x72, 0xf2, 0x23, 0x7f, 0x5b, 0x7a, 0x69, + 0x86, 0x77, 0x8d, 0xfc, 0x0a, 0xbd, 0xea, 0xba, 0x27, 0x9f, 0x6e, 0x97, 0xbd, 0xf6, 0x45, 0x1a, + 0x7d, 0x76, 0xd5, 0xb4, 0xfa, 0xf0, 0x57, 0x0e, 0xdc, 0xa8, 0xc6, 0xb3, 0x1c, 0xa7, 0xde, 0x56, + 0xc8, 0xda, 0xde, 0x6f, 0x2b, 0x64, 0x7d, 0x25, 0xbc, 0x6b, 0xc7, 0x1f, 0xfd, 0x30, 0x59, 0x08, + 0x73, 0x9e, 0xcf, 0xfd, 0x50, 0x26, 0x93, 0x44, 0x84, 0x4a, 0x6a, 0x79, 0x66, 0x26, 0x89, 0x0c, + 0x27, 0x2a, 0x0b, 0x27, 0xcb, 0x9a, 0x13, 0x5b, 0x73, 0xde, 0xc5, 0x6f, 0xdf, 0xc7, 0xff, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xa8, 0xca, 0x26, 0xae, 0xa0, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go index e6fe6c4f..419e5160 100644 --- a/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go +++ b/rpc/cloudagent/network/moc_cloudagent_virtualnetwork.pb.go @@ -749,73 +749,73 @@ func init() { } var fileDescriptor_65af3e74534f0214 = []byte{ - // 1042 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdb, 0x6e, 0x1b, 0x45, - 0x18, 0xee, 0xda, 0x8e, 0x0f, 0xbf, 0x13, 0x67, 0x35, 0x25, 0xcd, 0xca, 0xb4, 0x51, 0xb4, 0x15, - 0x55, 0xa8, 0x54, 0x5b, 0x98, 0x42, 0xb9, 0x01, 0x29, 0xe1, 0x50, 0xb9, 0xd0, 0xd4, 0x4c, 0x4c, - 0x2e, 0x10, 0x52, 0xb5, 0xd9, 0x1d, 0x3b, 0x4b, 0x77, 0x67, 0x36, 0x33, 0xb3, 0xae, 0x22, 0xee, - 0x2b, 0x78, 0x17, 0x2e, 0xe1, 0x21, 0xe0, 0x15, 0x78, 0x0c, 0x5e, 0x00, 0xcd, 0xbf, 0x07, 0x1f, - 0x48, 0x54, 0xe7, 0xa2, 0x57, 0xde, 0x99, 0xef, 0xfb, 0x8f, 0xdf, 0x3f, 0x33, 0x86, 0xfb, 0xb1, - 0xf0, 0x5f, 0xfa, 0x91, 0x48, 0x03, 0x6f, 0xca, 0xb8, 0x7e, 0x39, 0x0b, 0xa5, 0x4e, 0xbd, 0x88, - 0x33, 0xfd, 0x5a, 0xc8, 0x57, 0xbd, 0x44, 0x0a, 0x2d, 0xc8, 0x9d, 0x58, 0xf8, 0xbd, 0x39, 0xa9, - 0x97, 0xa3, 0xdd, 0xbd, 0xa9, 0x10, 0xd3, 0x88, 0xf5, 0x91, 0x75, 0x96, 0x4e, 0xfa, 0xaf, 0xa5, - 0x97, 0x24, 0x4c, 0xaa, 0xcc, 0xae, 0xbb, 0x8b, 0xce, 0x45, 0x1c, 0x0b, 0x9e, 0xff, 0xe4, 0xc0, - 0xde, 0x02, 0x90, 0x3b, 0x5b, 0xc4, 0xdd, 0xbf, 0x2d, 0xd8, 0x39, 0xcd, 0x32, 0x39, 0xce, 0x60, - 0xca, 0x2e, 0x52, 0xa6, 0x34, 0x19, 0xc1, 0xf6, 0x32, 0xa0, 0x1c, 0x6b, 0xbf, 0x7a, 0xd0, 0x1e, - 0x3c, 0xe8, 0x5d, 0x9d, 0x64, 0x6f, 0xc5, 0xcf, 0xaa, 0x39, 0x79, 0x0c, 0x5b, 0x2f, 0x12, 0x26, - 0x3d, 0x1d, 0x0a, 0x3e, 0xbe, 0x4c, 0x98, 0x53, 0xd9, 0xb7, 0x0e, 0x3a, 0x83, 0x0e, 0xfa, 0x2b, - 0x11, 0xba, 0x4c, 0x22, 0x1f, 0x42, 0x63, 0xc6, 0xa4, 0x0a, 0x05, 0x77, 0xaa, 0xfb, 0xd6, 0x41, - 0x7b, 0xb0, 0x8d, 0xfc, 0xc3, 0x24, 0x3c, 0xcd, 0xb6, 0x69, 0x81, 0xbb, 0x7f, 0x58, 0x70, 0x67, - 0xb5, 0x18, 0x95, 0x08, 0xae, 0xd8, 0x3b, 0xa8, 0x66, 0x00, 0x75, 0xca, 0x54, 0x1a, 0x69, 0x2c, - 0xa3, 0x3d, 0xe8, 0xf6, 0x32, 0x8d, 0x7a, 0x85, 0x46, 0xbd, 0x23, 0x21, 0xa2, 0x53, 0x2f, 0x4a, - 0x19, 0xcd, 0x99, 0xe4, 0x3d, 0xd8, 0xf8, 0x5a, 0x4a, 0x21, 0xb1, 0x92, 0x16, 0xcd, 0x16, 0xee, - 0x05, 0xdc, 0x5b, 0x76, 0x3e, 0x92, 0xcc, 0x3f, 0x67, 0xfe, 0xbb, 0x93, 0xc2, 0xfd, 0x19, 0xf6, - 0xae, 0x0b, 0x99, 0x37, 0x6c, 0x5e, 0x9e, 0x75, 0xf3, 0xf2, 0x2a, 0x8b, 0xe5, 0xfd, 0x5b, 0x85, - 0xce, 0x72, 0x30, 0x42, 0xa0, 0xc6, 0xbd, 0x98, 0xa1, 0xeb, 0x16, 0xc5, 0x6f, 0xd2, 0x81, 0x4a, - 0x18, 0xe4, 0x96, 0x95, 0x30, 0x20, 0x9f, 0x41, 0x43, 0xa5, 0x67, 0x9c, 0x69, 0xe5, 0x54, 0xb1, - 0xd8, 0xbd, 0xeb, 0x8a, 0x3d, 0x41, 0x1a, 0x2d, 0xe8, 0x64, 0x1f, 0xaa, 0x01, 0x57, 0x4e, 0x0d, - 0xf3, 0x6e, 0xa2, 0xd5, 0x57, 0x5c, 0x1d, 0xd5, 0x7e, 0xfd, 0xd3, 0xb1, 0xa8, 0x81, 0xc8, 0x17, - 0x50, 0xd3, 0x66, 0x00, 0x37, 0x70, 0x00, 0x1f, 0xae, 0xd7, 0x45, 0x33, 0x8d, 0x14, 0xed, 0x48, - 0x17, 0x9a, 0x5c, 0x04, 0x6c, 0x72, 0x11, 0x70, 0xa7, 0x8e, 0x19, 0x97, 0x6b, 0x72, 0x17, 0x5a, - 0x53, 0x29, 0xd2, 0xe4, 0xd8, 0x14, 0xd8, 0x40, 0x70, 0xbe, 0x41, 0xee, 0x43, 0x5d, 0x69, 0x4f, - 0xa7, 0xca, 0x69, 0x62, 0x7a, 0x6d, 0x8c, 0x7d, 0x82, 0x5b, 0x34, 0x87, 0x88, 0x0b, 0x9b, 0x91, - 0xf0, 0xf1, 0x08, 0xa0, 0x97, 0x16, 0x7a, 0x59, 0xda, 0x23, 0x0f, 0xa0, 0x1d, 0x7b, 0xfe, 0x48, - 0x88, 0x08, 0x29, 0x60, 0x28, 0x79, 0x89, 0x8b, 0x00, 0xb9, 0x07, 0x35, 0xed, 0x4d, 0x95, 0xb3, - 0x89, 0xe1, 0x5a, 0x18, 0x6e, 0xec, 0x4d, 0x15, 0xc5, 0x6d, 0xf2, 0x39, 0x74, 0x22, 0x31, 0x0d, - 0xfd, 0xb2, 0x4a, 0x67, 0x0b, 0x89, 0x3b, 0x48, 0x2c, 0x4f, 0xd1, 0x84, 0x49, 0xc6, 0x7d, 0x46, - 0x57, 0xc8, 0x46, 0x48, 0x3f, 0x0c, 0xa4, 0xd3, 0xd9, 0xaf, 0x1a, 0x21, 0xcd, 0xf7, 0xb3, 0x5a, - 0xb3, 0x6d, 0x6f, 0xba, 0xff, 0x54, 0xa0, 0x9e, 0x09, 0xb3, 0x96, 0xda, 0x85, 0xa3, 0xec, 0x60, - 0xe0, 0x37, 0x71, 0xa1, 0x2e, 0x45, 0xaa, 0x99, 0x91, 0xd2, 0x0c, 0x00, 0x60, 0x4e, 0xd4, 0x6c, - 0xd1, 0x1c, 0x21, 0x4f, 0x00, 0xbc, 0xa8, 0x68, 0x4c, 0xae, 0xe7, 0x2e, 0xf2, 0x86, 0xa3, 0xc3, - 0x12, 0x78, 0xce, 0xf4, 0xb9, 0x08, 0xe8, 0x02, 0xd5, 0x04, 0x9c, 0x45, 0x5e, 0x26, 0xdf, 0x16, - 0xc5, 0x6f, 0xf2, 0x01, 0x34, 0xc2, 0x24, 0x11, 0x22, 0x52, 0x4e, 0x03, 0x23, 0xb6, 0x73, 0x4f, - 0xa6, 0x9b, 0xb4, 0xc0, 0xc8, 0x4f, 0xb0, 0x9b, 0x4f, 0x88, 0x62, 0x7e, 0x2a, 0x43, 0x7d, 0x89, - 0xfa, 0x4a, 0x36, 0x41, 0xa5, 0xda, 0x03, 0x77, 0xb1, 0x79, 0x27, 0x39, 0xe7, 0xa9, 0xe1, 0xcc, - 0x3b, 0x79, 0x9d, 0x8b, 0x52, 0x30, 0xb8, 0x52, 0xb0, 0x67, 0xb5, 0x66, 0xd3, 0x6e, 0xb9, 0x63, - 0xa8, 0x0d, 0x13, 0x2f, 0x36, 0x55, 0xe0, 0x20, 0xe7, 0xad, 0xc5, 0xe1, 0x5c, 0x38, 0x38, 0x95, - 0x1b, 0x1d, 0x1c, 0xf7, 0x2f, 0x6b, 0xf5, 0x26, 0x1a, 0x8e, 0x7e, 0x48, 0x02, 0x4f, 0xb3, 0xe2, - 0x26, 0xba, 0x0b, 0xad, 0xa7, 0xe5, 0x70, 0x67, 0x41, 0xe7, 0x1b, 0x26, 0x1b, 0x04, 0x32, 0x59, - 0xf1, 0x9b, 0x7c, 0x0b, 0xad, 0xc2, 0x49, 0x71, 0x90, 0x1f, 0xbd, 0xe5, 0xbc, 0x65, 0x69, 0x95, - 0xa1, 0xe7, 0xf6, 0x8b, 0x6f, 0x41, 0xed, 0x2d, 0x6f, 0x41, 0x5c, 0xbe, 0x6b, 0xcb, 0xee, 0xc8, - 0x1e, 0x40, 0xb6, 0xb3, 0x50, 0xc3, 0xc2, 0x0e, 0x79, 0x0c, 0x3b, 0x94, 0x4d, 0x43, 0xa5, 0x99, - 0x64, 0xc1, 0x70, 0x74, 0x18, 0x04, 0x92, 0x29, 0xc5, 0xb2, 0x66, 0xb6, 0xe8, 0xd5, 0xa0, 0xfb, - 0xbb, 0xb5, 0x7a, 0xa3, 0xce, 0x5b, 0x97, 0xdf, 0xa8, 0xdf, 0xc3, 0xe6, 0xc8, 0x24, 0xa7, 0xb4, - 0x31, 0x2d, 0xae, 0xf0, 0x1b, 0x36, 0x63, 0xc9, 0x05, 0x79, 0x02, 0xcd, 0x6f, 0xbc, 0x30, 0x4a, - 0x25, 0x2b, 0xb4, 0x7e, 0xbf, 0x98, 0xfd, 0x2c, 0xb3, 0xcc, 0x2a, 0xe7, 0xd0, 0x92, 0xfc, 0xf0, - 0x37, 0x0b, 0xc8, 0xff, 0x6f, 0x37, 0xd2, 0x80, 0xea, 0xf1, 0xe1, 0xd8, 0xbe, 0x45, 0xb6, 0xa1, - 0x3d, 0x96, 0x1e, 0x57, 0x89, 0x27, 0x19, 0xd7, 0xb6, 0x45, 0x36, 0xa1, 0xf9, 0xdd, 0xe0, 0x48, - 0x86, 0xc1, 0x94, 0xd9, 0x95, 0x6c, 0x35, 0x4e, 0x39, 0x67, 0x91, 0x5d, 0x35, 0x56, 0xc3, 0x2f, - 0x4f, 0xec, 0x1a, 0x69, 0x43, 0x63, 0x24, 0xc3, 0x99, 0xa7, 0x99, 0xbd, 0x61, 0x16, 0x2f, 0x66, - 0x4c, 0x46, 0xde, 0xa5, 0x5d, 0x37, 0x06, 0x43, 0xae, 0x99, 0xe4, 0x5e, 0x64, 0x37, 0xcc, 0xea, - 0x79, 0x68, 0xde, 0x06, 0x16, 0xd8, 0xcd, 0xc1, 0x9b, 0x2a, 0xdc, 0x5e, 0xce, 0xe5, 0xd0, 0x34, - 0x82, 0x84, 0x50, 0x1f, 0xf2, 0x99, 0x78, 0xc5, 0xc8, 0xa3, 0x35, 0x9f, 0xb9, 0x6c, 0x48, 0xbb, - 0xbd, 0x75, 0xe9, 0x99, 0x30, 0xee, 0x2d, 0xf2, 0x0b, 0x34, 0x8b, 0x07, 0x90, 0x7c, 0xb2, 0x9e, - 0xf5, 0xca, 0x1b, 0xdd, 0xfd, 0xf4, 0xa6, 0x66, 0x65, 0xf0, 0x37, 0x16, 0xdc, 0x2e, 0x46, 0x65, - 0x3e, 0x5a, 0x6a, 0xdd, 0x44, 0x56, 0x8e, 0xe8, 0xba, 0x89, 0xac, 0x8e, 0xa7, 0x7b, 0xeb, 0xe8, - 0xa3, 0x1f, 0xfb, 0xd3, 0x50, 0x9f, 0xa7, 0x67, 0x3d, 0x5f, 0xc4, 0xfd, 0x38, 0xf4, 0xa5, 0x50, - 0x62, 0xa2, 0xfb, 0xb1, 0xf0, 0xfb, 0x32, 0xf1, 0xfb, 0x73, 0x9f, 0xfd, 0xdc, 0xe7, 0x59, 0x1d, - 0xff, 0x0d, 0x7c, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa8, 0x34, 0x77, 0xe3, 0xdd, 0x0a, - 0x00, 0x00, + // 1043 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x6e, 0x1b, 0x45, + 0x14, 0xee, 0xda, 0x8e, 0x7f, 0x8e, 0x13, 0x67, 0x35, 0x25, 0xcd, 0xca, 0xb4, 0x51, 0xb4, 0x15, + 0x55, 0xa8, 0x54, 0x5b, 0x98, 0x9f, 0x22, 0x24, 0x90, 0x12, 0x7e, 0x2a, 0x17, 0x9a, 0x9a, 0x8d, + 0xc9, 0x05, 0x42, 0xaa, 0x26, 0xbb, 0x63, 0x67, 0xe9, 0x7a, 0x66, 0x33, 0x33, 0xeb, 0x2a, 0xe2, + 0xbe, 0x82, 0x77, 0xe1, 0x12, 0x1e, 0x02, 0x5e, 0x81, 0xc7, 0xe0, 0x05, 0xd0, 0x9c, 0xfd, 0xf1, + 0xda, 0x24, 0xaa, 0x73, 0xd1, 0x2b, 0xef, 0x9c, 0xf3, 0x9d, 0xdf, 0xef, 0x9c, 0x19, 0xc3, 0xfd, + 0x99, 0xf0, 0x5f, 0xf8, 0x91, 0x48, 0x02, 0x3a, 0x65, 0x5c, 0xbf, 0x98, 0x87, 0x52, 0x27, 0x34, + 0xe2, 0x4c, 0xbf, 0x12, 0xf2, 0x65, 0x2f, 0x96, 0x42, 0x0b, 0x72, 0x67, 0x26, 0xfc, 0xde, 0x02, + 0xd4, 0xcb, 0xb4, 0xdd, 0xbd, 0xa9, 0x10, 0xd3, 0x88, 0xf5, 0x11, 0x75, 0x96, 0x4c, 0xfa, 0xaf, + 0x24, 0x8d, 0x63, 0x26, 0x55, 0x6a, 0xd7, 0xdd, 0x45, 0xe7, 0x62, 0x36, 0x13, 0x3c, 0xfb, 0xc9, + 0x14, 0x7b, 0x25, 0x45, 0xe6, 0xac, 0xac, 0x77, 0xff, 0xb6, 0x60, 0xe7, 0x34, 0xcd, 0xe4, 0x38, + 0x55, 0x7b, 0xec, 0x22, 0x61, 0x4a, 0x93, 0x11, 0x6c, 0x2f, 0x2b, 0x94, 0x63, 0xed, 0x57, 0x0f, + 0xda, 0x83, 0x07, 0xbd, 0xab, 0x93, 0xec, 0xad, 0xf8, 0x59, 0x35, 0x27, 0x1f, 0xc1, 0xd6, 0xf3, + 0x98, 0x49, 0xaa, 0x43, 0xc1, 0xc7, 0x97, 0x31, 0x73, 0x2a, 0xfb, 0xd6, 0x41, 0x67, 0xd0, 0x41, + 0x7f, 0x85, 0xc6, 0x5b, 0x06, 0x91, 0xf7, 0xa1, 0x31, 0x67, 0x52, 0x85, 0x82, 0x3b, 0xd5, 0x7d, + 0xeb, 0xa0, 0x3d, 0xd8, 0x46, 0xfc, 0x61, 0x1c, 0x9e, 0xa6, 0x62, 0x2f, 0xd7, 0xbb, 0x7f, 0x58, + 0x70, 0x67, 0xb5, 0x18, 0x15, 0x0b, 0xae, 0xd8, 0x5b, 0xa8, 0x66, 0x00, 0x75, 0x8f, 0xa9, 0x24, + 0xd2, 0x58, 0x46, 0x7b, 0xd0, 0xed, 0xa5, 0x1c, 0xf5, 0x72, 0x8e, 0x7a, 0x47, 0x42, 0x44, 0xa7, + 0x34, 0x4a, 0x98, 0x97, 0x21, 0xc9, 0x3b, 0xb0, 0xf1, 0xb5, 0x94, 0x42, 0x62, 0x25, 0x2d, 0x2f, + 0x3d, 0xb8, 0x17, 0x70, 0x6f, 0xd9, 0xf9, 0x48, 0x32, 0xff, 0x9c, 0xf9, 0x6f, 0x8f, 0x0a, 0xf7, + 0x67, 0xd8, 0xbb, 0x2e, 0x64, 0xd6, 0xb0, 0x45, 0x79, 0xd6, 0xcd, 0xcb, 0xab, 0x94, 0xcb, 0xfb, + 0xb7, 0x0a, 0x9d, 0xe5, 0x60, 0x84, 0x40, 0x8d, 0xd3, 0x19, 0x43, 0xd7, 0x2d, 0x0f, 0xbf, 0x49, + 0x07, 0x2a, 0x61, 0x90, 0x59, 0x56, 0xc2, 0x80, 0x7c, 0x0a, 0x0d, 0x95, 0x9c, 0x71, 0xa6, 0x95, + 0x53, 0xc5, 0x62, 0xf7, 0xae, 0x2b, 0xf6, 0x04, 0x61, 0x5e, 0x0e, 0x27, 0xfb, 0x50, 0x0d, 0xb8, + 0x72, 0x6a, 0x98, 0x77, 0x13, 0xad, 0xbe, 0xe2, 0xea, 0xa8, 0xf6, 0xeb, 0x9f, 0x8e, 0xe5, 0x19, + 0x15, 0xf9, 0x02, 0x6a, 0xda, 0x0c, 0xe0, 0x06, 0x0e, 0xe0, 0xc3, 0xf5, 0xba, 0x68, 0xa6, 0xd1, + 0x43, 0x3b, 0xd2, 0x85, 0x26, 0x17, 0x01, 0x9b, 0x5c, 0x04, 0xdc, 0xa9, 0x63, 0xc6, 0xc5, 0x99, + 0xdc, 0x85, 0xd6, 0x54, 0x8a, 0x24, 0x3e, 0x36, 0x05, 0x36, 0x50, 0xb9, 0x10, 0x90, 0xfb, 0x50, + 0x57, 0x9a, 0xea, 0x44, 0x39, 0x4d, 0x4c, 0xaf, 0x8d, 0xb1, 0x4f, 0x50, 0xe4, 0x65, 0x2a, 0xe2, + 0xc2, 0x66, 0x24, 0x7c, 0x5c, 0x01, 0xf4, 0xd2, 0x42, 0x2f, 0x4b, 0x32, 0xf2, 0x00, 0xda, 0x33, + 0xea, 0x8f, 0x84, 0x88, 0x10, 0x02, 0x06, 0x92, 0x95, 0x58, 0x56, 0x90, 0x7b, 0x50, 0xd3, 0x74, + 0xaa, 0x9c, 0x4d, 0x0c, 0xd7, 0xc2, 0x70, 0x63, 0x3a, 0x55, 0x1e, 0x8a, 0xc9, 0xe7, 0xd0, 0x89, + 0xc4, 0x34, 0xf4, 0x8b, 0x2a, 0x9d, 0x2d, 0x04, 0xee, 0x20, 0xb0, 0xd8, 0xa2, 0x09, 0x93, 0x8c, + 0xfb, 0xcc, 0x5b, 0x01, 0x1b, 0x22, 0xfd, 0x30, 0x90, 0x4e, 0x67, 0xbf, 0x6a, 0x88, 0x34, 0xdf, + 0x4f, 0x6b, 0xcd, 0xb6, 0xbd, 0xe9, 0xfe, 0x53, 0x81, 0x7a, 0x4a, 0xcc, 0x5a, 0x6c, 0xe7, 0x8e, + 0xd2, 0xc5, 0xc0, 0x6f, 0xe2, 0x42, 0x5d, 0x8a, 0x44, 0x33, 0x43, 0xa5, 0x19, 0x00, 0xc0, 0x9c, + 0x3c, 0x23, 0xf2, 0x32, 0x0d, 0x79, 0x0c, 0x40, 0xa3, 0xbc, 0x31, 0x19, 0x9f, 0xbb, 0x88, 0x1b, + 0x8e, 0x0e, 0x0b, 0xc5, 0x33, 0xa6, 0xcf, 0x45, 0xe0, 0x95, 0xa0, 0x26, 0xe0, 0x3c, 0xa2, 0x29, + 0x7d, 0x5b, 0x1e, 0x7e, 0x93, 0xf7, 0xa0, 0x11, 0xc6, 0xb1, 0x10, 0x91, 0x72, 0x1a, 0x18, 0xb1, + 0x9d, 0x79, 0x32, 0xdd, 0xf4, 0x72, 0x1d, 0xf9, 0x09, 0x76, 0xb3, 0x09, 0x51, 0xcc, 0x4f, 0x64, + 0xa8, 0x2f, 0x91, 0x5f, 0xc9, 0x26, 0xc8, 0x54, 0x7b, 0xe0, 0x96, 0x9b, 0x77, 0x92, 0x61, 0x9e, + 0x18, 0xcc, 0xa2, 0x93, 0xd7, 0xb9, 0x28, 0x08, 0x83, 0x2b, 0x09, 0x7b, 0x5a, 0x6b, 0x36, 0xed, + 0x96, 0x3b, 0x86, 0xda, 0x30, 0xa6, 0x33, 0x53, 0x05, 0x0e, 0x72, 0xd6, 0x5a, 0x1c, 0xce, 0xd2, + 0xe2, 0x54, 0x6e, 0xb4, 0x38, 0xee, 0x5f, 0xd6, 0xea, 0x4d, 0x34, 0x1c, 0xfd, 0x10, 0x07, 0x54, + 0xb3, 0xfc, 0x26, 0xba, 0x0b, 0xad, 0x27, 0xc5, 0x70, 0xa7, 0x41, 0x17, 0x02, 0x93, 0x0d, 0x2a, + 0x52, 0x5a, 0xf1, 0x9b, 0x7c, 0x0b, 0xad, 0xdc, 0x49, 0xbe, 0xc8, 0x8f, 0xde, 0xb0, 0x6f, 0x69, + 0x5a, 0x45, 0xe8, 0x85, 0x7d, 0xf9, 0x2d, 0xa8, 0xbd, 0xe1, 0x2d, 0x50, 0xc5, 0xbb, 0xb6, 0xec, + 0x8e, 0xec, 0x01, 0xa4, 0x92, 0x52, 0x0d, 0x25, 0x09, 0xf9, 0x0c, 0x76, 0x3c, 0x36, 0x0d, 0x95, + 0x66, 0x92, 0x05, 0xc3, 0xd1, 0x61, 0x10, 0x48, 0xa6, 0x14, 0x4b, 0x9b, 0x99, 0xaf, 0xd8, 0xd5, + 0x10, 0xf7, 0x77, 0x6b, 0xf5, 0x5e, 0x5d, 0x34, 0x30, 0xbb, 0x57, 0xbf, 0x87, 0xcd, 0x91, 0x49, + 0x51, 0x69, 0x63, 0x9a, 0x5f, 0xe4, 0x37, 0x6c, 0xc9, 0x92, 0x0b, 0xf2, 0x18, 0x9a, 0xdf, 0xd0, + 0x30, 0x4a, 0x24, 0xcb, 0x19, 0x7f, 0x37, 0xdf, 0x80, 0x34, 0xb3, 0xd4, 0x2a, 0xc3, 0x78, 0x05, + 0xf8, 0xe1, 0x6f, 0x16, 0x90, 0xff, 0xdf, 0x71, 0xa4, 0x01, 0xd5, 0xe3, 0xc3, 0xb1, 0x7d, 0x8b, + 0x6c, 0x43, 0x7b, 0x2c, 0x29, 0x57, 0x31, 0x95, 0x8c, 0x6b, 0xdb, 0x22, 0x9b, 0xd0, 0xfc, 0x6e, + 0x70, 0x24, 0xc3, 0x60, 0xca, 0xec, 0x4a, 0x7a, 0x1a, 0x27, 0x9c, 0xb3, 0xc8, 0xae, 0x1a, 0xab, + 0xe1, 0x97, 0x27, 0x76, 0x8d, 0xb4, 0xa1, 0x31, 0x92, 0xe1, 0x9c, 0x6a, 0x66, 0x6f, 0x98, 0xc3, + 0xf3, 0x39, 0x93, 0x11, 0xbd, 0xb4, 0xeb, 0xc6, 0x60, 0xc8, 0x35, 0x93, 0x9c, 0x46, 0x76, 0xc3, + 0x9c, 0x9e, 0x85, 0xe6, 0x85, 0x60, 0x81, 0xdd, 0x1c, 0xbc, 0xae, 0xc2, 0xed, 0xe5, 0x5c, 0x0e, + 0x4d, 0x23, 0x48, 0x08, 0xf5, 0x21, 0x9f, 0x8b, 0x97, 0x8c, 0x3c, 0x5a, 0xf3, 0xb1, 0x4b, 0x47, + 0xb5, 0xdb, 0x5b, 0x17, 0x9e, 0x12, 0xe3, 0xde, 0x22, 0xbf, 0x40, 0x33, 0x7f, 0x06, 0xc9, 0xc7, + 0xeb, 0x59, 0xaf, 0xbc, 0xd4, 0xdd, 0x4f, 0x6e, 0x6a, 0x56, 0x04, 0x7f, 0x6d, 0xc1, 0xed, 0x7c, + 0x54, 0x16, 0xa3, 0xa5, 0xd6, 0x4d, 0x64, 0x65, 0x51, 0xd7, 0x4d, 0x64, 0x75, 0x3c, 0xdd, 0x5b, + 0x47, 0x1f, 0xfc, 0xd8, 0x9f, 0x86, 0xfa, 0x3c, 0x39, 0xeb, 0xf9, 0x62, 0xd6, 0x9f, 0x85, 0xbe, + 0x14, 0x4a, 0x4c, 0x74, 0x7f, 0x26, 0xfc, 0xbe, 0x8c, 0xfd, 0xfe, 0xc2, 0x67, 0x3f, 0xf3, 0x79, + 0x56, 0xc7, 0xff, 0x04, 0x1f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0xae, 0xb9, 0x54, 0x8c, 0xe3, + 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto index 966e45a3..3839e74a 100644 --- a/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto +++ b/rpc/cloudagent/network/virtualnetwork/moc_cloudagent_virtualnetwork.proto @@ -117,7 +117,7 @@ message VirtualNetworkIPUpdateRequest { message VirtualSubnetIPUpdate { string SubnetName = 1; - repeated string RegisteredIPAddresses = 2; + repeated string RegisteredIPAddresses = 2 [(sensitive) = true]; } message VirtualNetworkIPUpdateResponse { diff --git a/rpc/common/moc_common_networkcommon.pb.go b/rpc/common/moc_common_networkcommon.pb.go index bc4b59c9..c8fc2f1f 100644 --- a/rpc/common/moc_common_networkcommon.pb.go +++ b/rpc/common/moc_common_networkcommon.pb.go @@ -1004,69 +1004,70 @@ func init() { func init() { proto.RegisterFile("moc_common_networkcommon.proto", fileDescriptor_ba09ae1dfdbe03d2) } var fileDescriptor_ba09ae1dfdbe03d2 = []byte{ - // 1013 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x5f, 0x6f, 0xe3, 0x44, - 0x10, 0xaf, 0x93, 0x34, 0xbd, 0x4e, 0x74, 0xd7, 0xed, 0x42, 0x8b, 0xd5, 0xeb, 0xf5, 0x4a, 0x4e, - 0x88, 0x12, 0xa1, 0x56, 0x2a, 0xd5, 0x09, 0x21, 0x81, 0xe4, 0x36, 0x49, 0x31, 0x97, 0xda, 0xc6, - 0x71, 0x7a, 0x3a, 0x04, 0xb2, 0x9c, 0xf5, 0x26, 0xb5, 0xce, 0xde, 0xb5, 0xd6, 0x4e, 0xb8, 0x4a, - 0x3c, 0xf0, 0x31, 0x78, 0xe1, 0xf3, 0xf0, 0x41, 0xf8, 0x22, 0x68, 0xd7, 0x4e, 0x9d, 0x5e, 0xfb, - 0xc0, 0x43, 0xde, 0x66, 0x7e, 0x33, 0xf3, 0xdb, 0xf9, 0xb7, 0x6b, 0xc3, 0x41, 0xc2, 0x89, 0x4f, - 0x78, 0x92, 0x70, 0xe6, 0x33, 0x9a, 0xff, 0xce, 0xc5, 0xfb, 0x42, 0x3b, 0x4e, 0x05, 0xcf, 0x39, - 0xae, 0x27, 0x9c, 0xec, 0x7d, 0xb6, 0xe4, 0xb4, 0x6c, 0x6d, 0x47, 0x50, 0xef, 0xb2, 0x0c, 0xeb, - 0xb0, 0x91, 0x51, 0x31, 0xa7, 0x22, 0xd3, 0xb5, 0xc3, 0xfa, 0xd1, 0xa6, 0xbb, 0x50, 0xf1, 0x2e, - 0x34, 0x43, 0x9e, 0x04, 0x11, 0xd3, 0x6b, 0x87, 0xda, 0xd1, 0xa6, 0x5b, 0x6a, 0x12, 0xcf, 0x68, - 0x20, 0xc8, 0x8d, 0x5e, 0x57, 0x01, 0xa5, 0x26, 0x99, 0x78, 0x9a, 0x47, 0x9c, 0x65, 0x7a, 0xa3, - 0x60, 0x2a, 0xd5, 0xf6, 0x0f, 0x00, 0xa6, 0xe3, 0x70, 0x1e, 0x9b, 0x6c, 0xc2, 0x31, 0x86, 0xc6, - 0x2c, 0xa3, 0xa1, 0xae, 0x29, 0x56, 0x25, 0xe3, 0x7d, 0xd8, 0x0c, 0xe6, 0x41, 0x14, 0x07, 0xe3, - 0x98, 0x96, 0xc7, 0x55, 0x40, 0xfb, 0x5f, 0x0d, 0x9a, 0x05, 0x81, 0x0c, 0x66, 0x41, 0x42, 0x17, - 0xc1, 0x52, 0xc6, 0xaf, 0xa0, 0x91, 0xdf, 0xa6, 0x45, 0xdc, 0xb3, 0xd3, 0xad, 0xe3, 0x84, 0x93, - 0xe3, 0xc2, 0xdd, 0xbb, 0x4d, 0xa9, 0xab, 0x8c, 0xf8, 0x53, 0x58, 0xcf, 0xf2, 0x40, 0xe4, 0x7a, - 0x5d, 0x45, 0x16, 0x0a, 0x46, 0x50, 0xa7, 0x2c, 0xd4, 0x1b, 0x0a, 0x93, 0xa2, 0x24, 0x8b, 0xd8, - 0x84, 0xeb, 0xeb, 0x87, 0xda, 0x51, 0xeb, 0x1e, 0x99, 0x4c, 0xde, 0x55, 0x46, 0xfc, 0x02, 0x1a, - 0x79, 0x30, 0xcd, 0xf4, 0xa6, 0x72, 0xda, 0x54, 0x4e, 0x5e, 0x30, 0xcd, 0x5c, 0x05, 0xe3, 0x33, - 0xd8, 0x11, 0x74, 0x1a, 0x65, 0x39, 0x15, 0x34, 0x34, 0x1d, 0x23, 0x0c, 0x05, 0xcd, 0x32, 0x9a, - 0xe9, 0x1b, 0xaa, 0x2f, 0x8f, 0x1b, 0xdb, 0x7f, 0x69, 0xb0, 0x7b, 0xa7, 0x8f, 0xd2, 0x30, 0xc8, - 0x69, 0x3f, 0x88, 0xe2, 0x99, 0xa0, 0xf8, 0x00, 0x60, 0x38, 0x1b, 0x33, 0x9a, 0x5b, 0x55, 0xed, - 0x4b, 0x88, 0x6c, 0xdf, 0x5d, 0xe4, 0xa2, 0x7d, 0x77, 0x00, 0xee, 0x40, 0xe3, 0x82, 0x87, 0x54, - 0x55, 0xfe, 0xec, 0x74, 0xb7, 0x2c, 0xa9, 0x38, 0xa1, 0x27, 0x04, 0x17, 0xd2, 0xea, 0x2a, 0x1f, - 0xd9, 0x26, 0x05, 0x95, 0x2d, 0x29, 0x94, 0xf6, 0x14, 0xd6, 0x5d, 0x3e, 0xcb, 0xa9, 0x9c, 0x31, - 0xa3, 0x1f, 0xf2, 0x1f, 0x79, 0x5a, 0x66, 0xb1, 0x50, 0xf1, 0xd7, 0xb0, 0x1d, 0xd2, 0x2c, 0x8f, - 0x58, 0x20, 0x67, 0xee, 0x08, 0x3a, 0x89, 0x3e, 0x94, 0xa9, 0x3c, 0x34, 0xc8, 0x1d, 0x4a, 0x68, - 0x2e, 0x22, 0xa2, 0x92, 0x7a, 0xea, 0x96, 0x5a, 0xfb, 0x4b, 0xd8, 0x76, 0x69, 0xc6, 0x67, 0x82, - 0x50, 0x97, 0x4e, 0xa8, 0xa0, 0x8c, 0xd0, 0xc7, 0x66, 0xde, 0x7e, 0x07, 0x2f, 0xac, 0x62, 0xe5, - 0x87, 0x94, 0xcc, 0x44, 0x94, 0xdf, 0x5e, 0x0a, 0x3e, 0x4b, 0xab, 0xa0, 0x6f, 0xa1, 0x25, 0x2a, - 0x26, 0x15, 0xdb, 0x2a, 0x6b, 0x7f, 0x70, 0x82, 0xbb, 0xec, 0xda, 0xfe, 0x53, 0x03, 0x54, 0x72, - 0xaf, 0x80, 0x0e, 0x9f, 0x42, 0xab, 0xbc, 0x9c, 0x5e, 0xb5, 0xa4, 0x48, 0x45, 0x5a, 0x15, 0xee, - 0x2e, 0x3b, 0xb5, 0xff, 0x80, 0xad, 0x62, 0xba, 0x55, 0x02, 0x27, 0xb2, 0xf3, 0xca, 0xa3, 0x3c, - 0x7c, 0x67, 0x99, 0xa2, 0x3a, 0x7b, 0xe1, 0xf5, 0x71, 0xc6, 0xb5, 0xff, 0xdf, 0x00, 0x0f, 0x74, - 0x67, 0x36, 0x8e, 0x23, 0x72, 0xb7, 0x42, 0xab, 0x68, 0xeb, 0x6f, 0xb0, 0x63, 0x84, 0xf3, 0x80, - 0x11, 0x1a, 0x96, 0x49, 0x3b, 0x3c, 0x8e, 0xc8, 0xad, 0x5c, 0x4f, 0x75, 0x7d, 0xb5, 0xa5, 0xf5, - 0xbc, 0xe7, 0xb1, 0x74, 0x8b, 0x75, 0xd8, 0xa0, 0x4c, 0xbe, 0x09, 0xa1, 0x2a, 0xe8, 0x89, 0xbb, - 0x50, 0xdb, 0x3f, 0xc1, 0x33, 0x47, 0xf0, 0x31, 0x5d, 0x45, 0xaa, 0xbf, 0xc2, 0x61, 0x5f, 0x70, - 0x96, 0x53, 0x16, 0x9a, 0xce, 0x05, 0x67, 0x93, 0x68, 0x3a, 0x13, 0x6a, 0x7d, 0x57, 0xc1, 0xfe, - 0x33, 0xec, 0x0c, 0x78, 0x10, 0x9e, 0x07, 0xb1, 0x6c, 0x86, 0x58, 0x05, 0xe5, 0xdf, 0x1a, 0x3c, - 0x3f, 0x0f, 0xc8, 0x7b, 0xca, 0xc2, 0x72, 0x62, 0xf2, 0xc1, 0x5a, 0xc5, 0xf6, 0x76, 0x61, 0x2b, - 0xbe, 0x9f, 0x6c, 0xb9, 0x49, 0x7b, 0x2a, 0xfa, 0xd1, 0x42, 0xdc, 0x8f, 0x43, 0x3a, 0xdf, 0xc3, - 0x13, 0x47, 0x7e, 0x74, 0x08, 0x8f, 0xf1, 0x06, 0xd4, 0x8d, 0x38, 0x46, 0x6b, 0x52, 0xf0, 0x48, - 0x8a, 0x34, 0x29, 0x8c, 0xc2, 0x14, 0xd5, 0x30, 0x40, 0xd3, 0x24, 0x49, 0x3a, 0x3f, 0x43, 0xf5, - 0x3b, 0xf9, 0x35, 0x6a, 0x74, 0xbe, 0x03, 0x6c, 0x3a, 0x46, 0x1c, 0x73, 0xa2, 0x86, 0x70, 0x45, - 0xf3, 0x1b, 0x1e, 0xe2, 0x16, 0x6c, 0x98, 0x6c, 0x1e, 0xc4, 0x51, 0x88, 0xd6, 0xa4, 0xd2, 0xbd, - 0x65, 0x41, 0x12, 0x11, 0xa4, 0xc9, 0xd8, 0x61, 0x1e, 0xe4, 0x11, 0x41, 0xb5, 0xce, 0xe7, 0x8b, - 0x6f, 0x8f, 0xdc, 0x22, 0xdc, 0x84, 0xda, 0xf5, 0x55, 0xe1, 0x7e, 0x5d, 0xc0, 0x48, 0xeb, 0xf4, - 0xa1, 0xb5, 0x74, 0x13, 0xf1, 0x27, 0xb0, 0x75, 0x6d, 0xba, 0xde, 0xc8, 0x18, 0xf8, 0x56, 0xcf, - 0x7b, 0x6b, 0xbb, 0x6f, 0xd0, 0x9a, 0x04, 0x07, 0xf6, 0xa5, 0x79, 0xb1, 0x04, 0x6a, 0xf8, 0x29, - 0x6c, 0x8e, 0xac, 0x6e, 0xaf, 0x6f, 0x5a, 0xbd, 0x2e, 0xaa, 0x75, 0x5e, 0xca, 0x57, 0xf8, 0x9a, - 0x8a, 0x2c, 0xe2, 0x0c, 0x3f, 0x81, 0x86, 0xe9, 0xcc, 0xcf, 0xd0, 0x5a, 0x29, 0xbd, 0x46, 0x5a, - 0xe7, 0x1f, 0x0d, 0xb6, 0x1f, 0x3c, 0xbc, 0x78, 0x47, 0x82, 0xfe, 0xc8, 0xe9, 0x1a, 0x5e, 0xcf, - 0x1f, 0x59, 0x6f, 0x2c, 0xfb, 0xad, 0x85, 0xd6, 0xf0, 0x3e, 0xe8, 0x15, 0x6c, 0x5a, 0xd7, 0xc6, - 0xc0, 0xec, 0xfa, 0x7d, 0xdb, 0xbd, 0x32, 0x3c, 0xa4, 0xe1, 0x3d, 0xf9, 0xad, 0x58, 0x58, 0xed, - 0x91, 0xe7, 0xdb, 0x7d, 0xdf, 0x35, 0xac, 0xcb, 0x1e, 0xaa, 0xe1, 0x03, 0xd8, 0xab, 0x6c, 0xc3, - 0xd1, 0xb9, 0xd5, 0xf3, 0x7c, 0xcb, 0xf6, 0xfc, 0xbe, 0x3d, 0xb2, 0xba, 0xa8, 0x8e, 0x5f, 0xc2, - 0xf3, 0xca, 0x6e, 0x0c, 0xdc, 0x9e, 0xd1, 0x7d, 0xe7, 0x1b, 0x83, 0x81, 0x7d, 0x61, 0x78, 0xbd, - 0x2e, 0x6a, 0xe0, 0x43, 0xd8, 0xaf, 0x1c, 0x2c, 0xdb, 0x77, 0x6c, 0x7b, 0x30, 0xf4, 0x4d, 0xab, - 0x24, 0x43, 0xeb, 0x9d, 0xaf, 0x60, 0xfb, 0xc1, 0x15, 0x55, 0x03, 0x29, 0xf2, 0x2c, 0xa6, 0x3b, - 0xec, 0x5a, 0x48, 0x3b, 0xff, 0xe2, 0x97, 0x57, 0xd3, 0x28, 0xbf, 0x99, 0x8d, 0x8f, 0x09, 0x4f, - 0x4e, 0x92, 0x88, 0x08, 0x9e, 0xf1, 0x49, 0x7e, 0x92, 0x70, 0x72, 0x22, 0x52, 0x72, 0x52, 0xfc, - 0x94, 0x8c, 0x9b, 0xea, 0xaf, 0xe4, 0x9b, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x07, 0x44, 0xa4, - 0x0e, 0xd5, 0x08, 0x00, 0x00, + // 1027 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xd1, 0x4e, 0xe3, 0x46, + 0x17, 0xc6, 0x49, 0x08, 0xe4, 0x44, 0x0b, 0xc3, 0xfc, 0x3f, 0xd4, 0x62, 0x59, 0x96, 0x66, 0x55, + 0x95, 0x46, 0x15, 0x48, 0x74, 0xb5, 0xaa, 0x56, 0x6a, 0x25, 0x43, 0x12, 0xea, 0x6e, 0xb0, 0x5d, + 0xc7, 0x61, 0xb5, 0x55, 0x2b, 0xcb, 0x19, 0x4f, 0x82, 0xb5, 0xf6, 0x4c, 0x34, 0x76, 0xd2, 0x45, + 0xea, 0x45, 0x2f, 0xfb, 0x12, 0xed, 0x5b, 0xf4, 0x19, 0xfa, 0x2c, 0x7d, 0x8b, 0x6a, 0xc6, 0x0e, + 0x0e, 0x0b, 0x17, 0xbd, 0xc8, 0xdd, 0x9c, 0xef, 0x7c, 0xe7, 0x9b, 0x33, 0xe7, 0x9c, 0x19, 0x1b, + 0x0e, 0x13, 0x4e, 0x7c, 0xc2, 0x93, 0x84, 0x33, 0x9f, 0xd1, 0xec, 0x17, 0x2e, 0xde, 0xe7, 0xd6, + 0xc9, 0x54, 0xf0, 0x8c, 0xe3, 0x6a, 0xc2, 0xc9, 0xfe, 0x27, 0x4b, 0xa4, 0x65, 0x6f, 0x2b, 0x82, + 0x6a, 0x87, 0xa5, 0x58, 0x87, 0x8d, 0x94, 0x8a, 0x39, 0x15, 0xa9, 0xae, 0x1d, 0x55, 0x8f, 0x1b, + 0xee, 0xc2, 0xc4, 0x7b, 0x50, 0x0f, 0x79, 0x12, 0x44, 0x4c, 0xaf, 0x1c, 0x69, 0xc7, 0x0d, 0xb7, + 0xb0, 0x24, 0x9e, 0xd2, 0x40, 0x90, 0x1b, 0xbd, 0xaa, 0x02, 0x0a, 0x4b, 0x2a, 0xf1, 0x69, 0x16, + 0x71, 0x96, 0xea, 0xb5, 0x5c, 0xa9, 0x30, 0x5b, 0xdf, 0x02, 0x98, 0x8e, 0xc3, 0x79, 0x6c, 0xb2, + 0x31, 0xc7, 0x18, 0x6a, 0xb3, 0x94, 0x86, 0xba, 0xa6, 0x54, 0xd5, 0x1a, 0x1f, 0x40, 0x23, 0x98, + 0x07, 0x51, 0x1c, 0x8c, 0x62, 0x5a, 0x6c, 0x57, 0x02, 0xad, 0x7f, 0x34, 0xa8, 0xe7, 0x02, 0x32, + 0x98, 0x05, 0x09, 0x5d, 0x04, 0xcb, 0x35, 0x7e, 0x01, 0xb5, 0xec, 0x76, 0x9a, 0xc7, 0x6d, 0x9d, + 0x6d, 0x9f, 0x24, 0x9c, 0x9c, 0xe4, 0x74, 0xef, 0x76, 0x4a, 0x5d, 0xe5, 0xc4, 0xff, 0x87, 0xf5, + 0x34, 0x0b, 0x44, 0xa6, 0x57, 0x55, 0x64, 0x6e, 0x60, 0x04, 0x55, 0xca, 0x42, 0xbd, 0xa6, 0x30, + 0xb9, 0x94, 0x62, 0x11, 0x1b, 0x73, 0x7d, 0xfd, 0x48, 0x3b, 0x6e, 0xde, 0x13, 0x93, 0xc9, 0xbb, + 0xca, 0x89, 0x9f, 0x41, 0x2d, 0x0b, 0x26, 0xa9, 0x5e, 0x57, 0xa4, 0x86, 0x22, 0x79, 0xc1, 0x24, + 0x75, 0x15, 0x8c, 0x5f, 0xc3, 0xae, 0xa0, 0x93, 0x28, 0xcd, 0xa8, 0xa0, 0xa1, 0xe9, 0x18, 0x61, + 0x28, 0x68, 0x9a, 0xd2, 0x54, 0xdf, 0x90, 0x75, 0x39, 0xaf, 0xfd, 0xfe, 0x97, 0xae, 0xb9, 0x8f, + 0x53, 0x5a, 0x7f, 0x6a, 0xb0, 0x77, 0x67, 0x0f, 0xa7, 0x61, 0x90, 0xd1, 0x5e, 0x10, 0xc5, 0x33, + 0x41, 0xf1, 0x21, 0xc0, 0x60, 0x36, 0x62, 0x34, 0xb3, 0xca, 0x0a, 0x2c, 0x21, 0xb8, 0x05, 0x8d, + 0xbb, 0xc8, 0xbc, 0x88, 0xc5, 0x56, 0x25, 0x8c, 0xdb, 0x50, 0xbb, 0xe0, 0x21, 0x55, 0x55, 0xd8, + 0x3a, 0xdb, 0x2b, 0x8e, 0x97, 0xef, 0xd3, 0x15, 0x82, 0x0b, 0xe9, 0x75, 0x15, 0x47, 0x96, 0x4c, + 0x41, 0x45, 0x79, 0x72, 0xa3, 0x35, 0x81, 0x75, 0x97, 0xcf, 0x32, 0x2a, 0xfb, 0xcd, 0xe8, 0x87, + 0xec, 0x3b, 0x3e, 0x2d, 0x72, 0x59, 0x98, 0xf8, 0x4b, 0xd8, 0x09, 0x69, 0x9a, 0x45, 0x2c, 0x90, + 0xfd, 0x77, 0x04, 0x1d, 0x47, 0x1f, 0x8a, 0xae, 0x3e, 0x74, 0xc8, 0x79, 0x4a, 0x68, 0x26, 0x22, + 0xa2, 0x92, 0x7a, 0xe2, 0x16, 0x56, 0xeb, 0x73, 0xd8, 0x71, 0x69, 0xca, 0x67, 0x82, 0x50, 0x97, + 0x8e, 0xa9, 0xa0, 0x8c, 0xd0, 0xc7, 0xfa, 0xdf, 0x7a, 0x07, 0xcf, 0xac, 0x7c, 0xfc, 0x07, 0x94, + 0xcc, 0x44, 0x94, 0xdd, 0x5e, 0x0a, 0x3e, 0x9b, 0x96, 0x41, 0x5f, 0x43, 0x53, 0x94, 0x4a, 0x2a, + 0xb6, 0x59, 0x9c, 0xfd, 0xc1, 0x0e, 0xee, 0x32, 0xb5, 0xf5, 0x9b, 0x06, 0xa8, 0xd0, 0x5e, 0x81, + 0x1c, 0x3e, 0x83, 0x66, 0x71, 0x51, 0xbd, 0x72, 0x60, 0x91, 0x8a, 0xb4, 0x4a, 0xdc, 0x5d, 0x26, + 0xb5, 0x7e, 0x85, 0xed, 0xbc, 0xc7, 0x65, 0x02, 0xa7, 0xb2, 0xf2, 0x8a, 0x51, 0x6c, 0xbe, 0xbb, + 0x2c, 0x51, 0xee, 0xbd, 0x60, 0x7d, 0x9c, 0x71, 0xe5, 0xbf, 0x17, 0xc0, 0x03, 0xdd, 0x99, 0x8d, + 0xe2, 0x88, 0xdc, 0x8d, 0xd0, 0x2a, 0xca, 0xfa, 0x33, 0xec, 0x1a, 0xe1, 0x3c, 0x60, 0x84, 0x86, + 0x45, 0xd2, 0x0e, 0x8f, 0x23, 0x72, 0x2b, 0xc7, 0x53, 0x5d, 0x65, 0x6d, 0x69, 0x3c, 0xef, 0x31, + 0x96, 0x6e, 0xb4, 0x0e, 0x1b, 0x94, 0xc9, 0xf7, 0x21, 0x54, 0x07, 0xda, 0x74, 0x17, 0x66, 0xeb, + 0x7b, 0xd8, 0x72, 0x04, 0x1f, 0xd1, 0x55, 0xa4, 0xfa, 0x13, 0x1c, 0xf5, 0x04, 0x67, 0x19, 0x65, + 0xa1, 0xe9, 0x5c, 0x70, 0x36, 0x8e, 0x26, 0x33, 0xa1, 0xc6, 0x77, 0x15, 0xea, 0x3f, 0xc0, 0x6e, + 0x9f, 0x07, 0xe1, 0x79, 0x10, 0xcb, 0x62, 0x88, 0x55, 0x48, 0xfe, 0xa1, 0xc1, 0xd3, 0xf3, 0x80, + 0xbc, 0xa7, 0x2c, 0x2c, 0x3a, 0x26, 0x1f, 0xaf, 0x55, 0x4c, 0x6f, 0x07, 0xb6, 0xe3, 0xfb, 0xc9, + 0x16, 0x93, 0xb4, 0xaf, 0xa2, 0x1f, 0x3d, 0x88, 0xfb, 0x71, 0x48, 0xfb, 0x1b, 0xd8, 0x74, 0xe4, + 0x07, 0x88, 0xf0, 0x18, 0x6f, 0x40, 0xd5, 0x88, 0x63, 0xb4, 0x26, 0x17, 0x1e, 0x99, 0x22, 0x4d, + 0x2e, 0x86, 0xe1, 0x14, 0x55, 0x30, 0x40, 0xdd, 0x24, 0xc9, 0x74, 0xfe, 0x12, 0x55, 0xef, 0xd6, + 0xaf, 0x50, 0xad, 0xfd, 0x1a, 0xb0, 0xe9, 0x18, 0x71, 0xcc, 0x89, 0x6a, 0xc2, 0x15, 0xcd, 0x6e, + 0x78, 0x88, 0x9b, 0xb0, 0x61, 0xb2, 0x79, 0x10, 0x47, 0x21, 0x5a, 0x93, 0x46, 0xe7, 0x96, 0x05, + 0x49, 0x44, 0x90, 0x26, 0x63, 0x07, 0x59, 0x90, 0x45, 0x04, 0x55, 0xda, 0x9f, 0x2e, 0xbe, 0x43, + 0x72, 0x8a, 0x70, 0x1d, 0x2a, 0xd7, 0x57, 0x39, 0xfd, 0x3a, 0x87, 0x91, 0xd6, 0xee, 0x41, 0x73, + 0xe9, 0x26, 0xe2, 0xff, 0xc1, 0xf6, 0xb5, 0xe9, 0x7a, 0x43, 0xa3, 0xef, 0x5b, 0x5d, 0xef, 0xad, + 0xed, 0xbe, 0x41, 0x6b, 0x12, 0xec, 0xdb, 0x97, 0xe6, 0xc5, 0x12, 0xa8, 0xe1, 0x27, 0xd0, 0x18, + 0x5a, 0x9d, 0x6e, 0xcf, 0xb4, 0xba, 0x1d, 0x54, 0x69, 0x3f, 0x97, 0x6f, 0xf1, 0x35, 0x15, 0x69, + 0xc4, 0x19, 0xde, 0x84, 0x9a, 0xe9, 0xcc, 0x5f, 0xa2, 0xb5, 0x62, 0xf5, 0x0a, 0x69, 0xed, 0xbf, + 0x35, 0xd8, 0x79, 0xf0, 0xf0, 0xe2, 0x5d, 0x09, 0xfa, 0x43, 0xa7, 0x63, 0x78, 0x5d, 0x7f, 0x68, + 0xbd, 0xb1, 0xec, 0xb7, 0x16, 0x5a, 0xc3, 0x07, 0xa0, 0x97, 0xb0, 0x69, 0x5d, 0x1b, 0x7d, 0xb3, + 0xe3, 0xf7, 0x6c, 0xf7, 0xca, 0xf0, 0x90, 0x86, 0xf7, 0xe5, 0x17, 0x63, 0xe1, 0xb5, 0x87, 0x9e, + 0x6f, 0xf7, 0x7c, 0xd7, 0xb0, 0x2e, 0xbb, 0xa8, 0x82, 0x0f, 0x61, 0xbf, 0xf4, 0x0d, 0x86, 0xe7, + 0x56, 0xd7, 0xf3, 0x2d, 0xdb, 0xf3, 0x7b, 0xf6, 0xd0, 0xea, 0xa0, 0x2a, 0x7e, 0x0e, 0x4f, 0x4b, + 0xbf, 0xd1, 0x77, 0xbb, 0x46, 0xe7, 0x9d, 0x6f, 0xf4, 0xfb, 0xf6, 0x85, 0xe1, 0x75, 0x3b, 0xa8, + 0x86, 0x8f, 0xe0, 0xa0, 0x24, 0x58, 0xb6, 0xef, 0xd8, 0x76, 0x7f, 0xe0, 0x9b, 0x56, 0x21, 0x86, + 0xd6, 0xdb, 0x5f, 0xc0, 0xce, 0x83, 0x2b, 0xaa, 0x1a, 0x92, 0xe7, 0x99, 0x77, 0x77, 0xd0, 0xb1, + 0x90, 0x76, 0xfe, 0xd9, 0x8f, 0x2f, 0x26, 0x51, 0x76, 0x33, 0x1b, 0x9d, 0x10, 0x9e, 0x9c, 0x26, + 0x11, 0x11, 0x3c, 0xe5, 0xe3, 0xec, 0x34, 0xe1, 0xe4, 0x54, 0x4c, 0xc9, 0x69, 0xfe, 0x83, 0x32, + 0xaa, 0xab, 0x3f, 0x94, 0xaf, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xfc, 0x50, 0x49, 0xe1, + 0x08, 0x00, 0x00, } diff --git a/rpc/common/moc_common_networkcommon.proto b/rpc/common/moc_common_networkcommon.proto index bf4db7a3..8d7aecfc 100644 --- a/rpc/common/moc_common_networkcommon.proto +++ b/rpc/common/moc_common_networkcommon.proto @@ -56,7 +56,7 @@ message IPPool { string end = 4; IPPoolInfo info = 5; Tags tags = 6; - repeated string registeredIPAddresses = 7; + repeated string registeredIPAddresses = 7 [(sensitive) = true]; } // IPAddressUpdateFailure is the single-IP failure record returned by @@ -64,7 +64,7 @@ message IPPool { // flows. message IPAddressUpdateFailure { string SubnetName = 1; - string IPAddress = 2; + string IPAddress = 2 [(sensitive) = true]; IPUpdateErrorCode Code = 3; string Error = 4; }