go.ligato.io/vpp-agent/v3@v3.5.0/proto/ligato/netalloc/netalloc.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.27.1 4 // protoc v3.17.3 5 // source: ligato/netalloc/netalloc.proto 6 7 // Netalloc allows to disassociate topology from addressing in the network 8 // configuration. Instead of inserting specific IP/MAC addresses, VXLAN VNIs, etc., 9 // into the configuration data for interfaces, routes, ARPs and other network 10 // objects, the addresses can be symbolic references into the pool of allocated 11 // addresses known to the netalloc plugin. 12 // 13 // The ability to separate addresses from the rest of the network configuration 14 // is especially useful in scenarios where address allocations are provided 15 // externally, for example by another control-plane agent, IPAM tool or by CNI 16 // in containerized environments. 17 // 18 // But for now, only model for IP address allocations has been implemented. 19 // To allocate a new IP address, an instance of the proto message IPAllocation 20 // should be submitted into the vpp-agent through one of the supported NB 21 // transports (etcd, GRPC, ...) under the corresponding key. Network object which 22 // references (to-be or already) allocated address will have a dependency on the 23 // corresponding key-value instance of IPAllocation and will read and apply the 24 // address only once it is available. 25 26 package netalloc 27 28 import ( 29 _ "go.ligato.io/vpp-agent/v3/proto/ligato" 30 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 31 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 32 reflect "reflect" 33 sync "sync" 34 ) 35 36 const ( 37 // Verify that this generated code is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 39 // Verify that runtime/protoimpl is sufficiently up-to-date. 40 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 41 ) 42 43 // IPAddressForm can be used in descriptors whose models reference allocated IP 44 // addresses, to ask for a specific form in which the address should applied. 45 type IPAddressForm int32 46 47 const ( 48 IPAddressForm_UNDEFINED_FORM IPAddressForm = 0 49 // ADDR_ONLY = apply address without mask, e.g. 192.168.2.5 50 IPAddressForm_ADDR_ONLY IPAddressForm = 1 51 // ADDR_WITH_MASK = apply address including the mask of the network, 52 // e.g. 192.168.2.5/24 53 IPAddressForm_ADDR_WITH_MASK IPAddressForm = 2 54 // ADDR_NET = apply network implied by the address, 55 // e.g. for 192.168.2.10/24 apply 192.168.2.0/24 56 IPAddressForm_ADDR_NET IPAddressForm = 3 57 // SINGLE_ADDR_NET = apply address with an all-ones mask (i.e. /32 for IPv4, 58 // /128 for IPv6) 59 IPAddressForm_SINGLE_ADDR_NET IPAddressForm = 4 60 ) 61 62 // Enum value maps for IPAddressForm. 63 var ( 64 IPAddressForm_name = map[int32]string{ 65 0: "UNDEFINED_FORM", 66 1: "ADDR_ONLY", 67 2: "ADDR_WITH_MASK", 68 3: "ADDR_NET", 69 4: "SINGLE_ADDR_NET", 70 } 71 IPAddressForm_value = map[string]int32{ 72 "UNDEFINED_FORM": 0, 73 "ADDR_ONLY": 1, 74 "ADDR_WITH_MASK": 2, 75 "ADDR_NET": 3, 76 "SINGLE_ADDR_NET": 4, 77 } 78 ) 79 80 func (x IPAddressForm) Enum() *IPAddressForm { 81 p := new(IPAddressForm) 82 *p = x 83 return p 84 } 85 86 func (x IPAddressForm) String() string { 87 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 88 } 89 90 func (IPAddressForm) Descriptor() protoreflect.EnumDescriptor { 91 return file_ligato_netalloc_netalloc_proto_enumTypes[0].Descriptor() 92 } 93 94 func (IPAddressForm) Type() protoreflect.EnumType { 95 return &file_ligato_netalloc_netalloc_proto_enumTypes[0] 96 } 97 98 func (x IPAddressForm) Number() protoreflect.EnumNumber { 99 return protoreflect.EnumNumber(x) 100 } 101 102 // Deprecated: Use IPAddressForm.Descriptor instead. 103 func (IPAddressForm) EnumDescriptor() ([]byte, []int) { 104 return file_ligato_netalloc_netalloc_proto_rawDescGZIP(), []int{0} 105 } 106 107 // IPAddressSource can be used to remember the source of an IP address. 108 // (e.g. to distinguish allocated IP addresses from statically defined ones) 109 type IPAddressSource int32 110 111 const ( 112 IPAddressSource_UNDEFINED_SOURCE IPAddressSource = 0 113 // STATIC is IP address statically assigned in the NB configuration. 114 IPAddressSource_STATIC IPAddressSource = 1 115 // FROM_DHCP is set when IP address is obtained from DHCP. 116 IPAddressSource_FROM_DHCP IPAddressSource = 2 117 // ALLOC_REF is a reference inside NB configuration to an allocated 118 // IP address. 119 IPAddressSource_ALLOC_REF IPAddressSource = 3 120 // EXISTING is set when IP address is assigned to (EXISTING) interface 121 // externally (i.e. by a different agent or manually by an administrator). 122 IPAddressSource_EXISTING IPAddressSource = 4 123 ) 124 125 // Enum value maps for IPAddressSource. 126 var ( 127 IPAddressSource_name = map[int32]string{ 128 0: "UNDEFINED_SOURCE", 129 1: "STATIC", 130 2: "FROM_DHCP", 131 3: "ALLOC_REF", 132 4: "EXISTING", 133 } 134 IPAddressSource_value = map[string]int32{ 135 "UNDEFINED_SOURCE": 0, 136 "STATIC": 1, 137 "FROM_DHCP": 2, 138 "ALLOC_REF": 3, 139 "EXISTING": 4, 140 } 141 ) 142 143 func (x IPAddressSource) Enum() *IPAddressSource { 144 p := new(IPAddressSource) 145 *p = x 146 return p 147 } 148 149 func (x IPAddressSource) String() string { 150 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 151 } 152 153 func (IPAddressSource) Descriptor() protoreflect.EnumDescriptor { 154 return file_ligato_netalloc_netalloc_proto_enumTypes[1].Descriptor() 155 } 156 157 func (IPAddressSource) Type() protoreflect.EnumType { 158 return &file_ligato_netalloc_netalloc_proto_enumTypes[1] 159 } 160 161 func (x IPAddressSource) Number() protoreflect.EnumNumber { 162 return protoreflect.EnumNumber(x) 163 } 164 165 // Deprecated: Use IPAddressSource.Descriptor instead. 166 func (IPAddressSource) EnumDescriptor() ([]byte, []int) { 167 return file_ligato_netalloc_netalloc_proto_rawDescGZIP(), []int{1} 168 } 169 170 // IPAllocation represents a single allocated IP address. 171 // 172 // To reference allocated address, instead of entering specific IP address 173 // for interface/route/ARP/..., use one of the following string templates 174 // prefixed with netalloc keyword "alloc" followed by colon: 175 // a) reference IP address allocated for an interface: 176 // "alloc:<network_name>/<interface_name>" 177 // b) when interface is given (e.g. when asked for IP from interface model), 178 // interface_name can be omitted: 179 // "alloc:<network_name>" 180 // c) reference default gateway IP address assigned to an interface: 181 // "alloc:<network_name>/<interface_name>/GW" 182 // d) when asking for GW IP for interface which is given, interface_name 183 // can be omitted: 184 // "alloc:<network_name>/GW" 185 type IPAllocation struct { 186 state protoimpl.MessageState 187 sizeCache protoimpl.SizeCache 188 unknownFields protoimpl.UnknownFields 189 190 // NetworkName is some label assigned to the network where the IP address 191 // was assigned to the given interface. 192 // In theory, interface can have multiple IP adresses or there can be multiple 193 // address allocators and the network name allows to separate them. 194 // The network name is not allowed to contain forward slashes. 195 NetworkName string `protobuf:"bytes,1,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` 196 // InterfaceName is the logical VPP or Linux interface name for which the 197 // address is allocated. 198 InterfaceName string `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"` 199 // Address is an IP addres allocated to the interface inside the given 200 // network. 201 // If the address is specified without a mask, the all-ones mask (/32 for 202 // IPv4, /128 for IPv6) will be assumed. 203 Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` 204 // Gw is the address of the default gateway assigned to the interface in 205 // the given network. 206 // If the address is specified without a mask, then either: 207 // a) the mask of the <address> is used provided that GW IP falls into the 208 // same network IP range, or 209 // b) the all-ones mask is used otherwise 210 Gw string `protobuf:"bytes,5,opt,name=gw,proto3" json:"gw,omitempty"` 211 } 212 213 func (x *IPAllocation) Reset() { 214 *x = IPAllocation{} 215 if protoimpl.UnsafeEnabled { 216 mi := &file_ligato_netalloc_netalloc_proto_msgTypes[0] 217 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 218 ms.StoreMessageInfo(mi) 219 } 220 } 221 222 func (x *IPAllocation) String() string { 223 return protoimpl.X.MessageStringOf(x) 224 } 225 226 func (*IPAllocation) ProtoMessage() {} 227 228 func (x *IPAllocation) ProtoReflect() protoreflect.Message { 229 mi := &file_ligato_netalloc_netalloc_proto_msgTypes[0] 230 if protoimpl.UnsafeEnabled && x != nil { 231 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 232 if ms.LoadMessageInfo() == nil { 233 ms.StoreMessageInfo(mi) 234 } 235 return ms 236 } 237 return mi.MessageOf(x) 238 } 239 240 // Deprecated: Use IPAllocation.ProtoReflect.Descriptor instead. 241 func (*IPAllocation) Descriptor() ([]byte, []int) { 242 return file_ligato_netalloc_netalloc_proto_rawDescGZIP(), []int{0} 243 } 244 245 func (x *IPAllocation) GetNetworkName() string { 246 if x != nil { 247 return x.NetworkName 248 } 249 return "" 250 } 251 252 func (x *IPAllocation) GetInterfaceName() string { 253 if x != nil { 254 return x.InterfaceName 255 } 256 return "" 257 } 258 259 func (x *IPAllocation) GetAddress() string { 260 if x != nil { 261 return x.Address 262 } 263 return "" 264 } 265 266 func (x *IPAllocation) GetGw() string { 267 if x != nil { 268 return x.Gw 269 } 270 return "" 271 } 272 273 // ConfigData wraps all configuration items exported by netalloc. 274 // TBD: MACs, VXLAN VNIs, memif IDs, etc. 275 type ConfigData struct { 276 state protoimpl.MessageState 277 sizeCache protoimpl.SizeCache 278 unknownFields protoimpl.UnknownFields 279 280 IpAddresses []*IPAllocation `protobuf:"bytes,10,rep,name=ip_addresses,json=ipAddresses,proto3" json:"ip_addresses,omitempty"` 281 } 282 283 func (x *ConfigData) Reset() { 284 *x = ConfigData{} 285 if protoimpl.UnsafeEnabled { 286 mi := &file_ligato_netalloc_netalloc_proto_msgTypes[1] 287 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 288 ms.StoreMessageInfo(mi) 289 } 290 } 291 292 func (x *ConfigData) String() string { 293 return protoimpl.X.MessageStringOf(x) 294 } 295 296 func (*ConfigData) ProtoMessage() {} 297 298 func (x *ConfigData) ProtoReflect() protoreflect.Message { 299 mi := &file_ligato_netalloc_netalloc_proto_msgTypes[1] 300 if protoimpl.UnsafeEnabled && x != nil { 301 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 302 if ms.LoadMessageInfo() == nil { 303 ms.StoreMessageInfo(mi) 304 } 305 return ms 306 } 307 return mi.MessageOf(x) 308 } 309 310 // Deprecated: Use ConfigData.ProtoReflect.Descriptor instead. 311 func (*ConfigData) Descriptor() ([]byte, []int) { 312 return file_ligato_netalloc_netalloc_proto_rawDescGZIP(), []int{1} 313 } 314 315 func (x *ConfigData) GetIpAddresses() []*IPAllocation { 316 if x != nil { 317 return x.IpAddresses 318 } 319 return nil 320 } 321 322 var File_ligato_netalloc_netalloc_proto protoreflect.FileDescriptor 323 324 var file_ligato_netalloc_netalloc_proto_rawDesc = []byte{ 325 0x0a, 0x1e, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x6f, 326 0x63, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 327 0x12, 0x0f, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x6f, 328 0x63, 0x1a, 0x18, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 329 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x0c, 330 0x49, 0x50, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 331 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 332 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 333 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 334 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 335 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 336 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0x82, 0x7d, 0x02, 0x08, 0x07, 0x52, 0x07, 337 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x15, 0x0a, 0x02, 0x67, 0x77, 0x18, 0x05, 0x20, 338 0x01, 0x28, 0x09, 0x42, 0x05, 0x82, 0x7d, 0x02, 0x08, 0x07, 0x52, 0x02, 0x67, 0x77, 0x22, 0x4e, 339 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0c, 340 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 341 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x2e, 0x6e, 0x65, 0x74, 0x61, 342 0x6c, 0x6c, 0x6f, 0x63, 0x2e, 0x49, 0x50, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 343 0x6e, 0x52, 0x0b, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2a, 0x69, 344 0x0a, 0x0d, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x12, 345 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x4f, 0x52, 346 0x4d, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 347 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 348 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x4e, 349 0x45, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x41, 350 0x44, 0x44, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x10, 0x04, 0x2a, 0x5f, 0x0a, 0x0f, 0x49, 0x50, 0x41, 351 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x10, 352 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 353 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0d, 354 0x0a, 0x09, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x10, 0x02, 0x12, 0x0d, 0x0a, 355 0x09, 0x41, 0x4c, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x46, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 356 0x45, 0x58, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 357 0x2e, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x70, 0x70, 0x2d, 0x61, 358 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 359 0x67, 0x61, 0x74, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x62, 0x06, 0x70, 360 0x72, 0x6f, 0x74, 0x6f, 0x33, 361 } 362 363 var ( 364 file_ligato_netalloc_netalloc_proto_rawDescOnce sync.Once 365 file_ligato_netalloc_netalloc_proto_rawDescData = file_ligato_netalloc_netalloc_proto_rawDesc 366 ) 367 368 func file_ligato_netalloc_netalloc_proto_rawDescGZIP() []byte { 369 file_ligato_netalloc_netalloc_proto_rawDescOnce.Do(func() { 370 file_ligato_netalloc_netalloc_proto_rawDescData = protoimpl.X.CompressGZIP(file_ligato_netalloc_netalloc_proto_rawDescData) 371 }) 372 return file_ligato_netalloc_netalloc_proto_rawDescData 373 } 374 375 var file_ligato_netalloc_netalloc_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 376 var file_ligato_netalloc_netalloc_proto_msgTypes = make([]protoimpl.MessageInfo, 2) 377 var file_ligato_netalloc_netalloc_proto_goTypes = []interface{}{ 378 (IPAddressForm)(0), // 0: ligato.netalloc.IPAddressForm 379 (IPAddressSource)(0), // 1: ligato.netalloc.IPAddressSource 380 (*IPAllocation)(nil), // 2: ligato.netalloc.IPAllocation 381 (*ConfigData)(nil), // 3: ligato.netalloc.ConfigData 382 } 383 var file_ligato_netalloc_netalloc_proto_depIdxs = []int32{ 384 2, // 0: ligato.netalloc.ConfigData.ip_addresses:type_name -> ligato.netalloc.IPAllocation 385 1, // [1:1] is the sub-list for method output_type 386 1, // [1:1] is the sub-list for method input_type 387 1, // [1:1] is the sub-list for extension type_name 388 1, // [1:1] is the sub-list for extension extendee 389 0, // [0:1] is the sub-list for field type_name 390 } 391 392 func init() { file_ligato_netalloc_netalloc_proto_init() } 393 func file_ligato_netalloc_netalloc_proto_init() { 394 if File_ligato_netalloc_netalloc_proto != nil { 395 return 396 } 397 if !protoimpl.UnsafeEnabled { 398 file_ligato_netalloc_netalloc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 399 switch v := v.(*IPAllocation); i { 400 case 0: 401 return &v.state 402 case 1: 403 return &v.sizeCache 404 case 2: 405 return &v.unknownFields 406 default: 407 return nil 408 } 409 } 410 file_ligato_netalloc_netalloc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 411 switch v := v.(*ConfigData); i { 412 case 0: 413 return &v.state 414 case 1: 415 return &v.sizeCache 416 case 2: 417 return &v.unknownFields 418 default: 419 return nil 420 } 421 } 422 } 423 type x struct{} 424 out := protoimpl.TypeBuilder{ 425 File: protoimpl.DescBuilder{ 426 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 427 RawDescriptor: file_ligato_netalloc_netalloc_proto_rawDesc, 428 NumEnums: 2, 429 NumMessages: 2, 430 NumExtensions: 0, 431 NumServices: 0, 432 }, 433 GoTypes: file_ligato_netalloc_netalloc_proto_goTypes, 434 DependencyIndexes: file_ligato_netalloc_netalloc_proto_depIdxs, 435 EnumInfos: file_ligato_netalloc_netalloc_proto_enumTypes, 436 MessageInfos: file_ligato_netalloc_netalloc_proto_msgTypes, 437 }.Build() 438 File_ligato_netalloc_netalloc_proto = out.File 439 file_ligato_netalloc_netalloc_proto_rawDesc = nil 440 file_ligato_netalloc_netalloc_proto_goTypes = nil 441 file_ligato_netalloc_netalloc_proto_depIdxs = nil 442 }