blob: 2387576ca5b20532c8c9660155fd21add1e592c7 [file] [log] [blame]
/*
* 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.node;
import java.util.BitSet;
import java.util.List;
import java.util.Map;
import org.onosproject.tetopology.management.api.TeStatus;
import org.onosproject.tetopology.management.api.TeTopologyKey;
/**
* Abstraction of a TE node.
*/
public interface TeNode {
/**
* Indicates that the TE node belongs to an abstract topology.
*/
public static final short BIT_ABSTRACT = 0;
/**
* Indicates that the TE node is disabled.
*/
public static final short BIT_DISABLED = 1;
/**
* Returns the TE node identifier.
*
* @return TE node identifier
*/
long teNodeId();
/**
* Returns the TE node name.
*
* @return the te node name
*/
String name();
/**
* Returns the flags.
*
* @return the flags
*/
BitSet flags();
/**
* Returns the underlay TE topology identifier for the node.
*
* @return the underlay TE topology id
*/
TeTopologyKey underlayTeTopologyId();
/**
* Returns the supporting TE node identifier.
*
* @return the id of the supporting node
*/
TeNodeKey supportingTeNodeId();
/**
* Returns the source TE node identifier.
*
* @return the id of the source node
*/
TeNodeKey sourceTeNodeId();
/**
* Returns the connectivity matrix table of the node.
*
* @return the connectivity matrix table
*/
Map<Long, ConnectivityMatrix> connectivityMatrices();
/**
* Returns the connectivity matrix identified by its entry identifier.
*
* @param entryId connection matrix id
* @return the connectivity matrix
*/
ConnectivityMatrix connectivityMatrix(long entryId);
/**
* Returns a list of TE link identifiers originating from the node.
*
* @return a list of TE link ids
*/
List<Long> teLinkIds();
/**
* Returns a collection of currently known tunnel termination points.
*
* @return a collection of tunnel termination points associated with this node
*/
Map<Long, TunnelTerminationPoint> tunnelTerminationPoints();
/**
* Returns a tunnel termination point identified by its identifier.
*
* @param ttpId tunnel termination point identifier
* @return the tunnel termination point
*/
TunnelTerminationPoint tunnelTerminationPoint(long ttpId);
/**
* Returns the admin status.
*
* @return the adminStatus
*/
TeStatus adminStatus();
/**
* Returns the operational status.
*
* @return the opStatus
*/
TeStatus opStatus();
/**
* Returns a collection of currently known TE termination point identifiers.
*
* @return a collection of termination point ids associated with this node
*/
List<Long> teTerminationPointIds();
}