mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 01:32:18 +02:00
The Netris Plugin introduces Netris as a network service provider in CloudStack to be able to create and manage Virtual Private Clouds (VPCs) in CloudStack, being able to orchestrate the following network functionalities: - Network segmentation with Netris-VXLAN isolation method - Routing between "public" IP and network segments with an ACS ROUTED mode offering - SourceNAT, DNAT, 1:1 NAT between "public" IP and network segments with an ACS NATTED mode offering - Routing between VPC network segments (tiers in ACS nomenclature) - Access Lists (ACLs) between VPC tiers and "public" network (TCP, UDP, ICMP) both as global egress rules and "public" IP specific ingress rules. - ACLs between VPC network tiers (TCP, UDP, ICMP) - External load balancing – between VPC network tiers and "public" IP - Internal load balancing – between VPC network tiers - CloudStack Virtual Router services (DHCP, DNS, UserData, Password Injection, etc…)
104 lines
2.6 KiB
Java
104 lines
2.6 KiB
Java
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you 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 com.cloud.network;
|
|
|
|
import java.util.Date;
|
|
|
|
import org.apache.cloudstack.acl.ControlledEntity;
|
|
import org.apache.cloudstack.api.Displayable;
|
|
import org.apache.cloudstack.api.Identity;
|
|
import org.apache.cloudstack.api.InternalIdentity;
|
|
|
|
import com.cloud.utils.net.Ip;
|
|
|
|
/**
|
|
*
|
|
* - Allocated = null
|
|
* - AccountId = null
|
|
* - DomainId = null
|
|
*
|
|
* - State = Allocated
|
|
* - AccountId = account owner.
|
|
* - DomainId = domain of the account owner.
|
|
* - Allocated = time it was allocated.
|
|
*/
|
|
public interface IpAddress extends ControlledEntity, Identity, InternalIdentity, Displayable {
|
|
enum State {
|
|
Allocating, // The IP Address is being propagated to other network elements and is not ready for use yet.
|
|
Allocated, // The IP address is in used.
|
|
Releasing, // The IP address is being released for other network elements and is not ready for allocation.
|
|
Reserved, // The IP address is reserved and is not ready for allocation.
|
|
Free // The IP address is ready to be allocated.
|
|
}
|
|
|
|
enum Purpose {
|
|
StaticNat, Lb
|
|
}
|
|
|
|
long getDataCenterId();
|
|
|
|
Ip getAddress();
|
|
|
|
Date getAllocatedTime();
|
|
|
|
boolean isSourceNat();
|
|
|
|
long getVlanId();
|
|
|
|
boolean isOneToOneNat();
|
|
|
|
State getState();
|
|
|
|
boolean readyToUse();
|
|
|
|
Long getAssociatedWithNetworkId();
|
|
|
|
Long getAssociatedWithVmId();
|
|
|
|
public Long getPhysicalNetworkId();
|
|
|
|
void setState(IpAddress.State state);
|
|
|
|
Long getAllocatedToAccountId();
|
|
|
|
Long getAllocatedInDomainId();
|
|
|
|
boolean getSystem();
|
|
|
|
Long getVpcId();
|
|
|
|
String getVmIp();
|
|
|
|
boolean isPortable();
|
|
|
|
Long getNetworkId();
|
|
|
|
boolean isDisplay();
|
|
|
|
public Date getRemoved();
|
|
|
|
public Date getCreated();
|
|
|
|
State getRuleState();
|
|
|
|
void setRuleState(State ruleState);
|
|
|
|
boolean isForSystemVms();
|
|
|
|
boolean isForRouter();
|
|
}
|