| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package compute
- import (
- "time"
- "yunion.io/x/cloudmux/pkg/apis/compute"
- )
- type TNetworkType string
- const (
- // # DEFAULT_BANDWIDTH = options.default_bandwidth
- // in mbps, maximal is 100Tbps
- MAX_BANDWIDTH = 100000000
- NETWORK_TYPE_GUEST = TNetworkType(compute.NETWORK_TYPE_GUEST)
- NETWORK_TYPE_BAREMETAL = TNetworkType("baremetal")
- NETWORK_TYPE_CONTAINER = TNetworkType("container")
- NETWORK_TYPE_PXE = TNetworkType("pxe")
- NETWORK_TYPE_IPMI = TNetworkType("ipmi")
- NETWORK_TYPE_EIP = TNetworkType("eip")
- NETWORK_TYPE_HOSTLOCAL = TNetworkType("hostlocal")
- STATIC_ALLOC = "static"
- MAX_NETWORK_NAME_LEN = 11
- EXTRA_DNS_UPDATE_TARGETS = "__extra_dns_update_targets"
- NETWORK_STATUS_INIT = "init"
- NETWORK_STATUS_PENDING = compute.NETWORK_STATUS_PENDING
- NETWORK_STATUS_AVAILABLE = compute.NETWORK_STATUS_AVAILABLE
- NETWORK_STATUS_UNAVAILABLE = compute.NETWORK_STATUS_UNAVAILABLE
- NETWORK_STATUS_FAILED = "failed"
- NETWORK_STATUS_UNKNOWN = "unknown"
- NETWORK_STATUS_START_DELETE = "start_delete"
- NETWORK_STATUS_DELETING = compute.NETWORK_STATUS_DELETING
- NETWORK_STATUS_DELETED = "deleted"
- NETWORK_STATUS_DELETE_FAILED = "delete_failed"
- )
- const (
- NETWORK_DRIVER_VIRTIO = "virtio"
- NETWORK_DRIVER_E1000 = "e1000"
- NETWORK_DRIVER_VMXNET3 = "vmxnet3"
- NETWORK_DRIVER_VFIO = "vfio-pci"
- )
- var (
- ALL_NETWORK_TYPES = []TNetworkType{
- NETWORK_TYPE_GUEST,
- NETWORK_TYPE_BAREMETAL,
- NETWORK_TYPE_CONTAINER,
- NETWORK_TYPE_PXE,
- NETWORK_TYPE_IPMI,
- NETWORK_TYPE_EIP,
- NETWORK_TYPE_HOSTLOCAL,
- }
- REGIONAL_NETWORK_PROVIDERS = []string{
- CLOUD_PROVIDER_HUAWEI,
- CLOUD_PROVIDER_HCSO,
- CLOUD_PROVIDER_HCSOP,
- CLOUD_PROVIDER_HCS,
- CLOUD_PROVIDER_CTYUN,
- CLOUD_PROVIDER_UCLOUD,
- CLOUD_PROVIDER_GOOGLE,
- CLOUD_PROVIDER_OPENSTACK,
- CLOUD_PROVIDER_JDCLOUD,
- CLOUD_PROVIDER_H3C,
- }
- )
- func IsInNetworkTypes(netType TNetworkType, types []TNetworkType) bool {
- for _, t := range types {
- if t == netType {
- return true
- }
- }
- return false
- }
- type IPAllocationDirection string
- const (
- IPAllocationStepdown IPAllocationDirection = "stepdown"
- IPAllocationStepup IPAllocationDirection = "stepup"
- IPAllocationRandom IPAllocationDirection = "random"
- IPAllocationNone IPAllocationDirection = "none"
- IPAllocationDefault = ""
- )
- type SNetworkUsedAddress struct {
- IpAddr string `json:"ip_addr"`
- Ip6Addr string `json:"ip6_addr"`
- MacAddr string `json:"mac_addr"`
- Owner string `json:"owner"`
- OwnerId string `json:"owner_id"`
- OwnerStatus string `json:"owner_status"`
- OwnerType string `json:"owner_type"`
- AssociateId string `json:"associate_id"`
- AssociateType string `json:"associate_type"`
- CreatedAt time.Time `json:"created_at"`
- }
|