Committed by
Gerrit Code Review
1. fix javadoc mistakes
2. add path state proverty to tunnel 3. fix bugs in tunnel creation and query commands. Change-Id: I69b992e47630effe45764c887864d59d3a1eb870
Showing
4 changed files
with
50 additions
and
28 deletions
... | @@ -19,9 +19,9 @@ package org.onosproject.pcep.api; | ... | @@ -19,9 +19,9 @@ package org.onosproject.pcep.api; |
19 | import java.util.List; | 19 | import java.util.List; |
20 | 20 | ||
21 | /** | 21 | /** |
22 | - * Abstraction of a generalized PCEP Tunnel entity (bandwidth pipe) for | 22 | + * Abstraction of a generalized PCEP Tunnel entity (bandwidth pipe) for L2 |
23 | - * L2 networks or L1/L0 networks, representation of e.g., VLAN, L1 ODUk | 23 | + * networks or L1/L0 networks, representation of e.g., VLAN, L1 ODUk connection, |
24 | - * connection, WDM OCH, etc.. | 24 | + * WDM OCH, etc.. |
25 | */ | 25 | */ |
26 | public interface PcepTunnel extends PcepOperator { | 26 | public interface PcepTunnel extends PcepOperator { |
27 | 27 | ||
... | @@ -72,96 +72,111 @@ public interface PcepTunnel extends PcepOperator { | ... | @@ -72,96 +72,111 @@ public interface PcepTunnel extends PcepOperator { |
72 | public static enum PATHTYPE { | 72 | public static enum PATHTYPE { |
73 | 73 | ||
74 | /** | 74 | /** |
75 | - * the preferred path. | 75 | + * Indicates path is the preferred path. |
76 | */ | 76 | */ |
77 | FIRST, | 77 | FIRST, |
78 | 78 | ||
79 | /** | 79 | /** |
80 | - * the alternate path. | 80 | + * Indicates path is the alternate path. |
81 | */ | 81 | */ |
82 | SECOND | 82 | SECOND |
83 | } | 83 | } |
84 | 84 | ||
85 | /** | 85 | /** |
86 | - * Get the type of a tunnel. | 86 | + * Represents state of the path, work normally or broken down. |
87 | + * | ||
88 | + */ | ||
89 | + public static enum PathState { | ||
90 | + NORMAL, BROKEN | ||
91 | + } | ||
92 | + | ||
93 | + /** | ||
94 | + * Returns the type of a tunnel. | ||
87 | * | 95 | * |
88 | * @return tunnel type | 96 | * @return tunnel type |
89 | */ | 97 | */ |
90 | public Type type(); | 98 | public Type type(); |
91 | 99 | ||
92 | /** | 100 | /** |
93 | - * Get the name of a tunnel. | 101 | + * Returns the name of a tunnel. |
94 | * | 102 | * |
95 | * @return tunnel name | 103 | * @return tunnel name |
96 | */ | 104 | */ |
97 | public String name(); | 105 | public String name(); |
98 | 106 | ||
99 | /** | 107 | /** |
100 | - * Get the device id of destination endpoint of a tunnel. | 108 | + * Returns the device id of destination endpoint of a tunnel. |
101 | * | 109 | * |
102 | * @return device id | 110 | * @return device id |
103 | */ | 111 | */ |
104 | public PcepDpid srcDeviceID(); | 112 | public PcepDpid srcDeviceID(); |
105 | 113 | ||
106 | /** | 114 | /** |
107 | - * Get the device id of source endpoint of a tunnel. | 115 | + * Returns the device id of source endpoint of a tunnel. |
108 | * | 116 | * |
109 | * @return device id | 117 | * @return device id |
110 | */ | 118 | */ |
111 | public PcepDpid dstDeviceId(); | 119 | public PcepDpid dstDeviceId(); |
112 | 120 | ||
113 | /** | 121 | /** |
114 | - * Get source port of a tunnel. | 122 | + * Returns source port of a tunnel. |
115 | * | 123 | * |
116 | * @return port number | 124 | * @return port number |
117 | */ | 125 | */ |
118 | public long srcPort(); | 126 | public long srcPort(); |
119 | 127 | ||
120 | /** | 128 | /** |
121 | - * Get destination port of a tunnel. | 129 | + * Returns destination port of a tunnel. |
122 | * | 130 | * |
123 | * @return port number | 131 | * @return port number |
124 | */ | 132 | */ |
125 | public long dstPort(); | 133 | public long dstPort(); |
126 | 134 | ||
127 | /** | 135 | /** |
128 | - * Get the bandwidth of a tunnel. | 136 | + * Returns the bandwidth of a tunnel. |
129 | * | 137 | * |
130 | * @return bandwidth | 138 | * @return bandwidth |
131 | */ | 139 | */ |
132 | public long bandWidth(); | 140 | public long bandWidth(); |
133 | 141 | ||
134 | /** | 142 | /** |
135 | - * Get the tunnel id. | 143 | + * Returns the tunnel id. |
136 | * | 144 | * |
137 | * @return id of the PCEP tunnel | 145 | * @return id of the PCEP tunnel |
138 | */ | 146 | */ |
139 | public long id(); | 147 | public long id(); |
140 | 148 | ||
141 | /** | 149 | /** |
142 | - * Get the detail hop list of a tunnel. | 150 | + * Returns the detail hop list of a tunnel. |
143 | * | 151 | * |
144 | * @return hop list | 152 | * @return hop list |
145 | */ | 153 | */ |
146 | public List<PcepHopNodeDescription> getHopList(); | 154 | public List<PcepHopNodeDescription> getHopList(); |
147 | 155 | ||
148 | /** | 156 | /** |
149 | - * Get the instance of a pcep tunnel,a instance is used to mark the times of a tunnel created. | 157 | + * Returns the instance of a pcep tunnel,a instance is used to mark the times of |
150 | - * instance and id identify a tunnel together. | 158 | + * a tunnel created. instance and id identify a tunnel together. |
151 | * | 159 | * |
152 | * @return the instance of a tunnel. | 160 | * @return the instance of a tunnel. |
153 | */ | 161 | */ |
154 | public int getInstance(); | 162 | public int getInstance(); |
155 | 163 | ||
156 | /** | 164 | /** |
157 | - * Get the ability of a tunnel.NOPROTECTED,SILVER,or DIAMOND. | 165 | + * Returns the state of a path. |
166 | + * | ||
167 | + * @return normal or broken | ||
168 | + */ | ||
169 | + public PathState getPathState(); | ||
170 | + | ||
171 | + /** | ||
172 | + * Returns the ability of a tunnel. | ||
158 | * | 173 | * |
159 | * @return ability of the tunenl | 174 | * @return ability of the tunenl |
160 | */ | 175 | */ |
161 | public Ability getSla(); | 176 | public Ability getSla(); |
162 | 177 | ||
163 | /** | 178 | /** |
164 | - * Get the path type of a path if the tunnel's ability is diamond . | 179 | + * Returns the path type of a path if the tunnel's ability is diamond . |
165 | * | 180 | * |
166 | * @return the type of a path, the preferred or alternate. | 181 | * @return the type of a path, the preferred or alternate. |
167 | */ | 182 | */ |
... | @@ -172,6 +187,6 @@ public interface PcepTunnel extends PcepOperator { | ... | @@ -172,6 +187,6 @@ public interface PcepTunnel extends PcepOperator { |
172 | * | 187 | * |
173 | * @return the tunnel id of a OCH tunnel under lay of a VLAN tunnel. | 188 | * @return the tunnel id of a OCH tunnel under lay of a VLAN tunnel. |
174 | */ | 189 | */ |
175 | - public long underLayTunnelId(); | 190 | + public long underlayTunnelId(); |
176 | 191 | ||
177 | } | 192 | } | ... | ... |
... | @@ -72,7 +72,7 @@ public class TunnelCreateCommand extends AbstractShellCommand { | ... | @@ -72,7 +72,7 @@ public class TunnelCreateCommand extends AbstractShellCommand { |
72 | 72 | ||
73 | @Option(name = "-b", aliases = "--bandwidth", | 73 | @Option(name = "-b", aliases = "--bandwidth", |
74 | description = "The bandwidth attribute of tunnel", required = false, multiValued = false) | 74 | description = "The bandwidth attribute of tunnel", required = false, multiValued = false) |
75 | - String bandwidth = null; | 75 | + String bandwidth = "1024"; |
76 | 76 | ||
77 | private static final String FMT = "The tunnel identity is %s"; | 77 | private static final String FMT = "The tunnel identity is %s"; |
78 | 78 | ||
... | @@ -181,7 +181,7 @@ public class TunnelCreateCommand extends AbstractShellCommand { | ... | @@ -181,7 +181,7 @@ public class TunnelCreateCommand extends AbstractShellCommand { |
181 | 181 | ||
182 | SparseAnnotations annotations = DefaultAnnotations | 182 | SparseAnnotations annotations = DefaultAnnotations |
183 | .builder() | 183 | .builder() |
184 | - .set("bandwidth", bandwidth == null && "".equals(bandwidth) ? "0" : bandwidth) | 184 | + .set("bandwidth", bandwidth == null || "".equals(bandwidth) ? "0" : bandwidth) |
185 | .build(); | 185 | .build(); |
186 | TunnelDescription tunnel = new DefaultTunnelDescription( | 186 | TunnelDescription tunnel = new DefaultTunnelDescription( |
187 | null, | 187 | null, |
... | @@ -197,6 +197,10 @@ public class TunnelCreateCommand extends AbstractShellCommand { | ... | @@ -197,6 +197,10 @@ public class TunnelCreateCommand extends AbstractShellCommand { |
197 | null, | 197 | null, |
198 | annotations); | 198 | annotations); |
199 | TunnelId tunnelId = service.tunnelAdded(tunnel); | 199 | TunnelId tunnelId = service.tunnelAdded(tunnel); |
200 | + if (tunnelId == null) { | ||
201 | + error("Create tunnel failed."); | ||
202 | + return; | ||
203 | + } | ||
200 | print(FMT, tunnelId.id()); | 204 | print(FMT, tunnelId.id()); |
201 | } | 205 | } |
202 | 206 | ... | ... |
... | @@ -205,7 +205,7 @@ public class TunnelQueryCommand extends AbstractShellCommand { | ... | @@ -205,7 +205,7 @@ public class TunnelQueryCommand extends AbstractShellCommand { |
205 | 205 | ||
206 | private String showPath(Path path) { | 206 | private String showPath(Path path) { |
207 | if (path == null) { | 207 | if (path == null) { |
208 | - return ""; | 208 | + return "null"; |
209 | } | 209 | } |
210 | StringBuilder builder = new StringBuilder("("); | 210 | StringBuilder builder = new StringBuilder("("); |
211 | for (Link link : path.links()) { | 211 | for (Link link : path.links()) { | ... | ... |
... | @@ -60,6 +60,7 @@ import org.onosproject.pcep.api.PcepDpid; | ... | @@ -60,6 +60,7 @@ import org.onosproject.pcep.api.PcepDpid; |
60 | import org.onosproject.pcep.api.PcepHopNodeDescription; | 60 | import org.onosproject.pcep.api.PcepHopNodeDescription; |
61 | import org.onosproject.pcep.api.PcepOperator.OperationType; | 61 | import org.onosproject.pcep.api.PcepOperator.OperationType; |
62 | import org.onosproject.pcep.api.PcepTunnel; | 62 | import org.onosproject.pcep.api.PcepTunnel; |
63 | +import org.onosproject.pcep.api.PcepTunnel.PathState; | ||
63 | import org.onosproject.pcep.api.PcepTunnel.PATHTYPE; | 64 | import org.onosproject.pcep.api.PcepTunnel.PATHTYPE; |
64 | import org.onosproject.pcep.api.PcepTunnelListener; | 65 | import org.onosproject.pcep.api.PcepTunnelListener; |
65 | import org.slf4j.Logger; | 66 | import org.slf4j.Logger; |
... | @@ -199,7 +200,7 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -199,7 +200,7 @@ public class PcepTunnelProvider extends AbstractProvider |
199 | Tunnel tunnelOld = tunnelQueryById(tunnel.id()); | 200 | Tunnel tunnelOld = tunnelQueryById(tunnel.id()); |
200 | checkNotNull(tunnelOld, "The tunnel id is not exsited."); | 201 | checkNotNull(tunnelOld, "The tunnel id is not exsited."); |
201 | if (tunnelOld.type() != Tunnel.Type.VLAN) { | 202 | if (tunnelOld.type() != Tunnel.Type.VLAN) { |
202 | - error("Llegal tunnel type. Only support VLAN tunnel deletion."); | 203 | + error("Illegal tunnel type. Only support VLAN tunnel deletion."); |
203 | return; | 204 | return; |
204 | } | 205 | } |
205 | String pcepTunnelId = getPCEPTunnelKey(tunnel.id()); | 206 | String pcepTunnelId = getPCEPTunnelKey(tunnel.id()); |
... | @@ -217,7 +218,7 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -217,7 +218,7 @@ public class PcepTunnelProvider extends AbstractProvider |
217 | 218 | ||
218 | Tunnel tunnelOld = tunnelQueryById(tunnel.id()); | 219 | Tunnel tunnelOld = tunnelQueryById(tunnel.id()); |
219 | if (tunnelOld.type() != Tunnel.Type.VLAN) { | 220 | if (tunnelOld.type() != Tunnel.Type.VLAN) { |
220 | - error("Llegal tunnel type. Only support VLAN tunnel update."); | 221 | + error("Illegal tunnel type. Only support VLAN tunnel update."); |
221 | return; | 222 | return; |
222 | } | 223 | } |
223 | long bandwidth = Long | 224 | long bandwidth = Long |
... | @@ -256,7 +257,7 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -256,7 +257,7 @@ public class PcepTunnelProvider extends AbstractProvider |
256 | 257 | ||
257 | // Creates a path that leads through the given devices. | 258 | // Creates a path that leads through the given devices. |
258 | private Path createPath(List<PcepHopNodeDescription> hopList, | 259 | private Path createPath(List<PcepHopNodeDescription> hopList, |
259 | - PATHTYPE pathtype) { | 260 | + PATHTYPE pathtype, PathState pathState) { |
260 | if (hopList == null || hopList.size() == 0) { | 261 | if (hopList == null || hopList.size() == 0) { |
261 | return null; | 262 | return null; |
262 | } | 263 | } |
... | @@ -270,6 +271,7 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -270,6 +271,7 @@ public class PcepTunnelProvider extends AbstractProvider |
270 | int hopNum = hopList.size() - 2; | 271 | int hopNum = hopList.size() - 2; |
271 | DefaultAnnotations extendAnnotations = DefaultAnnotations.builder() | 272 | DefaultAnnotations extendAnnotations = DefaultAnnotations.builder() |
272 | .set("pathNum", String.valueOf(hopNum)) | 273 | .set("pathNum", String.valueOf(hopNum)) |
274 | + .set("pathState", String.valueOf(pathState)) | ||
273 | .set("pathType", String.valueOf(pathtype)).build(); | 275 | .set("pathType", String.valueOf(pathtype)).build(); |
274 | return new DefaultPath(id(), links, hopNum, extendAnnotations); | 276 | return new DefaultPath(id(), links, hopNum, extendAnnotations); |
275 | } | 277 | } |
... | @@ -299,7 +301,8 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -299,7 +301,8 @@ public class PcepTunnelProvider extends AbstractProvider |
299 | 301 | ||
300 | // add path after codes of tunnel's path merged | 302 | // add path after codes of tunnel's path merged |
301 | Path path = createPath(pcepTunnel.getHopList(), | 303 | Path path = createPath(pcepTunnel.getHopList(), |
302 | - pcepTunnel.getPathType()); | 304 | + pcepTunnel.getPathType(), |
305 | + pcepTunnel.getPathState()); | ||
303 | 306 | ||
304 | OpticalTunnelEndPoint.Type endPointType = null; | 307 | OpticalTunnelEndPoint.Type endPointType = null; |
305 | switch (pcepTunnel.type()) { | 308 | switch (pcepTunnel.type()) { |
... | @@ -347,11 +350,11 @@ public class PcepTunnelProvider extends AbstractProvider | ... | @@ -347,11 +350,11 @@ public class PcepTunnelProvider extends AbstractProvider |
347 | 350 | ||
348 | // a VLAN tunnel always carry OCH tunnel, this annotation is the index | 351 | // a VLAN tunnel always carry OCH tunnel, this annotation is the index |
349 | // of a OCH tunnel. | 352 | // of a OCH tunnel. |
350 | - if (pcepTunnel.underLayTunnelId() != 0) { | 353 | + if (pcepTunnel.underlayTunnelId() != 0) { |
351 | DefaultAnnotations extendAnnotations = DefaultAnnotations | 354 | DefaultAnnotations extendAnnotations = DefaultAnnotations |
352 | .builder() | 355 | .builder() |
353 | .set("underLayTunnelIndex", | 356 | .set("underLayTunnelIndex", |
354 | - String.valueOf(pcepTunnel.underLayTunnelId())).build(); | 357 | + String.valueOf(pcepTunnel.underlayTunnelId())).build(); |
355 | annotations = DefaultAnnotations.merge(annotations, | 358 | annotations = DefaultAnnotations.merge(annotations, |
356 | extendAnnotations); | 359 | extendAnnotations); |
357 | 360 | ... | ... |
-
Please register or login to post a comment