blob: 1760106942ceb748318b69836fe80720c3ba4b59 [file] [log] [blame]
mohamed rahil8ea09d42016-04-19 20:47:21 +05301/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.isis.controller.topology;
17
18import org.onlab.packet.IpAddress;
19
20import java.util.List;
21
22/**
23 * Abstraction of an ISIS Link.
24 */
25public interface IsisLink {
26
27 /**
28 * Returns IP address of the Router.
29 *
30 * @return IP address of router
31 */
32 IpAddress remoteRouterId();
33
34 /**
35 * Returns the area ID for this device.
36 *
37 * @return the area ID
38 */
39 int areaIdOfInterface();
40
41 /**
42 * Returns IP address of the interface.
43 *
44 * @return IP address of the interface
45 */
46 IpAddress interfaceIp();
47
48 /**
49 * Returns the list of link TED details.
50 *
51 * @return linkTed list of link TED
52 */
53 List<IsisLinkTed> linkTed();
54
55 /**
56 * Sets IP address of the router.
57 *
58 * @param routerIp router's IP address
59 */
60 void setRouterIp(IpAddress routerIp);
61
62 /**
63 * Sets the area ID for this device.
64 *
65 * @param areaIdOfInterface area ID
66 */
67 void setAreaIdOfInterface(int areaIdOfInterface);
68
69 /**
70 * Sets IP address of the interface.
71 *
72 * @param interfaceIp IP address of the interface
73 */
74 void setInterfaceIp(IpAddress interfaceIp);
75
76 /**
77 * Sets the list of link TED.
78 *
79 * @param linkTed list of link TED
80 */
81 void setLinkTed(List<IsisLinkTed> linkTed);
82}