| /* |
| * Copyright 2016 Open Networking Foundation |
| * |
| * 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.tetopology.management.api.link; |
| |
| import org.onosproject.tetopology.management.api.EncodingType; |
| import org.onosproject.tetopology.management.api.SwitchingType; |
| import org.onosproject.tetopology.management.api.TeStatus; |
| import org.onosproject.tetopology.management.api.TeTopologyKey; |
| |
| import java.util.BitSet; |
| import java.util.List; |
| |
| /** |
| * Abstraction of a TE link. |
| */ |
| public interface TeLink { |
| /** |
| * Indicates that the TE link belongs to an abstract topology. |
| */ |
| public static final short BIT_ABSTRACT = 0; |
| |
| /** |
| * Indicates that the underlay topology that supports this TE link |
| * is dynamically created as opposed to being created by provisioning. |
| */ |
| public static final short BIT_DYNAMIC = 1; |
| |
| /** |
| * Indicates that the underlay topology is committed to service. |
| */ |
| public static final short BIT_COMMITTED = 2; |
| |
| /** |
| * Indicates that the TE link connects 2 TE domains. |
| */ |
| public static final short BIT_ACCESS_INTERDOMAIN = 3; |
| |
| /** |
| * Indicates that the TE link is not numbered. |
| */ |
| public static final short BIT_UNNUMBERED = 4; |
| |
| /** |
| * Returns the TE link key. |
| * |
| * @return the TE link key |
| */ |
| TeLinkTpKey teLinkKey(); |
| |
| /** |
| * Returns the key of the bi-directional peer TE link. |
| * |
| * @return peer TE link key |
| */ |
| TeLinkTpKey peerTeLinkKey(); |
| |
| /** |
| * Returns the flags of this TE link. |
| * |
| * @return the flags |
| */ |
| BitSet flags(); |
| |
| /** |
| * Returns the network layer switching type for this link. |
| * |
| * @return the network layer switching type |
| */ |
| SwitchingType switchingLayer(); |
| |
| /** |
| * Returns the network layer encoding type for this link. |
| * |
| * @return the encoding type |
| */ |
| EncodingType encodingLayer(); |
| |
| /** |
| * Returns the external link. |
| * |
| * @return the external link |
| */ |
| ExternalLink externalLink(); |
| |
| /** |
| * Returns the underlay TE topology identifier for the link. |
| * |
| * @return the underlay TE topology id |
| */ |
| TeTopologyKey underlayTeTopologyId(); |
| |
| /** |
| * Returns the primary path. |
| * |
| * @return underlay primary path |
| */ |
| UnderlayPrimaryPath primaryPath(); |
| |
| /** |
| * Returns the backup paths. |
| * |
| * @return list of underlay backup paths |
| */ |
| List<UnderlayBackupPath> backupPaths(); |
| |
| /** |
| * Returns the supporting tunnel protection type. |
| * |
| * @return the tunnel protection type |
| */ |
| TunnelProtectionType tunnelProtectionType(); |
| |
| /** |
| * Returns the supporting tunnel's source tunnel termination point |
| * identifier. |
| * |
| * @return the source TTP id |
| */ |
| long sourceTtpId(); |
| |
| /** |
| * Returns the supporting tunnel's destination tunnel termination |
| * point identifier. |
| * |
| * @return the destination TTP id |
| */ |
| long destinationTtpId(); |
| |
| /** |
| * Returns the supporting tunnel identifier. |
| * |
| * @return the supporting tunnel id |
| */ |
| TeTunnelId teTunnelId(); |
| |
| /** |
| * Returns the supporting TE link identifier. |
| * |
| * @return the supporting TE link id |
| */ |
| TeLinkTpGlobalKey supportingTeLinkId(); |
| |
| /** |
| * Returns the source TE link identifier. |
| * |
| * @return the source link id |
| */ |
| TeLinkTpGlobalKey sourceTeLinkId(); |
| |
| /** |
| * Returns the link cost. |
| * |
| * @return the cost |
| */ |
| Long cost(); |
| |
| /** |
| * Returns the link delay. |
| * |
| * @return the delay |
| */ |
| Long delay(); |
| |
| /** |
| * Returns the link SRLG values. |
| * |
| * @return the srlgs |
| */ |
| List<Long> srlgs(); |
| |
| /** |
| * Returns the link administrative group. |
| * |
| * @return the adminGroup |
| */ |
| Long administrativeGroup(); |
| |
| /** |
| * Returns the supported inter-layer locks. |
| * |
| * @return the inter-layer locks |
| */ |
| List<Long> interLayerLocks(); |
| |
| /** |
| * Returns the maximum bandwidth at each priority level. |
| * |
| * @return a list of maximum bandwidths |
| */ |
| float[] maxBandwidth(); |
| |
| /** |
| * Returns the available bandwidth at each priority level. |
| * |
| * @return a list of available bandwidths |
| */ |
| float[] availBandwidth(); |
| |
| /** |
| * Returns the maximum available bandwidth for a LSP at each priority level. |
| * |
| * @return a list of maximum available bandwidths |
| */ |
| float[] maxAvailLspBandwidth(); |
| |
| /** |
| * Returns the minimum available bandwidth for a LSP at each priority level. |
| * |
| * @return a list of minimum available bandwidths |
| */ |
| float[] minAvailLspBandwidth(); |
| |
| /** |
| * Returns the administrative status of this TE link. |
| * |
| * @return the admin status |
| */ |
| TeStatus adminStatus(); |
| |
| /** |
| * Returns the operational status of this TE link. |
| * |
| * @return the operational status |
| */ |
| TeStatus opStatus(); |
| |
| /** |
| * Returns the link ODUk resources. |
| * |
| * @return the ODUk resources |
| */ |
| OduResource oduResource(); |
| } |