blob: 723e907be1b52044cfeb0cbf781faba78c506b88 [file] [log] [blame]
/*
* Copyright 2014 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.iptopology.api.link;
import java.util.Set;
import org.onosproject.event.ListenerService;
import org.onosproject.iptopology.api.IpLink;
import org.onosproject.iptopology.api.TerminationPoint;
import org.onosproject.net.DeviceId;
/**
* Service for interacting with the inventory of infrastructure links.
*/
public interface IpLinkService
extends ListenerService<IpLinkEvent, IpLinkListener> {
/**
* Returns the count of all known ip links.
*
* @return number of ip links
*/
int getIpLinkCount();
/**
* Returns a collection of all ip links.
*
* @return all ip links
*/
Iterable<IpLink> getIpLinks();
/**
* Returns set of all ip links leading to and from the
* specified ip device.
*
* @param deviceId device identifier
* @return set of ip device links
*/
Set<IpLink> getIpDeviceLinks(DeviceId deviceId);
/**
* Returns set of all ip links leading from the specified ip device.
*
* @param deviceId device identifier
* @return set of ip device egress links
*/
Set<IpLink> getIpDeviceEgressLinks(DeviceId deviceId);
/**
* Returns set of all ip links leading to the specified ip device.
*
* @param deviceId device identifier
* @return set of ip device ingress links
*/
Set<IpLink> getIpDeviceIngressLinks(DeviceId deviceId);
/**
* Returns set of all ip links leading to and from the
* specified termination point.
*
* @param terminationPoint termination point
* @return set of ip links
*/
Set<IpLink> getIpLinks(TerminationPoint terminationPoint);
/**
* Returns set of all ip links leading from the specified
* termination point.
*
* @param terminationPoint termination point
* @return set of ip device egress links
*/
Set<IpLink> getEgressIpLinks(TerminationPoint terminationPoint);
/**
* Returns set of all ip links leading to the specified
* termination point.
*
* @param terminationPoint termination point
* @return set of ip device ingress links
*/
Set<IpLink> getIngressIpLinks(TerminationPoint terminationPoint);
/**
* Returns the ip links between the specified source
* and destination termination points.
*
* @param src source termination point
* @param dst destination termination point
* @return ip link from source to destination; null if none found
*/
IpLink getIpLink(TerminationPoint src, TerminationPoint dst);
}