mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-16 18:02:05 +02:00
encapsulation constraint related to ONOS-3445
Change-Id: I5f7d912e34c343703108e0cb95c4ea94290663a8
This commit is contained in:
parent
6f1667310d
commit
02e47a4dc2
@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2014-2015 Open Networking Laboratory
|
||||||
|
*
|
||||||
|
* 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 org.onosproject.net;
|
||||||
|
|
||||||
|
public enum EncapsulationType {
|
||||||
|
/**
|
||||||
|
* Indicates an MPLS encapsulation.
|
||||||
|
*/
|
||||||
|
MPLS,
|
||||||
|
/**
|
||||||
|
* Indicates a VLAN encapsulation.
|
||||||
|
*/
|
||||||
|
VLAN,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2014-2015 Open Networking Laboratory
|
||||||
|
*
|
||||||
|
* 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 org.onosproject.net.intent.constraint;
|
||||||
|
|
||||||
|
|
||||||
|
import org.onosproject.net.EncapsulationType;
|
||||||
|
import org.onosproject.net.Link;
|
||||||
|
import org.onosproject.net.resource.link.LinkResourceService;
|
||||||
|
|
||||||
|
import static com.google.common.base.MoreObjects.toStringHelper;
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encapsulation to manage core transportation.
|
||||||
|
*/
|
||||||
|
public class EncapsulationConstraint extends BooleanConstraint {
|
||||||
|
|
||||||
|
private EncapsulationType encapType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new encapsulation constraint.
|
||||||
|
*
|
||||||
|
* @param encapType the encapsulation type {@link EncapsulationType}
|
||||||
|
*/
|
||||||
|
public EncapsulationConstraint(EncapsulationType encapType) {
|
||||||
|
checkNotNull(encapType, "EncapsulationType cannot be null");
|
||||||
|
this.encapType = encapType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(Link link, LinkResourceService resourceService) {
|
||||||
|
//TODO: validate the availability of the resources for each link in the path.
|
||||||
|
//e.g., availability of MPLSlabels, VLANID
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the encapsulation type required by this constraint.
|
||||||
|
*
|
||||||
|
* @return encapType
|
||||||
|
*/
|
||||||
|
public EncapsulationType encapType() {
|
||||||
|
return encapType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return encapType.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null || getClass() != obj.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final EncapsulationConstraint other = (EncapsulationConstraint) obj;
|
||||||
|
return this.encapType() == other.encapType();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return toStringHelper(this).add("encapType", encapType).toString();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user