blob: 681c70cfceb8bb77bfcf9228917158e886168056 [file] [log] [blame]
sunish vk30637eb2016-02-16 15:19:32 +05301/*
2 * Copyright 2016 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.ospf.controller;
17
18import org.onlab.packet.Ip4Address;
19import org.onlab.packet.Ip6Address;
20import org.onlab.util.Bandwidth;
21
22import java.util.List;
23
24/**
25 * Represents OSPF Link Traffic Engineering parameters.
26 */
27public interface OspfLinkTed {
28
29 /**
30 * Provides maximum bandwidth can be used on the link.
31 *
32 * @return maximum bandwidth
33 */
34 public Bandwidth maximumLink();
35
36 /**
37 * Sets maximum band width.
38 *
39 * @param bandwidth maximum bandwidth
40 */
41 public void setMaximumLink(Bandwidth bandwidth);
42
43 /**
44 * Amount of bandwidth reservable on the link.
45 *
46 * @return unreserved bandwidth
47 */
48 public List<Bandwidth> maxUnResBandwidth();
49
50 /**
51 * Sets max bandwidth that is not reserved on the link.
52 *
53 * @param bandwidth max bandwidth that is not reserved on the link
54 */
55 public void setMaxUnResBandwidth(Bandwidth bandwidth);
56
57 /**
58 * Provides max bandwidth that can be reserved on the link.
59 *
60 * @return max bandwidth reserved
61 */
62 public Bandwidth maxReserved();
63
64 /**
65 * Sets max bandwidth that can be reserved on the link.
66 *
67 * @param bandwidth max bandwidth that can be reserved on the link
68 */
69 public void setMaxReserved(Bandwidth bandwidth);
70
71 /**
72 * Provides Traffic Engineering metric for the link.
73 *
74 * @return Traffic Engineering metric
75 */
76 public Integer teMetric();
77
78 /**
79 * Sets Traffic Engineering metric for the link.
80 *
81 * @param teMetric Traffic Engineering metric for the link
82 */
83 public void setTeMetric(Integer teMetric);
84
85 /**
86 * Provides IPv4 router-Id of local node.
87 *
88 * @return IPv4 router-Id of local node
89 */
90 public List<Ip4Address> ipv4LocRouterId();
91
92 /**
93 * Sets IPv4 router-Id of local node.
94 *
95 * @param routerIds IPv4 router-Id of local node
96 */
97 public void setIpv4LocRouterId(List<Ip4Address> routerIds);
98
99 /**
100 * Provides IPv6 router-Id of local node.
101 *
102 * @return IPv6 router-Id of local node
103 */
104 public List<Ip6Address> ipv6LocRouterId();
105
106 /**
107 * Sets IPv6 router-Id of local node.
108 *
109 * @param routerIds IPv6 router-Id of local node
110 */
111 public void setIpv6LocRouterId(List<Ip6Address> routerIds);
112
113 /**
114 * Provides IPv4 router-Id of remote node.
115 *
116 * @return IPv4 router-Id of remote node
117 */
118 public List<Ip4Address> ipv4RemRouterId();
119
120 /**
121 * Sets IPv4 router-Id of remote node.
122 *
123 * @param routerIds IPv4 router-Id of remote node
124 */
125 public void setIpv4RemRouterId(List<Ip4Address> routerIds);
126
127 /**
128 * Provides IPv6 router-Id of remote node.
129 *
130 * @return IPv6 router-Id of remote node
131 */
132 public List<Ip6Address> ipv6RemRouterId();
133
134 /**
135 * Sets IPv6 router-Id of remote node.
136 *
137 * @param routerIds IPv6 router-Id of remote node
138 */
139 public void setIpv6RemRouterId(List<Ip6Address> routerIds);
140}