Committed by
Gerrit Code Review
ONOS-4665 OSPF refactoring to align with ISIS design
Change-Id: If4a15d5a1c4ae3a5b2f877fa688ce07972749205
Showing
104 changed files
with
588 additions
and
763 deletions
1 | /* | 1 | /* |
2 | - * Copyright 2016-present Open Networking Laboratory | 2 | + * Copyright 2016 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. | ... | ... |
1 | /* | 1 | /* |
2 | - * Copyright 2016-present Open Networking Laboratory | 2 | + * Copyright 2016 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. | ... | ... |
... | @@ -98,4 +98,11 @@ public interface LsdbAge { | ... | @@ -98,4 +98,11 @@ public interface LsdbAge { |
98 | * @param lsaWrapper wrapper instance | 98 | * @param lsaWrapper wrapper instance |
99 | */ | 99 | */ |
100 | public void removeLsaFromBin(LsaWrapper lsaWrapper); | 100 | public void removeLsaFromBin(LsaWrapper lsaWrapper); |
101 | + | ||
102 | + /** | ||
103 | + * Gets the age counter roll over. | ||
104 | + * | ||
105 | + * @return the age counter roll over | ||
106 | + */ | ||
107 | + public int getAgeCounterRollOver(); | ||
101 | } | 108 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -48,7 +48,8 @@ public interface OspfAgent { | ... | @@ -48,7 +48,8 @@ public interface OspfAgent { |
48 | /** | 48 | /** |
49 | * Notifies that got a packet of link from network and need do processing. | 49 | * Notifies that got a packet of link from network and need do processing. |
50 | * | 50 | * |
51 | - * @param ospfRouter router instance | 51 | + * @param ospfRouter router instance |
52 | + * @param ospfLinkTed link ted instance | ||
52 | */ | 53 | */ |
53 | - void deleteLink(OspfRouter ospfRouter); | 54 | + void deleteLink(OspfRouter ospfRouter, OspfLinkTed ospfLinkTed); |
54 | } | 55 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -59,7 +59,7 @@ public interface OspfArea { | ... | @@ -59,7 +59,7 @@ public interface OspfArea { |
59 | * | 59 | * |
60 | * @return LSDB instance for this area | 60 | * @return LSDB instance for this area |
61 | */ | 61 | */ |
62 | - public OspfLsdb database(); | 62 | + OspfLsdb database(); |
63 | 63 | ||
64 | /** | 64 | /** |
65 | * Checks whether an instance of the given LSA exists in the database. | 65 | * Checks whether an instance of the given LSA exists in the database. |
... | @@ -67,19 +67,12 @@ public interface OspfArea { | ... | @@ -67,19 +67,12 @@ public interface OspfArea { |
67 | * @param lookupLsa LSA instance to lookup | 67 | * @param lookupLsa LSA instance to lookup |
68 | * @return LSA wrapper instance which contains the LSA | 68 | * @return LSA wrapper instance which contains the LSA |
69 | */ | 69 | */ |
70 | - public LsaWrapper lsaLookup(OspfLsa lookupLsa); | 70 | + LsaWrapper lsaLookup(OspfLsa lookupLsa); |
71 | 71 | ||
72 | /** | 72 | /** |
73 | * Initializes link state database, this acts as a place holder for storing the received LSA. | 73 | * Initializes link state database, this acts as a place holder for storing the received LSA. |
74 | */ | 74 | */ |
75 | - public void initializeDb(); | 75 | + void initializeDb(); |
76 | - | ||
77 | - /** | ||
78 | - * Sets the stub cost. | ||
79 | - * | ||
80 | - * @param stubCost stub cost | ||
81 | - */ | ||
82 | - void setStubCost(int stubCost); | ||
83 | 76 | ||
84 | /** | 77 | /** |
85 | * Sets the options value. | 78 | * Sets the options value. |
... | @@ -89,38 +82,6 @@ public interface OspfArea { | ... | @@ -89,38 +82,6 @@ public interface OspfArea { |
89 | void setOptions(int options); | 82 | void setOptions(int options); |
90 | 83 | ||
91 | /** | 84 | /** |
92 | - * Gets area address ranges to which this area belongs to. | ||
93 | - * | ||
94 | - * @return list of area address ranges | ||
95 | - */ | ||
96 | - List<OspfAreaAddressRange> addressRanges(); | ||
97 | - | ||
98 | - /** | ||
99 | - * Sets the area address ranges to which this area belongs to. | ||
100 | - * | ||
101 | - * @param addrRangeList list of area address ranges | ||
102 | - */ | ||
103 | - void setAddressRanges(List<OspfAreaAddressRange> addrRangeList); | ||
104 | - | ||
105 | - /** | ||
106 | - * Gets whether the area is transit capable or not. | ||
107 | - * This indicates whether the area can carry data traffic that neither originates | ||
108 | - * nor terminates in the area itself. | ||
109 | - * | ||
110 | - * @return true if transit capable, else false | ||
111 | - */ | ||
112 | - boolean isTransitCapability(); | ||
113 | - | ||
114 | - /** | ||
115 | - * Sets whether the area is transit capable or not. | ||
116 | - * This indicates whether the area can carry data traffic that neither originates | ||
117 | - * nor terminates in the area itself. | ||
118 | - * | ||
119 | - * @param transitCapability true if transit capable, else false | ||
120 | - */ | ||
121 | - void setTransitCapability(boolean transitCapability); | ||
122 | - | ||
123 | - /** | ||
124 | * Gets external routing capability. | 85 | * Gets external routing capability. |
125 | * This indicates Whether AS-external-LSAs will be flooded into/throughout the area. | 86 | * This indicates Whether AS-external-LSAs will be flooded into/throughout the area. |
126 | * | 87 | * |
... | @@ -137,13 +98,6 @@ public interface OspfArea { | ... | @@ -137,13 +98,6 @@ public interface OspfArea { |
137 | void setExternalRoutingCapability(boolean externalRoutingCapability); | 98 | void setExternalRoutingCapability(boolean externalRoutingCapability); |
138 | 99 | ||
139 | /** | 100 | /** |
140 | - * Gets the stub cost, which indicates if the area has been configured as a stub area. | ||
141 | - * | ||
142 | - * @return stub cost | ||
143 | - */ | ||
144 | - int stubCost(); | ||
145 | - | ||
146 | - /** | ||
147 | * Gets if the router is opaque enabled or not. | 101 | * Gets if the router is opaque enabled or not. |
148 | * This indicates whether the router accepts opaque LSA. | 102 | * This indicates whether the router accepts opaque LSA. |
149 | * | 103 | * |
... | @@ -156,14 +110,14 @@ public interface OspfArea { | ... | @@ -156,14 +110,14 @@ public interface OspfArea { |
156 | * | 110 | * |
157 | * @return list of interfaces | 111 | * @return list of interfaces |
158 | */ | 112 | */ |
159 | - List<OspfInterface> getInterfacesLst(); | 113 | + List<OspfInterface> ospfInterfaceList(); |
160 | 114 | ||
161 | /** | 115 | /** |
162 | * Sets the list of interfaces attached to this area. | 116 | * Sets the list of interfaces attached to this area. |
163 | * | 117 | * |
164 | * @param interfacesLst list of interface instances | 118 | * @param interfacesLst list of interface instances |
165 | */ | 119 | */ |
166 | - void setInterfacesLst(List<OspfInterface> interfacesLst); | 120 | + void setOspfInterfaceList(List<OspfInterface> interfacesLst); |
167 | 121 | ||
168 | /** | 122 | /** |
169 | * Gets the options value, which indicates the supported optional capabilities. | 123 | * Gets the options value, which indicates the supported optional capabilities. | ... | ... |
... | @@ -15,6 +15,8 @@ | ... | @@ -15,6 +15,8 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.ospf.controller; | 16 | package org.onosproject.ospf.controller; |
17 | 17 | ||
18 | +import com.fasterxml.jackson.databind.JsonNode; | ||
19 | + | ||
18 | import java.util.List; | 20 | import java.util.List; |
19 | import java.util.Set; | 21 | import java.util.Set; |
20 | 22 | ||
... | @@ -55,9 +57,9 @@ public interface OspfController { | ... | @@ -55,9 +57,9 @@ public interface OspfController { |
55 | /** | 57 | /** |
56 | * Updates configuration of processes. | 58 | * Updates configuration of processes. |
57 | * | 59 | * |
58 | - * @param processes process info to update | 60 | + * @param processesNode process info to update |
59 | */ | 61 | */ |
60 | - public void updateConfig(List<OspfProcess> processes); | 62 | + void updateConfig(JsonNode processesNode); |
61 | 63 | ||
62 | /** | 64 | /** |
63 | * Deletes configuration parameters. | 65 | * Deletes configuration parameters. |
... | @@ -65,7 +67,7 @@ public interface OspfController { | ... | @@ -65,7 +67,7 @@ public interface OspfController { |
65 | * @param processes list of process instance | 67 | * @param processes list of process instance |
66 | * @param attribute attribute to delete | 68 | * @param attribute attribute to delete |
67 | */ | 69 | */ |
68 | - public void deleteConfig(List<OspfProcess> processes, String attribute); | 70 | + void deleteConfig(List<OspfProcess> processes, String attribute); |
69 | 71 | ||
70 | /** | 72 | /** |
71 | * Gets the list of listeners registered for router events. | 73 | * Gets the list of listeners registered for router events. | ... | ... |
... | @@ -15,9 +15,10 @@ | ... | @@ -15,9 +15,10 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.ospf.controller; | 16 | package org.onosproject.ospf.controller; |
17 | 17 | ||
18 | +import org.jboss.netty.channel.ChannelHandlerContext; | ||
18 | import org.onlab.packet.Ip4Address; | 19 | import org.onlab.packet.Ip4Address; |
19 | 20 | ||
20 | -import java.util.HashMap; | 21 | +import java.util.Map; |
21 | 22 | ||
22 | /** | 23 | /** |
23 | * Represents an OSPF Interface. | 24 | * Represents an OSPF Interface. |
... | @@ -25,34 +26,39 @@ import java.util.HashMap; | ... | @@ -25,34 +26,39 @@ import java.util.HashMap; |
25 | public interface OspfInterface { | 26 | public interface OspfInterface { |
26 | 27 | ||
27 | /** | 28 | /** |
28 | - * Gets network mask of the interface. | 29 | + * Returns interface index. |
29 | * | 30 | * |
30 | - * @return network mask | 31 | + * @return interface index |
31 | */ | 32 | */ |
32 | - Ip4Address ipNetworkMask(); | 33 | + public int interfaceIndex(); |
33 | 34 | ||
34 | /** | 35 | /** |
35 | - * Sets area id, to which the interface belongs. | 36 | + * Set interface index. |
36 | * | 37 | * |
37 | - * @param areaId area identifier | 38 | + * @param interfaceIndex interface index |
38 | */ | 39 | */ |
39 | - void setAreaId(int areaId); | 40 | + public void setInterfaceIndex(int interfaceIndex); |
40 | 41 | ||
41 | /** | 42 | /** |
42 | - * Sets the authentication key. | 43 | + * Returns OSPF area instance. |
43 | - * Interface uses this to authenticate while establishing communication with other routers. | ||
44 | * | 44 | * |
45 | - * @param authKey represents authentication key | 45 | + * @return OSPF area instance |
46 | */ | 46 | */ |
47 | - void setAuthKey(String authKey); | 47 | + public OspfArea ospfArea(); |
48 | 48 | ||
49 | /** | 49 | /** |
50 | - * Sets the authentication type, | 50 | + * Sets OSPF area instance. |
51 | - * Interface uses this to authenticate while establishing communication with other routers. | ||
52 | * | 51 | * |
53 | - * @param authType authType represents authentication type | 52 | + * @param ospfArea OSPF area instance |
53 | + */ | ||
54 | + public void setOspfArea(OspfArea ospfArea); | ||
55 | + | ||
56 | + /** | ||
57 | + * Gets network mask of the interface. | ||
58 | + * | ||
59 | + * @return network mask | ||
54 | */ | 60 | */ |
55 | - void setAuthType(String authType); | 61 | + Ip4Address ipNetworkMask(); |
56 | 62 | ||
57 | /** | 63 | /** |
58 | * Sets the value of BDR. | 64 | * Sets the value of BDR. |
... | @@ -87,13 +93,6 @@ public interface OspfInterface { | ... | @@ -87,13 +93,6 @@ public interface OspfInterface { |
87 | void setRouterDeadIntervalTime(int routerDeadIntervalTime); | 93 | void setRouterDeadIntervalTime(int routerDeadIntervalTime); |
88 | 94 | ||
89 | /** | 95 | /** |
90 | - * Sets the interface cost which is the cost of sending a data packet onto the network. | ||
91 | - * | ||
92 | - * @param interfaceCost an integer represents interface cost | ||
93 | - */ | ||
94 | - void setInterfaceCost(int interfaceCost); | ||
95 | - | ||
96 | - /** | ||
97 | * Sets interface type. | 96 | * Sets interface type. |
98 | * This indicates whether the interface is on point to point mode or broadcast mode. | 97 | * This indicates whether the interface is on point to point mode or broadcast mode. |
99 | * | 98 | * |
... | @@ -116,22 +115,6 @@ public interface OspfInterface { | ... | @@ -116,22 +115,6 @@ public interface OspfInterface { |
116 | void setIpNetworkMask(Ip4Address ipNetworkMask); | 115 | void setIpNetworkMask(Ip4Address ipNetworkMask); |
117 | 116 | ||
118 | /** | 117 | /** |
119 | - * Sets the polling interval. | ||
120 | - * Polling interval indicates the interval until when the Hello Packets are | ||
121 | - * sent to a dead neighbor. | ||
122 | - * | ||
123 | - * @param pollInterval an integer represents poll interval | ||
124 | - */ | ||
125 | - void setPollInterval(int pollInterval); | ||
126 | - | ||
127 | - /** | ||
128 | - * Sets transmission delay. | ||
129 | - * | ||
130 | - * @param transmitDelay an integer represents delay | ||
131 | - */ | ||
132 | - void setTransmitDelay(int transmitDelay); | ||
133 | - | ||
134 | - /** | ||
135 | * Sets retransmit interval which indicates the number of seconds between LSA retransmissions. | 118 | * Sets retransmit interval which indicates the number of seconds between LSA retransmissions. |
136 | * | 119 | * |
137 | * @param reTransmitInterval an integer represents interval | 120 | * @param reTransmitInterval an integer represents interval |
... | @@ -153,13 +136,6 @@ public interface OspfInterface { | ... | @@ -153,13 +136,6 @@ public interface OspfInterface { |
153 | void setRouterPriority(int routerPriority); | 136 | void setRouterPriority(int routerPriority); |
154 | 137 | ||
155 | /** | 138 | /** |
156 | - * Gets the area id to which router belongs. | ||
157 | - * | ||
158 | - * @return areaId an integer value | ||
159 | - */ | ||
160 | - int areaId(); | ||
161 | - | ||
162 | - /** | ||
163 | * Gets the IP address. | 139 | * Gets the IP address. |
164 | * | 140 | * |
165 | * @return an string represents IP address | 141 | * @return an string represents IP address |
... | @@ -181,32 +157,11 @@ public interface OspfInterface { | ... | @@ -181,32 +157,11 @@ public interface OspfInterface { |
181 | int mtu(); | 157 | int mtu(); |
182 | 158 | ||
183 | /** | 159 | /** |
184 | - * Gets interface cost. | ||
185 | - * | ||
186 | - * @return an integer representing interface cost | ||
187 | - */ | ||
188 | - int interfaceCost(); | ||
189 | - | ||
190 | - /** | ||
191 | * Gets the list of neighbors associated with the interface. | 160 | * Gets the list of neighbors associated with the interface. |
192 | * | 161 | * |
193 | * @return listOfNeighbors as key value pair | 162 | * @return listOfNeighbors as key value pair |
194 | */ | 163 | */ |
195 | - HashMap<String, OspfNbr> listOfNeighbors(); | 164 | + Map<String, OspfNbr> listOfNeighbors(); |
196 | - | ||
197 | - /** | ||
198 | - * Gets poll interval. | ||
199 | - * | ||
200 | - * @return pollInterval an integer representing poll interval | ||
201 | - */ | ||
202 | - int pollInterval(); | ||
203 | - | ||
204 | - /** | ||
205 | - * Gets transmission delay. | ||
206 | - * | ||
207 | - * @return transmitDelay an integer representing delay | ||
208 | - */ | ||
209 | - int transmitDelay(); | ||
210 | 165 | ||
211 | /** | 166 | /** |
212 | * Gets the IP address of the BDR. | 167 | * Gets the IP address of the BDR. |
... | @@ -223,20 +178,6 @@ public interface OspfInterface { | ... | @@ -223,20 +178,6 @@ public interface OspfInterface { |
223 | Ip4Address dr(); | 178 | Ip4Address dr(); |
224 | 179 | ||
225 | /** | 180 | /** |
226 | - * Gets authentication key. | ||
227 | - * | ||
228 | - * @return authKey represents authentication key | ||
229 | - */ | ||
230 | - String authKey(); | ||
231 | - | ||
232 | - /** | ||
233 | - * Gets authentication type. | ||
234 | - * | ||
235 | - * @return authType represents authentication type | ||
236 | - */ | ||
237 | - String authType(); | ||
238 | - | ||
239 | - /** | ||
240 | * Gets hello interval time in seconds, this defines how often we send the hello packet. | 181 | * Gets hello interval time in seconds, this defines how often we send the hello packet. |
241 | * | 182 | * |
242 | * @return hello interval time in seconds | 183 | * @return hello interval time in seconds |
... | @@ -294,4 +235,54 @@ public interface OspfInterface { | ... | @@ -294,4 +235,54 @@ public interface OspfInterface { |
294 | * @param lsaKey key used to store lsa in map | 235 | * @param lsaKey key used to store lsa in map |
295 | */ | 236 | */ |
296 | void removeLsaFromNeighborMap(String lsaKey); | 237 | void removeLsaFromNeighborMap(String lsaKey); |
238 | + | ||
239 | + /** | ||
240 | + * When an OSPF message received it is handed over to this method. | ||
241 | + * Based on the type of the OSPF message received it will be handed over | ||
242 | + * to corresponding message handler methods. | ||
243 | + * | ||
244 | + * @param ospfMessage received OSPF message | ||
245 | + * @param ctx channel handler context instance. | ||
246 | + * @throws Exception might throws exception | ||
247 | + */ | ||
248 | + void processOspfMessage(OspfMessage ospfMessage, ChannelHandlerContext ctx) throws Exception; | ||
249 | + | ||
250 | + /** | ||
251 | + * Represents an interface is up and connected. | ||
252 | + * | ||
253 | + * @throws Exception might throws exception | ||
254 | + */ | ||
255 | + void interfaceUp() throws Exception; | ||
256 | + | ||
257 | + /** | ||
258 | + * Starts the timer which waits for configured seconds and sends Delayed Ack Packet. | ||
259 | + */ | ||
260 | + void startDelayedAckTimer(); | ||
261 | + | ||
262 | + /** | ||
263 | + * Stops the delayed acknowledge timer. | ||
264 | + */ | ||
265 | + void stopDelayedAckTimer(); | ||
266 | + | ||
267 | + /** | ||
268 | + * Starts the hello timer which sends hello packet every configured seconds. | ||
269 | + */ | ||
270 | + void startHelloTimer(); | ||
271 | + | ||
272 | + /** | ||
273 | + * Stops the hello timer. | ||
274 | + */ | ||
275 | + void stopHelloTimer(); | ||
276 | + | ||
277 | + /** | ||
278 | + * Gets called when an interface is down. | ||
279 | + * All interface variables are reset, and interface timers disabled. | ||
280 | + * Also all neighbor connections associated with the interface are destroyed. | ||
281 | + */ | ||
282 | + void interfaceDown(); | ||
283 | + | ||
284 | + /** | ||
285 | + * Removes all the neighbors. | ||
286 | + */ | ||
287 | + void removeNeighbors(); | ||
297 | } | 288 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -31,7 +31,8 @@ public interface OspfLinkListener { | ... | @@ -31,7 +31,8 @@ public interface OspfLinkListener { |
31 | /** | 31 | /** |
32 | * Notifies that a link got removed from network. | 32 | * Notifies that a link got removed from network. |
33 | * | 33 | * |
34 | - * @param ospfRouter router instance | 34 | + * @param ospfRouter router instance |
35 | + * @param ospfLinkTed link TED information of router | ||
35 | */ | 36 | */ |
36 | - void deleteLink(OspfRouter ospfRouter); | 37 | + void deleteLink(OspfRouter ospfRouter, OspfLinkTed ospfLinkTed); |
37 | } | 38 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -13,12 +13,10 @@ | ... | @@ -13,12 +13,10 @@ |
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.onosproject.ospf.protocol.ospfpacket; | 16 | +package org.onosproject.ospf.controller; |
17 | 17 | ||
18 | import org.jboss.netty.buffer.ChannelBuffer; | 18 | import org.jboss.netty.buffer.ChannelBuffer; |
19 | import org.onlab.packet.Ip4Address; | 19 | import org.onlab.packet.Ip4Address; |
20 | -import org.onosproject.ospf.exceptions.OspfParseException; | ||
21 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | ||
22 | 20 | ||
23 | /** | 21 | /** |
24 | * Representation of an OSPF message. | 22 | * Representation of an OSPF message. |
... | @@ -26,6 +24,20 @@ import org.onosproject.ospf.protocol.util.OspfPacketType; | ... | @@ -26,6 +24,20 @@ import org.onosproject.ospf.protocol.util.OspfPacketType; |
26 | public interface OspfMessage { | 24 | public interface OspfMessage { |
27 | 25 | ||
28 | /** | 26 | /** |
27 | + * Returns the interface index on which the message received. | ||
28 | + * | ||
29 | + * @return interface index on which the message received | ||
30 | + */ | ||
31 | + int interfaceIndex(); | ||
32 | + | ||
33 | + /** | ||
34 | + * Sets the interface index on which the message received. | ||
35 | + * | ||
36 | + * @param interfaceIndex interface index on which the message received | ||
37 | + */ | ||
38 | + void setInterfaceIndex(int interfaceIndex); | ||
39 | + | ||
40 | + /** | ||
29 | * Returns the type of OSPF message. | 41 | * Returns the type of OSPF message. |
30 | * | 42 | * |
31 | * @return OSPF message type | 43 | * @return OSPF message type |
... | @@ -36,9 +48,9 @@ public interface OspfMessage { | ... | @@ -36,9 +48,9 @@ public interface OspfMessage { |
36 | * Reads from ChannelBuffer and initializes the type of LSA. | 48 | * Reads from ChannelBuffer and initializes the type of LSA. |
37 | * | 49 | * |
38 | * @param channelBuffer channel buffer instance | 50 | * @param channelBuffer channel buffer instance |
39 | - * @throws OspfParseException might throws exception while parsing buffer | 51 | + * @throws Exception might throws exception while parsing buffer |
40 | */ | 52 | */ |
41 | - void readFrom(ChannelBuffer channelBuffer) throws OspfParseException; | 53 | + void readFrom(ChannelBuffer channelBuffer) throws Exception; |
42 | 54 | ||
43 | /** | 55 | /** |
44 | * Returns OSPFMessage as byte array. | 56 | * Returns OSPFMessage as byte array. | ... | ... |
... | @@ -189,4 +189,36 @@ public interface OspfNbr { | ... | @@ -189,4 +189,36 @@ public interface OspfNbr { |
189 | * @return neighbor's state | 189 | * @return neighbor's state |
190 | */ | 190 | */ |
191 | OspfNeighborState getState(); | 191 | OspfNeighborState getState(); |
192 | + | ||
193 | + /** | ||
194 | + * Starts the inactivity timer. | ||
195 | + */ | ||
196 | + void startInactivityTimeCheck(); | ||
197 | + | ||
198 | + /** | ||
199 | + * Stops the inactivity timer. | ||
200 | + */ | ||
201 | + void stopInactivityTimeCheck(); | ||
202 | + | ||
203 | + /** | ||
204 | + * Sets router dead interval. | ||
205 | + * | ||
206 | + * @param routerDeadInterval router dead interval | ||
207 | + */ | ||
208 | + void setRouterDeadInterval(int routerDeadInterval); | ||
209 | + | ||
210 | + /** | ||
211 | + * Stops the flooding timer. | ||
212 | + */ | ||
213 | + void stopFloodingTimer(); | ||
214 | + | ||
215 | + /** | ||
216 | + * Stops the Dd Retransmission executor task. | ||
217 | + */ | ||
218 | + void stopRxMtDdTimer(); | ||
219 | + | ||
220 | + /** | ||
221 | + * Stops Ls request retransmission executor task. | ||
222 | + */ | ||
223 | + void stopRxMtLsrTimer(); | ||
192 | } | 224 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -13,17 +13,32 @@ | ... | @@ -13,17 +13,32 @@ |
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.onosproject.ospf.protocol.util; | 16 | +package org.onosproject.ospf.controller; |
17 | 17 | ||
18 | /** | 18 | /** |
19 | * Representation of different OSPF packet types. | 19 | * Representation of different OSPF packet types. |
20 | */ | 20 | */ |
21 | public enum OspfPacketType { | 21 | public enum OspfPacketType { |
22 | 22 | ||
23 | + /** | ||
24 | + * OSPF hello packet. | ||
25 | + */ | ||
23 | HELLO(1), | 26 | HELLO(1), |
27 | + /** | ||
28 | + * OSPF device description packet. | ||
29 | + */ | ||
24 | DD(2), | 30 | DD(2), |
31 | + /** | ||
32 | + * OSPF link state request packet. | ||
33 | + */ | ||
25 | LSREQUEST(3), | 34 | LSREQUEST(3), |
35 | + /** | ||
36 | + * OSPF link state update packet. | ||
37 | + */ | ||
26 | LSUPDATE(4), | 38 | LSUPDATE(4), |
39 | + /** | ||
40 | + * OSPF link state acknowledge packet. | ||
41 | + */ | ||
27 | LSAACK(5); | 42 | LSAACK(5); |
28 | 43 | ||
29 | private int value; | 44 | private int value; | ... | ... |
... | @@ -50,7 +50,7 @@ public interface TopologyForDeviceAndLink { | ... | @@ -50,7 +50,7 @@ public interface TopologyForDeviceAndLink { |
50 | /** | 50 | /** |
51 | * Sets link information. | 51 | * Sets link information. |
52 | * | 52 | * |
53 | - * @param key key used to store in map | 53 | + * @param key key used to store in map |
54 | * @param linkInformationMap link information instance | 54 | * @param linkInformationMap link information instance |
55 | */ | 55 | */ |
56 | void setLinkInformationMap(String key, LinkInformation linkInformationMap); | 56 | void setLinkInformationMap(String key, LinkInformation linkInformationMap); |
... | @@ -109,4 +109,56 @@ public interface TopologyForDeviceAndLink { | ... | @@ -109,4 +109,56 @@ public interface TopologyForDeviceAndLink { |
109 | * @param ospfArea area instance | 109 | * @param ospfArea area instance |
110 | */ | 110 | */ |
111 | void updateLinkInformation(OspfLsa ospfLsa, OspfArea ospfArea); | 111 | void updateLinkInformation(OspfLsa ospfLsa, OspfArea ospfArea); |
112 | + | ||
113 | + /** | ||
114 | + * Gets deviceInformation as map. | ||
115 | + * | ||
116 | + * @return deviceInformationMap to delete from core | ||
117 | + */ | ||
118 | + Map<String, DeviceInformation> deviceInformationMapToDelete(); | ||
119 | + | ||
120 | + /** | ||
121 | + * Sets deviceInformation as map. | ||
122 | + * | ||
123 | + * @param key key to store in device info map | ||
124 | + * @param deviceInformationMapToDelete device information instance | ||
125 | + */ | ||
126 | + void setDeviceInformationMapToDelete(String key, DeviceInformation deviceInformationMapToDelete); | ||
127 | + | ||
128 | + /** | ||
129 | + * Removes Device Information from deviceInformationMapToDelete. | ||
130 | + * | ||
131 | + * @param key key to remove device information | ||
132 | + */ | ||
133 | + void removeDeviceInformationMapFromDeleteMap(String key); | ||
134 | + | ||
135 | + /** | ||
136 | + * Gets deviceInformation as map for Point-To-Point. | ||
137 | + * | ||
138 | + * @return deviceInformationMap | ||
139 | + */ | ||
140 | + Map<String, DeviceInformation> deviceInformationMapForPointToPoint(); | ||
141 | + | ||
142 | + /** | ||
143 | + * Sets deviceInformation as map for Point-To-Point.. | ||
144 | + * | ||
145 | + * @param key key to store in device info | ||
146 | + * @param deviceInformationMap device information instance | ||
147 | + */ | ||
148 | + void setDeviceInformationMapForPointToPoint(String key, DeviceInformation deviceInformationMap); | ||
149 | + | ||
150 | + /** | ||
151 | + * Gets linkInformation as map for PointToPoint. | ||
152 | + * | ||
153 | + * @return linkInformationMap | ||
154 | + */ | ||
155 | + Map<String, LinkInformation> linkInformationMapForPointToPoint(); | ||
156 | + | ||
157 | + /** | ||
158 | + * Sets linkInformation as map for PointToPoint. | ||
159 | + * | ||
160 | + * @param key key to store link info | ||
161 | + * @param linkInformationMap link information instance | ||
162 | + */ | ||
163 | + void setLinkInformationMapForPointToPoint(String key, LinkInformation linkInformationMap); | ||
112 | } | 164 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -21,7 +21,6 @@ import com.google.common.base.Objects; | ... | @@ -21,7 +21,6 @@ import com.google.common.base.Objects; |
21 | import org.onlab.packet.Ip4Address; | 21 | import org.onlab.packet.Ip4Address; |
22 | import org.onosproject.ospf.controller.LsaWrapper; | 22 | import org.onosproject.ospf.controller.LsaWrapper; |
23 | import org.onosproject.ospf.controller.OspfArea; | 23 | import org.onosproject.ospf.controller.OspfArea; |
24 | -import org.onosproject.ospf.controller.OspfAreaAddressRange; | ||
25 | import org.onosproject.ospf.controller.OspfInterface; | 24 | import org.onosproject.ospf.controller.OspfInterface; |
26 | import org.onosproject.ospf.controller.OspfLsa; | 25 | import org.onosproject.ospf.controller.OspfLsa; |
27 | import org.onosproject.ospf.controller.OspfLsaType; | 26 | import org.onosproject.ospf.controller.OspfLsaType; |
... | @@ -54,28 +53,14 @@ import java.util.Map; | ... | @@ -54,28 +53,14 @@ import java.util.Map; |
54 | public class OspfAreaImpl implements OspfArea { | 53 | public class OspfAreaImpl implements OspfArea { |
55 | private static final Logger log = LoggerFactory.getLogger(OspfAreaImpl.class); | 54 | private static final Logger log = LoggerFactory.getLogger(OspfAreaImpl.class); |
56 | /** | 55 | /** |
57 | - * Address ranges in order to aggregate routing information at area. | ||
58 | - * boundaries. Each address range is specified by an [address,mask] pair and | ||
59 | - * a status indication of either Advertise or DoNotAdvertise | ||
60 | - */ | ||
61 | - private List<OspfAreaAddressRange> addressRanges; | ||
62 | - /** | ||
63 | - * This parameter indicates whether the area can carry data traffic that. | ||
64 | - * neither originates nor terminates in the area itself. | ||
65 | - */ | ||
66 | - private boolean transitCapability; | ||
67 | - /** | ||
68 | * Whether AS-external-LSAs will be flooded into/throughout the area. | 56 | * Whether AS-external-LSAs will be flooded into/throughout the area. |
69 | */ | 57 | */ |
70 | private boolean externalRoutingCapability; | 58 | private boolean externalRoutingCapability; |
71 | - /** | 59 | + |
72 | - * Indicates the cost of the default summary-LSA. | ||
73 | - */ | ||
74 | - private int stubCost; | ||
75 | /** | 60 | /** |
76 | * Represents a list of all router's interfaces associated with this area. | 61 | * Represents a list of all router's interfaces associated with this area. |
77 | */ | 62 | */ |
78 | - private List<OspfInterface> interfacesLst; | 63 | + private List<OspfInterface> ospfInterfaceList; |
79 | /** | 64 | /** |
80 | * The LS Database for this area. It includes router-LSAs, network-LSAs and. | 65 | * The LS Database for this area. It includes router-LSAs, network-LSAs and. |
81 | * summary-LSAs. AS-external-LSAs are hold in the OSPF class itself. | 66 | * summary-LSAs. AS-external-LSAs are hold in the OSPF class itself. |
... | @@ -116,18 +101,15 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -116,18 +101,15 @@ public class OspfAreaImpl implements OspfArea { |
116 | OspfAreaImpl that = (OspfAreaImpl) o; | 101 | OspfAreaImpl that = (OspfAreaImpl) o; |
117 | return Objects.equal(areaId, that.areaId) && | 102 | return Objects.equal(areaId, that.areaId) && |
118 | Objects.equal(routerId, that.routerId) && | 103 | Objects.equal(routerId, that.routerId) && |
119 | - Objects.equal(addressRanges.size(), that.addressRanges.size()) && | ||
120 | - Objects.equal(transitCapability, that.transitCapability) && | ||
121 | Objects.equal(externalRoutingCapability, that.externalRoutingCapability) && | 104 | Objects.equal(externalRoutingCapability, that.externalRoutingCapability) && |
122 | - Objects.equal(stubCost, that.stubCost) && | 105 | + Objects.equal(ospfInterfaceList.size(), that.ospfInterfaceList.size()) && |
123 | - Objects.equal(interfacesLst.size(), that.interfacesLst.size()) && | ||
124 | Objects.equal(database, that.database); | 106 | Objects.equal(database, that.database); |
125 | } | 107 | } |
126 | 108 | ||
127 | @Override | 109 | @Override |
128 | public int hashCode() { | 110 | public int hashCode() { |
129 | - return Objects.hashCode(areaId, routerId, addressRanges, transitCapability, externalRoutingCapability, | 111 | + return Objects.hashCode(areaId, routerId, externalRoutingCapability, |
130 | - stubCost, interfacesLst, database); | 112 | + ospfInterfaceList, database); |
131 | } | 113 | } |
132 | 114 | ||
133 | /** | 115 | /** |
... | @@ -234,7 +216,7 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -234,7 +216,7 @@ public class OspfAreaImpl implements OspfArea { |
234 | networkLsa.setNetworkMask(mask); | 216 | networkLsa.setNetworkMask(mask); |
235 | //Adding our own router. | 217 | //Adding our own router. |
236 | networkLsa.addAttachedRouter(routerId()); | 218 | networkLsa.addAttachedRouter(routerId()); |
237 | - Iterator iter = interfacesLst.iterator(); | 219 | + Iterator iter = ospfInterfaceList.iterator(); |
238 | OspfInterfaceImpl ospfInterface = null; | 220 | OspfInterfaceImpl ospfInterface = null; |
239 | while (iter.hasNext()) { | 221 | while (iter.hasNext()) { |
240 | ospfInterface = (OspfInterfaceImpl) iter.next(); | 222 | ospfInterface = (OspfInterfaceImpl) iter.next(); |
... | @@ -310,7 +292,7 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -310,7 +292,7 @@ public class OspfAreaImpl implements OspfArea { |
310 | */ | 292 | */ |
311 | private void buildLinkForRouterLsa(RouterLsa routerLsa, OspfInterface ospfInterface) { | 293 | private void buildLinkForRouterLsa(RouterLsa routerLsa, OspfInterface ospfInterface) { |
312 | OspfInterfaceImpl nextInterface; | 294 | OspfInterfaceImpl nextInterface; |
313 | - Iterator interfaces = interfacesLst.iterator(); | 295 | + Iterator interfaces = ospfInterfaceList.iterator(); |
314 | while (interfaces.hasNext()) { | 296 | while (interfaces.hasNext()) { |
315 | nextInterface = (OspfInterfaceImpl) interfaces.next(); | 297 | nextInterface = (OspfInterfaceImpl) interfaces.next(); |
316 | if (nextInterface.state() == OspfInterfaceState.DOWN) { | 298 | if (nextInterface.state() == OspfInterfaceState.DOWN) { |
... | @@ -418,44 +400,6 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -418,44 +400,6 @@ public class OspfAreaImpl implements OspfArea { |
418 | } | 400 | } |
419 | 401 | ||
420 | /** | 402 | /** |
421 | - * Gets address range. | ||
422 | - * | ||
423 | - * @return list of area address ranges | ||
424 | - */ | ||
425 | - public List<OspfAreaAddressRange> addressRanges() { | ||
426 | - return addressRanges; | ||
427 | - } | ||
428 | - | ||
429 | - /** | ||
430 | - * Sets the area address ranges. | ||
431 | - * | ||
432 | - * @param addressRanges list of area address range | ||
433 | - */ | ||
434 | - @JsonProperty("addressRange") | ||
435 | - public void setAddressRanges(List<OspfAreaAddressRange> addressRanges) { | ||
436 | - this.addressRanges = addressRanges; | ||
437 | - } | ||
438 | - | ||
439 | - /** | ||
440 | - * Gets is transit capable or not. | ||
441 | - * | ||
442 | - * @return true if transit capable, else false | ||
443 | - */ | ||
444 | - public boolean isTransitCapability() { | ||
445 | - return transitCapability; | ||
446 | - } | ||
447 | - | ||
448 | - /** | ||
449 | - * Sets transit capability. | ||
450 | - * | ||
451 | - * @param transitCapability true if transit capable, else false | ||
452 | - */ | ||
453 | - @JsonProperty("transitCapability") | ||
454 | - public void setTransitCapability(boolean transitCapability) { | ||
455 | - this.transitCapability = transitCapability; | ||
456 | - } | ||
457 | - | ||
458 | - /** | ||
459 | * Gets external routing capability. | 403 | * Gets external routing capability. |
460 | * | 404 | * |
461 | * @return true if external routing capable, else false | 405 | * @return true if external routing capable, else false |
... | @@ -475,41 +419,22 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -475,41 +419,22 @@ public class OspfAreaImpl implements OspfArea { |
475 | } | 419 | } |
476 | 420 | ||
477 | /** | 421 | /** |
478 | - * Gets the stub cost. | ||
479 | - * | ||
480 | - * @return stub cost | ||
481 | - */ | ||
482 | - public int stubCost() { | ||
483 | - return stubCost; | ||
484 | - } | ||
485 | - | ||
486 | - /** | ||
487 | - * Sets the stub cost. | ||
488 | - * | ||
489 | - * @param stubCost stub cost | ||
490 | - */ | ||
491 | - @JsonProperty("stubCost") | ||
492 | - public void setStubCost(int stubCost) { | ||
493 | - this.stubCost = stubCost; | ||
494 | - } | ||
495 | - | ||
496 | - /** | ||
497 | * Gets the list of interfaces in this area. | 422 | * Gets the list of interfaces in this area. |
498 | * | 423 | * |
499 | * @return list of interfaces | 424 | * @return list of interfaces |
500 | */ | 425 | */ |
501 | - public List<OspfInterface> getInterfacesLst() { | 426 | + public List<OspfInterface> ospfInterfaceList() { |
502 | - return interfacesLst; | 427 | + return ospfInterfaceList; |
503 | } | 428 | } |
504 | 429 | ||
505 | /** | 430 | /** |
506 | * Sets the list of interfaces attached to the area. | 431 | * Sets the list of interfaces attached to the area. |
507 | * | 432 | * |
508 | - * @param interfacesLst list of OspfInterface instances | 433 | + * @param ospfInterfaceList list of OspfInterface instances |
509 | */ | 434 | */ |
510 | @JsonProperty("interface") | 435 | @JsonProperty("interface") |
511 | - public void setInterfacesLst(List<OspfInterface> interfacesLst) { | 436 | + public void setOspfInterfaceList(List<OspfInterface> ospfInterfaceList) { |
512 | - this.interfacesLst = interfacesLst; | 437 | + this.ospfInterfaceList = ospfInterfaceList; |
513 | } | 438 | } |
514 | 439 | ||
515 | /** | 440 | /** |
... | @@ -522,7 +447,7 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -522,7 +447,7 @@ public class OspfAreaImpl implements OspfArea { |
522 | public boolean noNeighborInLsaExchangeProcess() { | 447 | public boolean noNeighborInLsaExchangeProcess() { |
523 | OspfInterfaceImpl nextInterface; | 448 | OspfInterfaceImpl nextInterface; |
524 | OspfNeighborState nextNeighborState; | 449 | OspfNeighborState nextNeighborState; |
525 | - Iterator interfaces = interfacesLst.iterator(); | 450 | + Iterator interfaces = ospfInterfaceList.iterator(); |
526 | while (interfaces.hasNext()) { | 451 | while (interfaces.hasNext()) { |
527 | nextInterface = (OspfInterfaceImpl) interfaces.next(); | 452 | nextInterface = (OspfInterfaceImpl) interfaces.next(); |
528 | Iterator neighbors = nextInterface.listOfNeighbors().values().iterator(); | 453 | Iterator neighbors = nextInterface.listOfNeighbors().values().iterator(); |
... | @@ -659,19 +584,14 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -659,19 +584,14 @@ public class OspfAreaImpl implements OspfArea { |
659 | return MoreObjects.toStringHelper(getClass()) | 584 | return MoreObjects.toStringHelper(getClass()) |
660 | .omitNullValues() | 585 | .omitNullValues() |
661 | .add("areaID", areaId) | 586 | .add("areaID", areaId) |
662 | - .add("stubCost", stubCost) | 587 | + .add("ospfInterfaceList", ospfInterfaceList) |
663 | - .add("addressRanges", addressRanges) | ||
664 | - .add("interfacesLst", interfacesLst) | ||
665 | - .add("transitCapability", transitCapability) | ||
666 | .add("externalRoutingCapability", externalRoutingCapability) | 588 | .add("externalRoutingCapability", externalRoutingCapability) |
667 | .toString(); | 589 | .toString(); |
668 | } | 590 | } |
669 | 591 | ||
670 | /** | 592 | /** |
671 | * Checks all Neighbors belonging to this Area whether they are in state lesser than the EXCHANGE. | 593 | * Checks all Neighbors belonging to this Area whether they are in state lesser than the EXCHANGE. |
672 | - * <p> | ||
673 | * Creates list of such neighbors | 594 | * Creates list of such neighbors |
674 | - * <p> | ||
675 | * Returns list of neighbors who satisfy the conditions | 595 | * Returns list of neighbors who satisfy the conditions |
676 | * | 596 | * |
677 | * @param ospfInterface OSPF interface instance | 597 | * @param ospfInterface OSPF interface instance |
... | @@ -716,7 +636,7 @@ public class OspfAreaImpl implements OspfArea { | ... | @@ -716,7 +636,7 @@ public class OspfAreaImpl implements OspfArea { |
716 | public void addToOtherNeighborLsaTxList(LsaHeader recLsa) { | 636 | public void addToOtherNeighborLsaTxList(LsaHeader recLsa) { |
717 | //Add the received LSA in other neighbors retransmission list. | 637 | //Add the received LSA in other neighbors retransmission list. |
718 | log.debug("OspfAreaImpl: addToOtherNeighborLsaTxList"); | 638 | log.debug("OspfAreaImpl: addToOtherNeighborLsaTxList"); |
719 | - List<OspfInterface> ospfInterfaces = getInterfacesLst(); | 639 | + List<OspfInterface> ospfInterfaces = ospfInterfaceList(); |
720 | for (OspfInterface ospfInterfaceFromArea : ospfInterfaces) { | 640 | for (OspfInterface ospfInterfaceFromArea : ospfInterfaces) { |
721 | Map neighbors = ospfInterfaceFromArea.listOfNeighbors(); | 641 | Map neighbors = ospfInterfaceFromArea.listOfNeighbors(); |
722 | for (Object neighborIP : neighbors.keySet()) { | 642 | for (Object neighborIP : neighbors.keySet()) { | ... | ... |
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfConfigUtil.java
0 → 100755
This diff is collapsed. Click to expand it.
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onosproject.ospf.controller.impl; | 17 | package org.onosproject.ospf.controller.impl; |
18 | 18 | ||
19 | +import com.fasterxml.jackson.databind.JsonNode; | ||
19 | import com.google.common.collect.Sets; | 20 | import com.google.common.collect.Sets; |
20 | import org.apache.felix.scr.annotations.Activate; | 21 | import org.apache.felix.scr.annotations.Activate; |
21 | import org.apache.felix.scr.annotations.Component; | 22 | import org.apache.felix.scr.annotations.Component; |
... | @@ -34,7 +35,6 @@ import org.onosproject.ospf.controller.OspfRouterListener; | ... | @@ -34,7 +35,6 @@ import org.onosproject.ospf.controller.OspfRouterListener; |
34 | import org.slf4j.Logger; | 35 | import org.slf4j.Logger; |
35 | import org.slf4j.LoggerFactory; | 36 | import org.slf4j.LoggerFactory; |
36 | 37 | ||
37 | -import java.util.ArrayList; | ||
38 | import java.util.HashSet; | 38 | import java.util.HashSet; |
39 | import java.util.List; | 39 | import java.util.List; |
40 | import java.util.Set; | 40 | import java.util.Set; |
... | @@ -111,27 +111,23 @@ public class OspfControllerImpl implements OspfController { | ... | @@ -111,27 +111,23 @@ public class OspfControllerImpl implements OspfController { |
111 | } | 111 | } |
112 | 112 | ||
113 | @Override | 113 | @Override |
114 | - public void updateConfig(List processes) { | 114 | + public void updateConfig(JsonNode processesNode) { |
115 | - List<OspfProcess> ospfProcesses = new ArrayList<>(); | 115 | + try { |
116 | - if (processes != null) { | 116 | + List<OspfProcess> ospfProcesses = OspfConfigUtil.processes(processesNode); |
117 | - for (Object process : processes) { | 117 | + //if there is interface details then update configuration |
118 | - ospfProcesses.add((OspfProcess) process); | 118 | + if (ospfProcesses.size() > 0 && |
119 | + ospfProcesses.get(0).areas() != null && ospfProcesses.get(0).areas().size() > 0 && | ||
120 | + ospfProcesses.get(0).areas().get(0) != null && | ||
121 | + ospfProcesses.get(0).areas().get(0).ospfInterfaceList().size() > 0) { | ||
122 | + ctrl.updateConfig(ospfProcesses); | ||
119 | } | 123 | } |
124 | + } catch (Exception e) { | ||
125 | + log.debug("Error::updateConfig::{}", e.getMessage()); | ||
120 | } | 126 | } |
121 | - log.debug("updateConfig::OspfList::processes::{}", ospfProcesses); | ||
122 | - ctrl.updateConfig(ospfProcesses); | ||
123 | } | 127 | } |
124 | 128 | ||
125 | @Override | 129 | @Override |
126 | public void deleteConfig(List<OspfProcess> processes, String attribute) { | 130 | public void deleteConfig(List<OspfProcess> processes, String attribute) { |
127 | - List<OspfProcess> ospfProcesses = new ArrayList<>(); | ||
128 | - if (processes != null) { | ||
129 | - for (Object process : processes) { | ||
130 | - ospfProcesses.add((OspfProcess) process); | ||
131 | - } | ||
132 | - } | ||
133 | - log.debug("deleteConfig::OspfList::processes::{}", ospfProcesses); | ||
134 | - ctrl.deleteConfig(ospfProcesses, attribute); | ||
135 | } | 131 | } |
136 | 132 | ||
137 | /** | 133 | /** |
... | @@ -163,9 +159,9 @@ public class OspfControllerImpl implements OspfController { | ... | @@ -163,9 +159,9 @@ public class OspfControllerImpl implements OspfController { |
163 | } | 159 | } |
164 | 160 | ||
165 | @Override | 161 | @Override |
166 | - public void deleteLink(OspfRouter ospfRouter) { | 162 | + public void deleteLink(OspfRouter ospfRouter, OspfLinkTed ospfLinkTed) { |
167 | for (OspfLinkListener l : linkListener()) { | 163 | for (OspfLinkListener l : linkListener()) { |
168 | - l.deleteLink(ospfRouter); | 164 | + l.deleteLink(ospfRouter, ospfLinkTed); |
169 | } | 165 | } |
170 | } | 166 | } |
171 | } | 167 | } | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -19,8 +19,10 @@ import org.jboss.netty.buffer.ChannelBuffer; | ... | @@ -19,8 +19,10 @@ import org.jboss.netty.buffer.ChannelBuffer; |
19 | import org.jboss.netty.channel.Channel; | 19 | import org.jboss.netty.channel.Channel; |
20 | import org.jboss.netty.channel.ChannelHandlerContext; | 20 | import org.jboss.netty.channel.ChannelHandlerContext; |
21 | import org.jboss.netty.handler.codec.frame.FrameDecoder; | 21 | import org.jboss.netty.handler.codec.frame.FrameDecoder; |
22 | -import org.onosproject.ospf.protocol.ospfpacket.OspfMessage; | 22 | +import org.onlab.packet.Ip4Address; |
23 | +import org.onosproject.ospf.controller.OspfMessage; | ||
23 | import org.onosproject.ospf.protocol.ospfpacket.OspfMessageReader; | 24 | import org.onosproject.ospf.protocol.ospfpacket.OspfMessageReader; |
25 | +import org.onosproject.ospf.protocol.util.OspfUtil; | ||
24 | import org.slf4j.Logger; | 26 | import org.slf4j.Logger; |
25 | import org.slf4j.LoggerFactory; | 27 | import org.slf4j.LoggerFactory; |
26 | 28 | ||
... | @@ -35,24 +37,35 @@ public class OspfMessageDecoder extends FrameDecoder { | ... | @@ -35,24 +37,35 @@ public class OspfMessageDecoder extends FrameDecoder { |
35 | private static final Logger log = LoggerFactory.getLogger(OspfMessageDecoder.class); | 37 | private static final Logger log = LoggerFactory.getLogger(OspfMessageDecoder.class); |
36 | 38 | ||
37 | @Override | 39 | @Override |
38 | - protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer channelBuffer) throws Exception { | 40 | + protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception { |
39 | - log.debug("OspfMessageDecoder::Message received <:> length {}", channelBuffer.readableBytes()); | 41 | + log.debug("OspfMessageDecoder::Message received <:> length {}", buffer.readableBytes()); |
40 | - log.debug("channelBuffer.readableBytes - decode {}", channelBuffer.readableBytes()); | ||
41 | if (!channel.isConnected()) { | 42 | if (!channel.isConnected()) { |
42 | log.info("Channel is not connected."); | 43 | log.info("Channel is not connected."); |
43 | return null; | 44 | return null; |
44 | } | 45 | } |
45 | - | ||
46 | OspfMessageReader messageReader = new OspfMessageReader(); | 46 | OspfMessageReader messageReader = new OspfMessageReader(); |
47 | List<OspfMessage> ospfMessageList = new LinkedList<>(); | 47 | List<OspfMessage> ospfMessageList = new LinkedList<>(); |
48 | - | 48 | + while (buffer.readableBytes() >= OspfUtil.MINIMUM_FRAME_LEN) { |
49 | - while (channelBuffer.readableBytes() > 0) { | 49 | + ChannelBuffer ospfDataBuffer = buffer.readBytes(OspfUtil.MINIMUM_FRAME_LEN); |
50 | - OspfMessage message = messageReader.readFromBuffer(channelBuffer); | 50 | + int readableBytes = ospfDataBuffer.readableBytes(); |
51 | + OspfMessage message = messageReader.readFromBuffer(ospfDataBuffer); | ||
51 | if (message != null) { | 52 | if (message != null) { |
53 | + if (ospfDataBuffer.readableBytes() >= OspfUtil.METADATA_LEN) { | ||
54 | + ospfDataBuffer.readerIndex(readableBytes - OspfUtil.METADATA_LEN); | ||
55 | + log.debug("IsisMessageDecoder::Reading metadata <:> length {}", ospfDataBuffer.readableBytes()); | ||
56 | + | ||
57 | + | ||
58 | + int interfaceIndex = ospfDataBuffer.readByte(); | ||
59 | + byte[] sourceIpBytes = new byte[OspfUtil.FOUR_BYTES]; | ||
60 | + ospfDataBuffer.readBytes(sourceIpBytes, 0, OspfUtil.FOUR_BYTES); | ||
61 | + Ip4Address sourceIP = Ip4Address.valueOf(sourceIpBytes); | ||
62 | + | ||
63 | + message.setSourceIp(sourceIP); | ||
64 | + message.setInterfaceIndex(interfaceIndex); | ||
65 | + } | ||
52 | ospfMessageList.add(message); | 66 | ospfMessageList.add(message); |
53 | } | 67 | } |
54 | } | 68 | } |
55 | - | 69 | + return (ospfMessageList.size() > 0) ? ospfMessageList : null; |
56 | - return ospfMessageList; | ||
57 | } | 70 | } |
58 | } | 71 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfMessageEncoder.java
100755 → 100644
... | @@ -17,15 +17,10 @@ | ... | @@ -17,15 +17,10 @@ |
17 | package org.onosproject.ospf.controller.impl; | 17 | package org.onosproject.ospf.controller.impl; |
18 | 18 | ||
19 | import org.jboss.netty.buffer.ChannelBuffer; | 19 | import org.jboss.netty.buffer.ChannelBuffer; |
20 | +import org.jboss.netty.buffer.ChannelBuffers; | ||
20 | import org.jboss.netty.channel.Channel; | 21 | import org.jboss.netty.channel.Channel; |
21 | import org.jboss.netty.channel.ChannelHandlerContext; | 22 | import org.jboss.netty.channel.ChannelHandlerContext; |
22 | import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; | 23 | import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; |
23 | -import org.onosproject.ospf.controller.OspfInterface; | ||
24 | -import org.onosproject.ospf.controller.area.OspfInterfaceImpl; | ||
25 | -import org.onosproject.ospf.protocol.ospfpacket.OspfMessage; | ||
26 | -import org.onosproject.ospf.protocol.ospfpacket.OspfMessageWriter; | ||
27 | -import org.onosproject.ospf.protocol.util.OspfInterfaceState; | ||
28 | -import org.onosproject.ospf.protocol.util.OspfUtil; | ||
29 | import org.slf4j.Logger; | 24 | import org.slf4j.Logger; |
30 | import org.slf4j.LoggerFactory; | 25 | import org.slf4j.LoggerFactory; |
31 | 26 | ||
... | @@ -35,46 +30,15 @@ import org.slf4j.LoggerFactory; | ... | @@ -35,46 +30,15 @@ import org.slf4j.LoggerFactory; |
35 | public class OspfMessageEncoder extends OneToOneEncoder { | 30 | public class OspfMessageEncoder extends OneToOneEncoder { |
36 | 31 | ||
37 | private static final Logger log = LoggerFactory.getLogger(OspfMessageEncoder.class); | 32 | private static final Logger log = LoggerFactory.getLogger(OspfMessageEncoder.class); |
38 | - private OspfInterface ospfInterface; | ||
39 | - | ||
40 | - | ||
41 | - /** | ||
42 | - * Creates an instance of OSPF message encoder. | ||
43 | - */ | ||
44 | - OspfMessageEncoder() { | ||
45 | - } | ||
46 | - | ||
47 | - /** | ||
48 | - * Creates an instance of OSPF message encoder. | ||
49 | - * | ||
50 | - * @param ospfInterface OSPF interface instance | ||
51 | - */ | ||
52 | - OspfMessageEncoder(OspfInterface ospfInterface) { | ||
53 | - this.ospfInterface = ospfInterface; | ||
54 | - } | ||
55 | 33 | ||
56 | @Override | 34 | @Override |
57 | protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { | 35 | protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { |
58 | 36 | ||
59 | - log.debug("Encoding ospfMessage...!!!"); | 37 | + byte[] byteMsg = (byte[]) msg; |
60 | - if (!(msg instanceof OspfMessage)) { | 38 | + log.debug("Encoding ospfMessage of length {}", byteMsg.length); |
61 | - log.debug("Invalid msg."); | 39 | + ChannelBuffer channelBuffer = ChannelBuffers.buffer(byteMsg.length); |
62 | - return msg; | 40 | + channelBuffer.writeBytes(byteMsg); |
63 | - } | ||
64 | - | ||
65 | - OspfMessage ospfMessage = (OspfMessage) msg; | ||
66 | - OspfMessageWriter messageWriter = new OspfMessageWriter(); | ||
67 | - if (((OspfInterfaceImpl) ospfInterface).state().equals(OspfInterfaceState.POINT2POINT)) { | ||
68 | - ospfMessage.setDestinationIp(OspfUtil.ALL_SPF_ROUTERS); | ||
69 | - } | ||
70 | - ChannelBuffer buf = messageWriter.writeToBuffer(ospfMessage, | ||
71 | - ((OspfInterfaceImpl) ospfInterface).state().value(), | ||
72 | - ospfInterface.interfaceType()); | ||
73 | - log.info("OspfMessageEncoder sending packet of lenght {}", buf.readableBytes()); | ||
74 | - log.debug("OspfMessageEncoder sending packet of lenght {}", buf.readableBytes()); | ||
75 | - log.debug("Sending {} Message to {}, Length :: {}, <=> {}", ospfMessage.ospfMessageType(), | ||
76 | - ospfMessage.destinationIp(), buf.readableBytes(), buf.array()); | ||
77 | 41 | ||
78 | - return buf; | 42 | + return channelBuffer; |
79 | } | 43 | } |
80 | } | 44 | } | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -18,57 +18,29 @@ package org.onosproject.ospf.controller.impl; | ... | @@ -18,57 +18,29 @@ package org.onosproject.ospf.controller.impl; |
18 | import org.jboss.netty.channel.ChannelPipeline; | 18 | import org.jboss.netty.channel.ChannelPipeline; |
19 | import org.jboss.netty.channel.ChannelPipelineFactory; | 19 | import org.jboss.netty.channel.ChannelPipelineFactory; |
20 | import org.jboss.netty.channel.Channels; | 20 | import org.jboss.netty.channel.Channels; |
21 | -import org.jboss.netty.handler.timeout.ReadTimeoutHandler; | ||
22 | -import org.jboss.netty.util.ExternalResourceReleasable; | ||
23 | -import org.jboss.netty.util.HashedWheelTimer; | ||
24 | -import org.jboss.netty.util.Timer; | ||
25 | -import org.onosproject.ospf.controller.OspfArea; | ||
26 | -import org.onosproject.ospf.controller.OspfInterface; | ||
27 | 21 | ||
28 | /** | 22 | /** |
29 | - * Creates a ChannelPipeline for a server-side OSPF channel. | 23 | + * Creates a ChannelPipeline for a client-side OSPF channel. |
30 | */ | 24 | */ |
31 | -public class OspfPipelineFactory implements ChannelPipelineFactory, ExternalResourceReleasable { | 25 | +public class OspfPipelineFactory implements ChannelPipelineFactory { |
32 | - | 26 | + private OspfInterfaceChannelHandler ospfChannelHandler; |
33 | - private static final Timer TIMER = new HashedWheelTimer(); | ||
34 | - private Controller controller; | ||
35 | - private ReadTimeoutHandler readTimeoutHandler; | ||
36 | - private OspfArea ospfArea; | ||
37 | - private OspfInterface ospfInterface; | ||
38 | - private int holdTime = 120 * 1000; | ||
39 | 27 | ||
40 | /** | 28 | /** |
41 | - * Creates an instance of OSPF pipeline factory. | 29 | + * Creates an instance of OSPF channel pipeline factory. |
42 | * | 30 | * |
43 | - * @param controller controller instance. | 31 | + * @param ospfChannelHandler OSPF channel handler instance |
44 | - * @param ospfArea OSPF area instance. | ||
45 | - * @param ospfInterface OSPF interface instance. | ||
46 | */ | 32 | */ |
47 | - public OspfPipelineFactory(Controller controller, OspfArea ospfArea, OspfInterface ospfInterface) { | 33 | + public OspfPipelineFactory(OspfInterfaceChannelHandler ospfChannelHandler) { |
48 | - super(); | 34 | + this.ospfChannelHandler = ospfChannelHandler; |
49 | - this.controller = controller; | ||
50 | - this.ospfArea = ospfArea; | ||
51 | - this.ospfInterface = ospfInterface; | ||
52 | - readTimeoutHandler = new ReadTimeoutHandler(TIMER, holdTime); | ||
53 | } | 35 | } |
54 | 36 | ||
55 | @Override | 37 | @Override |
56 | public ChannelPipeline getPipeline() throws Exception { | 38 | public ChannelPipeline getPipeline() throws Exception { |
57 | - OspfInterfaceChannelHandler interfaceHandler = new OspfInterfaceChannelHandler( | ||
58 | - controller, ospfArea, ospfInterface); | ||
59 | - | ||
60 | ChannelPipeline pipeline = Channels.pipeline(); | 39 | ChannelPipeline pipeline = Channels.pipeline(); |
61 | - pipeline.addLast("encoder", new OspfMessageEncoder(ospfInterface)); | 40 | + pipeline.addLast("encoder", new OspfMessageDecoder()); |
62 | - pipeline.addLast("decoder", new OspfMessageDecoder()); | 41 | + pipeline.addLast("decoder", new OspfMessageEncoder()); |
63 | - pipeline.addLast("holdTime", readTimeoutHandler); | 42 | + pipeline.addLast("handler", ospfChannelHandler); |
64 | - pipeline.addLast("interfacehandler", interfaceHandler); | ||
65 | 43 | ||
66 | return pipeline; | 44 | return pipeline; |
67 | } | 45 | } |
68 | - | ||
69 | - @Override | ||
70 | - public void releaseExternalResources() { | ||
71 | - TIMER.stop(); | ||
72 | - } | ||
73 | - | ||
74 | } | 46 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -49,6 +49,15 @@ public class LsaWrapperImpl implements LsaWrapper { | ... | @@ -49,6 +49,15 @@ public class LsaWrapperImpl implements LsaWrapper { |
49 | private int binNumber = -1; | 49 | private int binNumber = -1; |
50 | private OspfInterface ospfInterface; | 50 | private OspfInterface ospfInterface; |
51 | private LsdbAge lsdbAge; | 51 | private LsdbAge lsdbAge; |
52 | + private int ageCounterRollOverWhenAdded; | ||
53 | + | ||
54 | + public int getAgeCounterRollOverWhenAdded() { | ||
55 | + return ageCounterRollOverWhenAdded; | ||
56 | + } | ||
57 | + | ||
58 | + public void setAgeCounterRollOverWhenAdded(int ageCounterRollOverWhenAdded) { | ||
59 | + this.ageCounterRollOverWhenAdded = ageCounterRollOverWhenAdded; | ||
60 | + } | ||
52 | 61 | ||
53 | /** | 62 | /** |
54 | * Gets the LSA type. | 63 | * Gets the LSA type. |
... | @@ -318,6 +327,8 @@ public class LsaWrapperImpl implements LsaWrapper { | ... | @@ -318,6 +327,8 @@ public class LsaWrapperImpl implements LsaWrapper { |
318 | 327 | ||
319 | if (currentAge >= OspfParameters.MAXAGE) { | 328 | if (currentAge >= OspfParameters.MAXAGE) { |
320 | return OspfParameters.MAXAGE; | 329 | return OspfParameters.MAXAGE; |
330 | + } else if ((currentAge == lsaAgeReceived) && ageCounterRollOverWhenAdded != lsdbAge.getAgeCounterRollOver()) { | ||
331 | + return OspfParameters.MAXAGE; | ||
321 | } | 332 | } |
322 | 333 | ||
323 | return currentAge; | 334 | return currentAge; | ... | ... |
... | @@ -41,7 +41,7 @@ public class LsdbAgeImpl implements LsdbAge { | ... | @@ -41,7 +41,7 @@ public class LsdbAgeImpl implements LsdbAge { |
41 | 41 | ||
42 | private static final Logger log = | 42 | private static final Logger log = |
43 | LoggerFactory.getLogger(LsdbAgeImpl.class); | 43 | LoggerFactory.getLogger(LsdbAgeImpl.class); |
44 | - protected int ageCounter = 0; | 44 | + protected static int ageCounter = 0; |
45 | private InternalAgeTimer dbAgeTimer; | 45 | private InternalAgeTimer dbAgeTimer; |
46 | private ScheduledExecutorService exServiceage; | 46 | private ScheduledExecutorService exServiceage; |
47 | // creating age bins of MAXAGE | 47 | // creating age bins of MAXAGE | ... | ... |
... | @@ -267,6 +267,7 @@ public class OspfLsdbImpl implements OspfLsdb { | ... | @@ -267,6 +267,7 @@ public class OspfLsdbImpl implements OspfLsdb { |
267 | lsaWrapper.setLsaHeader(newLsa); | 267 | lsaWrapper.setLsaHeader(newLsa); |
268 | lsaWrapper.setLsaAgeReceived(newLsa.age()); | 268 | lsaWrapper.setLsaAgeReceived(newLsa.age()); |
269 | lsaWrapper.setAgeCounterWhenReceived(lsdbAge.getAgeCounter()); | 269 | lsaWrapper.setAgeCounterWhenReceived(lsdbAge.getAgeCounter()); |
270 | + lsaWrapper.setAgeCounterRollOverWhenAdded(lsdbAge.getAgeCounterRollOver()); | ||
270 | lsaWrapper.setIsSelfOriginated(isSelfOriginated); | 271 | lsaWrapper.setIsSelfOriginated(isSelfOriginated); |
271 | lsaWrapper.setIsSelfOriginated(isSelfOriginated); | 272 | lsaWrapper.setIsSelfOriginated(isSelfOriginated); |
272 | lsaWrapper.setOspfInterface(ospfInterface); | 273 | lsaWrapper.setOspfInterface(ospfInterface); | ... | ... |
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
... | @@ -71,7 +71,7 @@ public class ControllerTest { | ... | @@ -71,7 +71,7 @@ public class ControllerTest { |
71 | ospfInterface.setIpAddress(Ip4Address.valueOf("1.1.1.1")); | 71 | ospfInterface.setIpAddress(Ip4Address.valueOf("1.1.1.1")); |
72 | ospfInterfaces.add(ospfInterface); | 72 | ospfInterfaces.add(ospfInterface); |
73 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); | 73 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); |
74 | - ospfArea.setInterfacesLst(ospfInterfaces); | 74 | + ospfArea.setOspfInterfaceList(ospfInterfaces); |
75 | ospfProcess.setProcessId("10.10.10.10"); | 75 | ospfProcess.setProcessId("10.10.10.10"); |
76 | ospfAreas = new ArrayList(); | 76 | ospfAreas = new ArrayList(); |
77 | ospfAreas.add(ospfArea); | 77 | ospfAreas.add(ospfArea); |
... | @@ -82,7 +82,7 @@ public class ControllerTest { | ... | @@ -82,7 +82,7 @@ public class ControllerTest { |
82 | ospfProcess1.setProcessId("11.11.11.11"); | 82 | ospfProcess1.setProcessId("11.11.11.11"); |
83 | ospfArea1 = new OspfAreaImpl(); | 83 | ospfArea1 = new OspfAreaImpl(); |
84 | ospfArea1.setAreaId(Ip4Address.valueOf("2.2.2.2")); | 84 | ospfArea1.setAreaId(Ip4Address.valueOf("2.2.2.2")); |
85 | - ospfArea1.setInterfacesLst(ospfInterfaces); | 85 | + ospfArea1.setOspfInterfaceList(ospfInterfaces); |
86 | ospfAreas.add(ospfArea1); | 86 | ospfAreas.add(ospfArea1); |
87 | ospfProcess1.setAreas(ospfAreas); | 87 | ospfProcess1.setAreas(ospfAreas); |
88 | ospfProcesses.add(ospfProcess1); | 88 | ospfProcesses.add(ospfProcess1); |
... | @@ -167,83 +167,6 @@ public class ControllerTest { | ... | @@ -167,83 +167,6 @@ public class ControllerTest { |
167 | assertThat(controller, is(notNullValue())); | 167 | assertThat(controller, is(notNullValue())); |
168 | } | 168 | } |
169 | 169 | ||
170 | - /** | ||
171 | - * Tests deleteInterfaceFromArea() method. | ||
172 | - */ | ||
173 | - @Test | ||
174 | - public void testDeleteInterfaceFromArea() throws Exception { | ||
175 | - controller.updateConfig(ospfProcesses); | ||
176 | - assertThat(controller.deleteInterfaceFromArea("10.10.10.10", "2.2.2.2", "1.1.1.1"), is(true)); | ||
177 | - assertThat(controller.deleteInterfaceFromArea("10.10.10.10", "2.2.2.2", "5.5.5.5"), is(false)); | ||
178 | - } | ||
179 | - | ||
180 | - /** | ||
181 | - * Tests checkArea() method. | ||
182 | - */ | ||
183 | - @Test | ||
184 | - public void testCheckArea() throws Exception { | ||
185 | - controller.updateConfig(ospfProcesses); | ||
186 | - assertThat(controller.checkArea("10.10.10.10", "2.2.2.2"), is(true)); | ||
187 | - } | ||
188 | - | ||
189 | - /** | ||
190 | - * Tests checkArea() method. | ||
191 | - */ | ||
192 | - @Test | ||
193 | - public void testCheckArea1() throws Exception { | ||
194 | - controller.updateConfig(ospfProcesses); | ||
195 | - assertThat(controller.checkArea("10.10.10.10", "111.111.111.111"), is(false)); | ||
196 | - } | ||
197 | - | ||
198 | - /** | ||
199 | - * Tests checkProcess() method. | ||
200 | - */ | ||
201 | - @Test | ||
202 | - public void testCheckProcess() throws Exception { | ||
203 | - controller.updateConfig(ospfProcesses); | ||
204 | - assertThat(controller.checkProcess("3.3.3.3"), is(false)); | ||
205 | - assertThat(controller.checkProcess("1.1.1.1"), is(false)); | ||
206 | - } | ||
207 | - | ||
208 | - /** | ||
209 | - * Tests checkInterface() method. | ||
210 | - */ | ||
211 | - @Test | ||
212 | - public void testCheckInterface() throws Exception { | ||
213 | - controller.updateConfig(ospfProcesses); | ||
214 | - assertThat(controller.checkInterface("10.10.10.10", "2.2.2.2", "1.1.1.1"), is(true)); | ||
215 | - } | ||
216 | - | ||
217 | - /** | ||
218 | - * Tests updateAreaInProcess() method. | ||
219 | - */ | ||
220 | - @Test | ||
221 | - public void testUpdateAreaInProcess() throws Exception { | ||
222 | - controller.updateConfig(ospfProcesses); | ||
223 | - controller.updateAreaInProcess("10.10.10.10", "2.2.2.2", ospfArea); | ||
224 | - assertThat(controller, is(notNullValue())); | ||
225 | - } | ||
226 | - | ||
227 | - /** | ||
228 | - * Tests updateConfig() method. | ||
229 | - */ | ||
230 | - @Test | ||
231 | - public void testUpdateConfig() throws Exception { | ||
232 | - controller.updateConfig(ospfProcesses); | ||
233 | - controller.updateConfig(ospfProcesses); | ||
234 | - controller.updateConfig(ospfProcesses); | ||
235 | - assertThat(controller, is(notNullValue())); | ||
236 | - } | ||
237 | - | ||
238 | - /** | ||
239 | - * Tests updateConfig() method. | ||
240 | - */ | ||
241 | - @Test | ||
242 | - public void testUpdateConfig2() throws Exception { | ||
243 | - controller.updateConfig(ospfProcesses); | ||
244 | - controller.updateConfig(ospfProcesses); | ||
245 | - assertThat(controller, is(notNullValue())); | ||
246 | - } | ||
247 | 170 | ||
248 | /** | 171 | /** |
249 | * Tests updateConfig() method. | 172 | * Tests updateConfig() method. |
... | @@ -257,7 +180,7 @@ public class ControllerTest { | ... | @@ -257,7 +180,7 @@ public class ControllerTest { |
257 | ospfInterface.setIpAddress(Ip4Address.valueOf("10.10.10.5")); | 180 | ospfInterface.setIpAddress(Ip4Address.valueOf("10.10.10.5")); |
258 | ospfInterfaces.add(ospfInterface); | 181 | ospfInterfaces.add(ospfInterface); |
259 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); | 182 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); |
260 | - ospfArea.setInterfacesLst(ospfInterfaces); | 183 | + ospfArea.setOspfInterfaceList(ospfInterfaces); |
261 | ospfProcess.setProcessId("10.10.10.10"); | 184 | ospfProcess.setProcessId("10.10.10.10"); |
262 | ospfAreas = new ArrayList(); | 185 | ospfAreas = new ArrayList(); |
263 | ospfAreas.add(ospfArea); | 186 | ospfAreas.add(ospfArea); |
... | @@ -269,67 +192,6 @@ public class ControllerTest { | ... | @@ -269,67 +192,6 @@ public class ControllerTest { |
269 | } | 192 | } |
270 | 193 | ||
271 | /** | 194 | /** |
272 | - * Tests deleteConfig() method. | ||
273 | - */ | ||
274 | - @Test(expected = Exception.class) | ||
275 | - public void testDeleteConfig() throws Exception { | ||
276 | - controller.updateConfig(ospfProcesses); | ||
277 | - controller.deleteConfig(ospfProcesses, "INTERFACE"); | ||
278 | - assertThat(controller, is(notNullValue())); | ||
279 | - } | ||
280 | - | ||
281 | - /** | ||
282 | - * Tests deleteConfig() method. | ||
283 | - */ | ||
284 | - @Test(expected = Exception.class) | ||
285 | - public void testDeleteConfig1() throws Exception { | ||
286 | - controller.updateConfig(ospfProcesses); | ||
287 | - controller.deleteConfig(ospfProcesses, "AREA"); | ||
288 | - assertThat(controller, is(notNullValue())); | ||
289 | - } | ||
290 | - | ||
291 | - /** | ||
292 | - * Tests deleteConfig() method. | ||
293 | - */ | ||
294 | - | ||
295 | - @Test | ||
296 | - public void testDeleteConfig2() throws Exception { | ||
297 | - controller.updateConfig(ospfProcesses); | ||
298 | - controller.deleteConfig(ospfProcesses, "PROCESS"); | ||
299 | - assertThat(controller, is(notNullValue())); | ||
300 | - } | ||
301 | - | ||
302 | - /** | ||
303 | - * Tests deleteConfig() method. | ||
304 | - */ | ||
305 | - @Test | ||
306 | - public void testDeleteConfig3() throws Exception { | ||
307 | - ospfProcesses = new ArrayList(); | ||
308 | - controller.deleteConfig(ospfProcesses, "PROCESS"); | ||
309 | - assertThat(controller, is(notNullValue())); | ||
310 | - } | ||
311 | - | ||
312 | - /** | ||
313 | - * Tests deleteConfig() method. | ||
314 | - */ | ||
315 | - @Test | ||
316 | - public void testDeleteConfig4() throws Exception { | ||
317 | - controller.updateConfig(ospfProcesses); | ||
318 | - controller.deleteConfig(ospfProcesses, "PROCESS"); | ||
319 | - controller.updateConfig(ospfProcesses); | ||
320 | - assertThat(controller, is(notNullValue())); | ||
321 | - } | ||
322 | - | ||
323 | - /** | ||
324 | - * Tests deleteProcessWhenExists() method. | ||
325 | - */ | ||
326 | - @Test | ||
327 | - public void testDeleteProcessWhenExists() throws Exception { | ||
328 | - controller.updateConfig(ospfProcesses); | ||
329 | - controller.deleteProcessWhenExists(ospfProcesses, "PROCESS"); | ||
330 | - } | ||
331 | - | ||
332 | - /** | ||
333 | * Tests addLinkDetails() method. | 195 | * Tests addLinkDetails() method. |
334 | */ | 196 | */ |
335 | @Test | 197 | @Test |
... | @@ -350,7 +212,7 @@ public class ControllerTest { | ... | @@ -350,7 +212,7 @@ public class ControllerTest { |
350 | controller.start(ospfAgent, driverService); | 212 | controller.start(ospfAgent, driverService); |
351 | ospfRouter = new OspfRouterImpl(); | 213 | ospfRouter = new OspfRouterImpl(); |
352 | controller.addLinkDetails(ospfRouter, new OspfLinkTedImpl()); | 214 | controller.addLinkDetails(ospfRouter, new OspfLinkTedImpl()); |
353 | - controller.removeLinkDetails(ospfRouter); | 215 | + controller.removeLinkDetails(ospfRouter, new OspfLinkTedImpl()); |
354 | assertThat(controller, is(notNullValue())); | 216 | assertThat(controller, is(notNullValue())); |
355 | } | 217 | } |
356 | } | 218 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
protocols/ospf/ctl/src/test/java/org/onosproject/ospf/controller/impl/OspfConfigUtilTest.java
0 → 100755
1 | +/* | ||
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 | + */ | ||
16 | +package org.onosproject.ospf.controller.impl; | ||
17 | + | ||
18 | +import com.fasterxml.jackson.databind.JsonNode; | ||
19 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
20 | +import org.junit.After; | ||
21 | +import org.junit.Before; | ||
22 | +import org.junit.Test; | ||
23 | +import org.onosproject.ospf.controller.OspfProcess; | ||
24 | + | ||
25 | +import java.util.ArrayList; | ||
26 | +import java.util.List; | ||
27 | + | ||
28 | +import static org.hamcrest.CoreMatchers.is; | ||
29 | +import static org.hamcrest.CoreMatchers.notNullValue; | ||
30 | +import static org.hamcrest.MatcherAssert.assertThat; | ||
31 | + | ||
32 | +/** | ||
33 | + * Unit test class for OspfJsonParsingUtilTest. | ||
34 | + */ | ||
35 | +public class OspfConfigUtilTest { | ||
36 | + private ObjectMapper mapper; | ||
37 | + private JsonNode jsonNode; | ||
38 | + private List<OspfProcess> ospfProcessList = new ArrayList<>(); | ||
39 | + private String jsonString = "{\n" + | ||
40 | + "\t\"processes\": {\n" + | ||
41 | + "\t\t\"areas\": [{\n" + | ||
42 | + "\t\t\t\"interface\": [{\n" + | ||
43 | + "\t\t\t\t\"interfaceIndex\": \"2\",\n" + | ||
44 | + "\n" + | ||
45 | + "\t\t\t\t\"helloIntervalTime\": \"10\",\n" + | ||
46 | + "\n" + | ||
47 | + "\t\t\t\t\"routerDeadIntervalTime\": \"40\",\n" + | ||
48 | + "\n" + | ||
49 | + "\t\t\t\t\"interfaceType\": \"2\",\n" + | ||
50 | + "\n" + | ||
51 | + "\t\t\t\t\"reTransmitInterval\": \"5\"\n" + | ||
52 | + "\t\t\t}],\n" + | ||
53 | + "\t\t\t\"areaId\": \"5.5.5.5\",\n" + | ||
54 | + "\n" + | ||
55 | + "\t\t\t\"routerId\": \"7.7.7.7\",\n" + | ||
56 | + "\n" + | ||
57 | + "\t\t\t\"isOpaqueEnable\": \"false\",\n" + | ||
58 | + "\n" + | ||
59 | + "\t\t\t\"externalRoutingCapability\": \"true\"\n" + | ||
60 | + "\t\t}]\n" + | ||
61 | + "\t}\n" + | ||
62 | + "}"; | ||
63 | + | ||
64 | + @Before | ||
65 | + public void setUp() throws Exception { | ||
66 | + mapper = new ObjectMapper(); | ||
67 | + jsonNode = mapper.readTree(jsonString); | ||
68 | + mapper = new ObjectMapper(); | ||
69 | + } | ||
70 | + | ||
71 | + @After | ||
72 | + public void tearDown() throws Exception { | ||
73 | + | ||
74 | + } | ||
75 | + | ||
76 | + @Test | ||
77 | + public void testProcesses() throws Exception { | ||
78 | + jsonNode.path("areas"); | ||
79 | + ospfProcessList = OspfConfigUtil.processes(jsonNode); | ||
80 | + assertThat(ospfProcessList, is(notNullValue())); | ||
81 | + } | ||
82 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -46,10 +46,8 @@ public class OspfControllerImplTest { | ... | @@ -46,10 +46,8 @@ public class OspfControllerImplTest { |
46 | private OspfControllerImpl ospfController; | 46 | private OspfControllerImpl ospfController; |
47 | private OspfRouterListener ospfRouterListener; | 47 | private OspfRouterListener ospfRouterListener; |
48 | private OspfLinkListener ospfLinkListener; | 48 | private OspfLinkListener ospfLinkListener; |
49 | - private Controller controller; | ||
50 | private List<OspfProcess> ospfProcesses; | 49 | private List<OspfProcess> ospfProcesses; |
51 | private OspfProcess process1; | 50 | private OspfProcess process1; |
52 | - private OspfProcess process2; | ||
53 | private List<OspfArea> areas; | 51 | private List<OspfArea> areas; |
54 | private OspfAreaImpl ospfArea; | 52 | private OspfAreaImpl ospfArea; |
55 | private List<OspfInterface> ospfInterfaces; | 53 | private List<OspfInterface> ospfInterfaces; |
... | @@ -61,7 +59,6 @@ public class OspfControllerImplTest { | ... | @@ -61,7 +59,6 @@ public class OspfControllerImplTest { |
61 | @Before | 59 | @Before |
62 | public void setUp() throws Exception { | 60 | public void setUp() throws Exception { |
63 | ospfController = new OspfControllerImpl(); | 61 | ospfController = new OspfControllerImpl(); |
64 | - controller = new Controller(); | ||
65 | } | 62 | } |
66 | 63 | ||
67 | @After | 64 | @After |
... | @@ -69,7 +66,6 @@ public class OspfControllerImplTest { | ... | @@ -69,7 +66,6 @@ public class OspfControllerImplTest { |
69 | ospfController = null; | 66 | ospfController = null; |
70 | ospfRouterListener = null; | 67 | ospfRouterListener = null; |
71 | ospfLinkListener = null; | 68 | ospfLinkListener = null; |
72 | - controller = null; | ||
73 | ospfProcesses = null; | 69 | ospfProcesses = null; |
74 | areas = null; | 70 | areas = null; |
75 | ospfArea = null; | 71 | ospfArea = null; |
... | @@ -140,38 +136,6 @@ public class OspfControllerImplTest { | ... | @@ -140,38 +136,6 @@ public class OspfControllerImplTest { |
140 | } | 136 | } |
141 | 137 | ||
142 | /** | 138 | /** |
143 | - * Tests updateConfig() method. | ||
144 | - */ | ||
145 | - @Test | ||
146 | - public void testUpdateConfig() throws Exception { | ||
147 | - ospfProcess = new OspfProcessImpl(); | ||
148 | - ospfArea = new OspfAreaImpl(); | ||
149 | - ospfInterface = new OspfInterfaceImpl(); | ||
150 | - ospfInterfaces = new ArrayList(); | ||
151 | - ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11")); | ||
152 | - ospfInterfaces.add(ospfInterface); | ||
153 | - ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); | ||
154 | - ospfArea.setInterfacesLst(ospfInterfaces); | ||
155 | - ospfProcess.setProcessId("10.10.10.10"); | ||
156 | - areas = new ArrayList(); | ||
157 | - areas.add(ospfArea); | ||
158 | - ospfProcess.setAreas(areas); | ||
159 | - ospfProcesses = new ArrayList(); | ||
160 | - ospfProcesses.add(ospfProcess); | ||
161 | - process1 = new OspfProcessImpl(); | ||
162 | - process1.setProcessId("11.11.11.11"); | ||
163 | - ospfArea1 = new OspfAreaImpl(); | ||
164 | - ospfArea1.setAreaId(Ip4Address.valueOf("2.2.2.2")); | ||
165 | - ospfArea1.setInterfacesLst(ospfInterfaces); | ||
166 | - areas.add(ospfArea1); | ||
167 | - process1.setAreas(areas); | ||
168 | - ospfProcesses.add(process1); | ||
169 | - ospfController.updateConfig(ospfProcesses); | ||
170 | - assertThat(ospfController, is(notNullValue())); | ||
171 | - | ||
172 | - } | ||
173 | - | ||
174 | - /** | ||
175 | * Tests deleteConfig() method. | 139 | * Tests deleteConfig() method. |
176 | */ | 140 | */ |
177 | @Test | 141 | @Test |
... | @@ -183,7 +147,7 @@ public class OspfControllerImplTest { | ... | @@ -183,7 +147,7 @@ public class OspfControllerImplTest { |
183 | ospfInterface.setIpAddress(Ip4Address.valueOf("10.10.10.5")); | 147 | ospfInterface.setIpAddress(Ip4Address.valueOf("10.10.10.5")); |
184 | ospfInterfaces.add(ospfInterface); | 148 | ospfInterfaces.add(ospfInterface); |
185 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); | 149 | ospfArea.setAreaId(Ip4Address.valueOf("2.2.2.2")); |
186 | - ospfArea.setInterfacesLst(ospfInterfaces); | 150 | + ospfArea.setOspfInterfaceList(ospfInterfaces); |
187 | ospfProcess.setProcessId("10.10.10.10"); | 151 | ospfProcess.setProcessId("10.10.10.10"); |
188 | areas = new ArrayList(); | 152 | areas = new ArrayList(); |
189 | areas.add(ospfArea); | 153 | areas.add(ospfArea); |
... | @@ -194,7 +158,7 @@ public class OspfControllerImplTest { | ... | @@ -194,7 +158,7 @@ public class OspfControllerImplTest { |
194 | process1.setProcessId("11.11.11.11"); | 158 | process1.setProcessId("11.11.11.11"); |
195 | ospfArea1 = new OspfAreaImpl(); | 159 | ospfArea1 = new OspfAreaImpl(); |
196 | ospfArea1.setAreaId(Ip4Address.valueOf("2.2.2.2")); | 160 | ospfArea1.setAreaId(Ip4Address.valueOf("2.2.2.2")); |
197 | - ospfArea1.setInterfacesLst(ospfInterfaces); | 161 | + ospfArea1.setOspfInterfaceList(ospfInterfaces); |
198 | areas.add(ospfArea1); | 162 | areas.add(ospfArea1); |
199 | process1.setAreas(areas); | 163 | process1.setAreas(areas); |
200 | ospfProcesses.add(process1); | 164 | ospfProcesses.add(process1); |
... | @@ -221,7 +185,7 @@ public class OspfControllerImplTest { | ... | @@ -221,7 +185,7 @@ public class OspfControllerImplTest { |
221 | ospfRouter = new OspfRouterImpl(); | 185 | ospfRouter = new OspfRouterImpl(); |
222 | 186 | ||
223 | ospfController.agent.addLink(ospfRouter, new OspfLinkTedImpl()); | 187 | ospfController.agent.addLink(ospfRouter, new OspfLinkTedImpl()); |
224 | - ospfController.agent.deleteLink(ospfRouter); | 188 | + ospfController.agent.deleteLink(ospfRouter, new OspfLinkTedImpl()); |
225 | assertThat(ospfController, is(notNullValue())); | 189 | assertThat(ospfController, is(notNullValue())); |
226 | } | 190 | } |
227 | 191 | ... | ... |
... | @@ -21,6 +21,7 @@ import org.junit.Test; | ... | @@ -21,6 +21,7 @@ import org.junit.Test; |
21 | import org.onlab.packet.Ip4Address; | 21 | import org.onlab.packet.Ip4Address; |
22 | import org.onlab.packet.Ip6Address; | 22 | import org.onlab.packet.Ip6Address; |
23 | 23 | ||
24 | +import java.net.InetAddress; | ||
24 | import java.util.ArrayList; | 25 | import java.util.ArrayList; |
25 | import java.util.List; | 26 | import java.util.List; |
26 | 27 | ||
... | @@ -31,8 +32,6 @@ import static org.junit.Assert.assertThat; | ... | @@ -31,8 +32,6 @@ import static org.junit.Assert.assertThat; |
31 | * Unit test class for OspfDeviceTedImpl. | 32 | * Unit test class for OspfDeviceTedImpl. |
32 | */ | 33 | */ |
33 | public class OspfDeviceTedImplTest { | 34 | public class OspfDeviceTedImplTest { |
34 | - private static final Ip6Address LOCAL_ADDRESS = Ip6Address.valueOf("::1"); | ||
35 | - | ||
36 | private OspfDeviceTedImpl ospfDeviceTed; | 35 | private OspfDeviceTedImpl ospfDeviceTed; |
37 | 36 | ||
38 | @Before | 37 | @Before |
... | @@ -128,10 +127,10 @@ public class OspfDeviceTedImplTest { | ... | @@ -128,10 +127,10 @@ public class OspfDeviceTedImplTest { |
128 | /** | 127 | /** |
129 | * Tests ipv6RouterIds() getter method. | 128 | * Tests ipv6RouterIds() getter method. |
130 | */ | 129 | */ |
131 | - @Test | 130 | + @Test(expected = Exception.class) |
132 | public void testIpv6RouterIds() throws Exception { | 131 | public void testIpv6RouterIds() throws Exception { |
133 | List list = new ArrayList(); | 132 | List list = new ArrayList(); |
134 | - list.add(LOCAL_ADDRESS); | 133 | + list.add(Ip6Address.valueOf(InetAddress.getLocalHost())); |
135 | ospfDeviceTed.setIpv6RouterIds(list); | 134 | ospfDeviceTed.setIpv6RouterIds(list); |
136 | assertThat(ospfDeviceTed.ipv6RouterIds().size(), is(1)); | 135 | assertThat(ospfDeviceTed.ipv6RouterIds().size(), is(1)); |
137 | } | 136 | } |
... | @@ -139,11 +138,11 @@ public class OspfDeviceTedImplTest { | ... | @@ -139,11 +138,11 @@ public class OspfDeviceTedImplTest { |
139 | /** | 138 | /** |
140 | * Tests ipv6RouterIds() setter method. | 139 | * Tests ipv6RouterIds() setter method. |
141 | */ | 140 | */ |
142 | - @Test | 141 | + @Test(expected = Exception.class) |
143 | public void testSetIpv6RouterIds() throws Exception { | 142 | public void testSetIpv6RouterIds() throws Exception { |
144 | List list = new ArrayList(); | 143 | List list = new ArrayList(); |
145 | - list.add(LOCAL_ADDRESS); | 144 | + list.add(Ip6Address.valueOf(InetAddress.getLocalHost())); |
146 | ospfDeviceTed.setIpv6RouterIds(list); | 145 | ospfDeviceTed.setIpv6RouterIds(list); |
147 | assertThat(ospfDeviceTed.ipv6RouterIds().size(), is(1)); | 146 | assertThat(ospfDeviceTed.ipv6RouterIds().size(), is(1)); |
148 | } | 147 | } |
149 | -} | 148 | +} |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -21,6 +21,7 @@ import org.junit.Test; | ... | @@ -21,6 +21,7 @@ import org.junit.Test; |
21 | import org.onlab.packet.Ip4Address; | 21 | import org.onlab.packet.Ip4Address; |
22 | import org.onlab.util.Bandwidth; | 22 | import org.onlab.util.Bandwidth; |
23 | 23 | ||
24 | +import java.net.InetAddress; | ||
24 | import java.util.ArrayList; | 25 | import java.util.ArrayList; |
25 | import java.util.List; | 26 | import java.util.List; |
26 | 27 | ||
... | @@ -32,8 +33,6 @@ import static org.junit.Assert.assertThat; | ... | @@ -32,8 +33,6 @@ import static org.junit.Assert.assertThat; |
32 | * Unit test class for OspfDeviceTedImpl. | 33 | * Unit test class for OspfDeviceTedImpl. |
33 | */ | 34 | */ |
34 | public class OspfLinkTedImplTest { | 35 | public class OspfLinkTedImplTest { |
35 | - private static final Ip4Address LOCAL_ADDRESS = Ip4Address.valueOf("127.0.0.1"); | ||
36 | - | ||
37 | private OspfLinkTedImpl ospfLinkTed; | 36 | private OspfLinkTedImpl ospfLinkTed; |
38 | 37 | ||
39 | @Before | 38 | @Before |
... | @@ -91,7 +90,7 @@ public class OspfLinkTedImplTest { | ... | @@ -91,7 +90,7 @@ public class OspfLinkTedImplTest { |
91 | @Test | 90 | @Test |
92 | public void testIpv4RemRouterId() throws Exception { | 91 | public void testIpv4RemRouterId() throws Exception { |
93 | List list = new ArrayList(); | 92 | List list = new ArrayList(); |
94 | - list.add(LOCAL_ADDRESS); | 93 | + list.add(Ip4Address.valueOf(InetAddress.getLocalHost())); |
95 | ospfLinkTed.setIpv4RemRouterId(list); | 94 | ospfLinkTed.setIpv4RemRouterId(list); |
96 | assertThat(ospfLinkTed.ipv4RemRouterId().size(), is(1)); | 95 | assertThat(ospfLinkTed.ipv4RemRouterId().size(), is(1)); |
97 | } | 96 | } |
... | @@ -102,7 +101,7 @@ public class OspfLinkTedImplTest { | ... | @@ -102,7 +101,7 @@ public class OspfLinkTedImplTest { |
102 | @Test | 101 | @Test |
103 | public void testSetIpv4RemRouterId() throws Exception { | 102 | public void testSetIpv4RemRouterId() throws Exception { |
104 | List list = new ArrayList(); | 103 | List list = new ArrayList(); |
105 | - list.add(LOCAL_ADDRESS); | 104 | + list.add(Ip4Address.valueOf(InetAddress.getLocalHost())); |
106 | ospfLinkTed.setIpv4RemRouterId(list); | 105 | ospfLinkTed.setIpv4RemRouterId(list); |
107 | assertThat(ospfLinkTed.ipv4RemRouterId().size(), is(1)); | 106 | assertThat(ospfLinkTed.ipv4RemRouterId().size(), is(1)); |
108 | } | 107 | } |
... | @@ -133,7 +132,7 @@ public class OspfLinkTedImplTest { | ... | @@ -133,7 +132,7 @@ public class OspfLinkTedImplTest { |
133 | @Test | 132 | @Test |
134 | public void testIpv4LocRouterId() throws Exception { | 133 | public void testIpv4LocRouterId() throws Exception { |
135 | List list = new ArrayList(); | 134 | List list = new ArrayList(); |
136 | - list.add(LOCAL_ADDRESS); | 135 | + list.add(Ip4Address.valueOf(InetAddress.getLocalHost())); |
137 | ospfLinkTed.setIpv4LocRouterId(list); | 136 | ospfLinkTed.setIpv4LocRouterId(list); |
138 | assertThat(ospfLinkTed.ipv4LocRouterId().size(), is(1)); | 137 | assertThat(ospfLinkTed.ipv4LocRouterId().size(), is(1)); |
139 | } | 138 | } |
... | @@ -144,7 +143,7 @@ public class OspfLinkTedImplTest { | ... | @@ -144,7 +143,7 @@ public class OspfLinkTedImplTest { |
144 | @Test | 143 | @Test |
145 | public void testSetIpv4LocRouterId() throws Exception { | 144 | public void testSetIpv4LocRouterId() throws Exception { |
146 | List list = new ArrayList(); | 145 | List list = new ArrayList(); |
147 | - list.add(LOCAL_ADDRESS); | 146 | + list.add(Ip4Address.valueOf(InetAddress.getLocalHost())); |
148 | ospfLinkTed.setIpv4LocRouterId(list); | 147 | ospfLinkTed.setIpv4LocRouterId(list); |
149 | assertThat(ospfLinkTed.ipv4LocRouterId().size(), is(1)); | 148 | assertThat(ospfLinkTed.ipv4LocRouterId().size(), is(1)); |
150 | } | 149 | } |
... | @@ -202,4 +201,4 @@ public class OspfLinkTedImplTest { | ... | @@ -202,4 +201,4 @@ public class OspfLinkTedImplTest { |
202 | ospfLinkTed.setMaxUnResBandwidth(Bandwidth.bps(1234.0)); | 201 | ospfLinkTed.setMaxUnResBandwidth(Bandwidth.bps(1234.0)); |
203 | assertThat(ospfLinkTed.maxUnResBandwidth(), is(notNullValue())); | 202 | assertThat(ospfLinkTed.maxUnResBandwidth(), is(notNullValue())); |
204 | } | 203 | } |
205 | -} | 204 | +} |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -28,7 +28,7 @@ import java.net.InetSocketAddress; | ... | @@ -28,7 +28,7 @@ import java.net.InetSocketAddress; |
28 | import java.net.SocketAddress; | 28 | import java.net.SocketAddress; |
29 | 29 | ||
30 | import static org.hamcrest.CoreMatchers.is; | 30 | import static org.hamcrest.CoreMatchers.is; |
31 | -import static org.hamcrest.CoreMatchers.nullValue; | 31 | +import static org.hamcrest.CoreMatchers.notNullValue; |
32 | import static org.hamcrest.MatcherAssert.assertThat; | 32 | import static org.hamcrest.MatcherAssert.assertThat; |
33 | 33 | ||
34 | /** | 34 | /** |
... | @@ -36,7 +36,7 @@ import static org.hamcrest.MatcherAssert.assertThat; | ... | @@ -36,7 +36,7 @@ import static org.hamcrest.MatcherAssert.assertThat; |
36 | */ | 36 | */ |
37 | public class OspfMessageDecoderTest { | 37 | public class OspfMessageDecoderTest { |
38 | 38 | ||
39 | - private final byte[] hellopacket = {0, 0, 0, 0, 2, 1, 0, 44, -64, -88, -86, 8, 0, 0, 0, 1, 39, 59, | 39 | + private final byte[] hellopacket = {0, 0, 0, 0, 0, 2, 1, 0, 44, -64, -88, -86, 8, 0, 0, 0, 1, 39, 59, |
40 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 10, 2, 1, 0, 0, 0, | 40 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 10, 2, 1, 0, 0, 0, |
41 | 40, -64, -88, -86, 8, 0, 0, 0, 0}; | 41 | 40, -64, -88, -86, 8, 0, 0, 0, 0}; |
42 | private final byte[] ddpacket = {0, 0, 0, 0, 2, 2, 0, 32, -64, -88, -86, 8, 0, 0, 0, 1, -96, 82, | 42 | private final byte[] ddpacket = {0, 0, 0, 0, 2, 2, 0, 32, -64, -88, -86, 8, 0, 0, 0, 1, -96, 82, |
... | @@ -75,10 +75,10 @@ public class OspfMessageDecoderTest { | ... | @@ -75,10 +75,10 @@ public class OspfMessageDecoderTest { |
75 | */ | 75 | */ |
76 | @Test | 76 | @Test |
77 | public void testDecode() throws Exception { | 77 | public void testDecode() throws Exception { |
78 | - | ||
79 | channel = EasyMock.createMock(Channel.class); | 78 | channel = EasyMock.createMock(Channel.class); |
80 | socketAddress = InetSocketAddress.createUnresolved("127.0.0.1", 7000); | 79 | socketAddress = InetSocketAddress.createUnresolved("127.0.0.1", 7000); |
81 | channelBuffer = ChannelBuffers.copiedBuffer(hellopacket); | 80 | channelBuffer = ChannelBuffers.copiedBuffer(hellopacket); |
82 | - assertThat(ospfMessageDecoder.decode(ctx, channel, channelBuffer), is(nullValue())); | 81 | + ospfMessageDecoder.decode(ctx, channel, channelBuffer); |
82 | + assertThat(ospfMessageDecoder, is(notNullValue())); | ||
83 | } | 83 | } |
84 | } | 84 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -17,24 +17,11 @@ package org.onosproject.ospf.controller.impl; | ... | @@ -17,24 +17,11 @@ package org.onosproject.ospf.controller.impl; |
17 | 17 | ||
18 | 18 | ||
19 | import org.easymock.EasyMock; | 19 | import org.easymock.EasyMock; |
20 | -import org.jboss.netty.buffer.ChannelBuffer; | ||
21 | -import org.jboss.netty.buffer.ChannelBuffers; | ||
22 | import org.jboss.netty.channel.Channel; | 20 | import org.jboss.netty.channel.Channel; |
23 | import org.jboss.netty.channel.ChannelHandlerContext; | 21 | import org.jboss.netty.channel.ChannelHandlerContext; |
24 | import org.junit.After; | 22 | import org.junit.After; |
25 | import org.junit.Before; | 23 | import org.junit.Before; |
26 | import org.junit.Test; | 24 | import org.junit.Test; |
27 | -import org.onlab.packet.Ip4Address; | ||
28 | -import org.onosproject.ospf.controller.area.OspfInterfaceImpl; | ||
29 | -import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket; | ||
30 | -import org.onosproject.ospf.protocol.ospfpacket.types.HelloPacket; | ||
31 | -import org.onosproject.ospf.protocol.ospfpacket.types.LsAcknowledge; | ||
32 | -import org.onosproject.ospf.protocol.ospfpacket.types.LsRequest; | ||
33 | -import org.onosproject.ospf.protocol.ospfpacket.types.LsUpdate; | ||
34 | -import org.onosproject.ospf.protocol.util.OspfInterfaceState; | ||
35 | - | ||
36 | -import java.net.InetSocketAddress; | ||
37 | -import java.net.SocketAddress; | ||
38 | 25 | ||
39 | import static org.hamcrest.CoreMatchers.is; | 26 | import static org.hamcrest.CoreMatchers.is; |
40 | import static org.hamcrest.CoreMatchers.notNullValue; | 27 | import static org.hamcrest.CoreMatchers.notNullValue; |
... | @@ -44,55 +31,24 @@ import static org.hamcrest.MatcherAssert.assertThat; | ... | @@ -44,55 +31,24 @@ import static org.hamcrest.MatcherAssert.assertThat; |
44 | * Created by sdn on 13/1/16. | 31 | * Created by sdn on 13/1/16. |
45 | */ | 32 | */ |
46 | public class OspfMessageEncoderTest { | 33 | public class OspfMessageEncoderTest { |
47 | - private final byte[] hpacket = {2, 1, 0, 44, -64, -88, -86, 8, 0, 0, 0, 1, 39, 59, | 34 | + |
48 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 10, 2, 1, 0, 0, 0, | 35 | + private final byte[] object = {2, 1, 0, 44, -64, -88, -86, 8, 0, 0, 0, 1, 39, |
49 | - 40, -64, -88, -86, 8, 0, 0, 0, 0}; | 36 | + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 10, 2, 1, 0, 0, |
50 | - private final byte[] dpacket = {2, 2, 0, 32, -64, -88, -86, 8, 0, 0, 0, 1, -96, 82, | 37 | + 0, 40, -64, -88, -86, 8, 0, 0, 0, 0}; |
51 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -36, 2, 7, 65, 119, -87, 126}; | ||
52 | - private final byte[] lrpacket = {2, 3, 0, 36, -64, -88, -86, 3, 0, 0, 0, 1, -67, -57, | ||
53 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -64, -88, -86, 8, -64, -88, -86, 8}; | ||
54 | - private byte[] lAckpacket = {2, 5, 0, 44, -64, -88, -86, 8, 0, 0, 0, 1, -30, -12, | ||
55 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 2, 1, -64, -88, -86, 2, -64, | ||
56 | - -88, -86, 2, -128, 0, 0, 1, 74, -114, 0, 48}; | ||
57 | - private HelloPacket helloPacket; | ||
58 | - private DdPacket ddPacket; | ||
59 | - private LsAcknowledge lsAcknowledge; | ||
60 | - private LsRequest lsRequest; | ||
61 | - private LsUpdate lsUpdate; | ||
62 | - private ChannelHandlerContext ctx; | ||
63 | private OspfMessageEncoder ospfMessageEncoder; | 38 | private OspfMessageEncoder ospfMessageEncoder; |
64 | - private ChannelBuffer buf; | 39 | + private ChannelHandlerContext channelHandlerContext; |
65 | - private SocketAddress socketAddress; | ||
66 | private Channel channel; | 40 | private Channel channel; |
67 | 41 | ||
68 | @Before | 42 | @Before |
69 | public void setUp() throws Exception { | 43 | public void setUp() throws Exception { |
70 | ospfMessageEncoder = new OspfMessageEncoder(); | 44 | ospfMessageEncoder = new OspfMessageEncoder(); |
71 | - helloPacket = new HelloPacket(); | 45 | + channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class); |
72 | - ddPacket = new DdPacket(); | 46 | + channel = EasyMock.createMock(Channel.class); |
73 | - lsAcknowledge = new LsAcknowledge(); | ||
74 | - lsRequest = new LsRequest(); | ||
75 | - lsUpdate = new LsUpdate(); | ||
76 | - helloPacket.setOspftype(1); | ||
77 | - ddPacket.setOspftype(2); | ||
78 | - lsAcknowledge.setOspftype(5); | ||
79 | - lsRequest.setOspftype(3); | ||
80 | - lsUpdate.setOspftype(4); | ||
81 | - OspfInterfaceImpl ospfInterface = new OspfInterfaceImpl(); | ||
82 | - ospfInterface.setState(OspfInterfaceState.DROTHER); | ||
83 | - ospfMessageEncoder = new OspfMessageEncoder(ospfInterface); | ||
84 | - | ||
85 | } | 47 | } |
86 | 48 | ||
87 | @After | 49 | @After |
88 | public void tearDown() throws Exception { | 50 | public void tearDown() throws Exception { |
89 | - helloPacket = null; | ||
90 | - ddPacket = null; | ||
91 | - lsAcknowledge = null; | ||
92 | - lsRequest = null; | ||
93 | - lsUpdate = null; | ||
94 | ospfMessageEncoder = null; | 51 | ospfMessageEncoder = null; |
95 | - buf = null; | ||
96 | } | 52 | } |
97 | 53 | ||
98 | /** | 54 | /** |
... | @@ -100,33 +56,6 @@ public class OspfMessageEncoderTest { | ... | @@ -100,33 +56,6 @@ public class OspfMessageEncoderTest { |
100 | */ | 56 | */ |
101 | @Test | 57 | @Test |
102 | public void testEncode() throws Exception { | 58 | public void testEncode() throws Exception { |
103 | - socketAddress = InetSocketAddress.createUnresolved("127.0.0.1", 8600); | 59 | + assertThat(ospfMessageEncoder.encode(channelHandlerContext, channel, object), is(notNullValue())); |
104 | - channel = EasyMock.createMock(Channel.class); | ||
105 | - helloPacket = new HelloPacket(); | ||
106 | - helloPacket.setDestinationIp(Ip4Address.valueOf("15.15.15.15")); | ||
107 | - buf = ChannelBuffers.buffer(hpacket.length); | ||
108 | - buf.writeBytes(hpacket); | ||
109 | - helloPacket.readFrom(buf); | ||
110 | - ospfMessageEncoder.encode(ctx, channel, helloPacket); | ||
111 | - ddPacket = new DdPacket(); | ||
112 | - ddPacket.setDestinationIp(Ip4Address.valueOf("15.15.15.15")); | ||
113 | - buf = ChannelBuffers.buffer(dpacket.length); | ||
114 | - buf.writeBytes(dpacket); | ||
115 | - ddPacket.readFrom(buf); | ||
116 | - ospfMessageEncoder.encode(ctx, channel, ddPacket); | ||
117 | - lsRequest = new LsRequest(); | ||
118 | - lsRequest.setDestinationIp(Ip4Address.valueOf("15.15.15.15")); | ||
119 | - buf = ChannelBuffers.buffer(lrpacket.length); | ||
120 | - buf.writeBytes(lrpacket); | ||
121 | - lsRequest.readFrom(buf); | ||
122 | - ospfMessageEncoder.encode(ctx, channel, lsRequest); | ||
123 | - | ||
124 | - lsAcknowledge = new LsAcknowledge(); | ||
125 | - lsAcknowledge.setDestinationIp(Ip4Address.valueOf("15.15.15.15")); | ||
126 | - buf = ChannelBuffers.buffer(lAckpacket.length); | ||
127 | - buf.writeBytes(lAckpacket); | ||
128 | - lsAcknowledge.readFrom(buf); | ||
129 | - ospfMessageEncoder.encode(ctx, channel, lsAcknowledge); | ||
130 | - assertThat(ospfMessageEncoder, is(notNullValue())); | ||
131 | } | 60 | } |
132 | } | 61 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -18,12 +18,6 @@ package org.onosproject.ospf.controller.impl; | ... | @@ -18,12 +18,6 @@ package org.onosproject.ospf.controller.impl; |
18 | import org.jboss.netty.channel.ChannelPipeline; | 18 | import org.jboss.netty.channel.ChannelPipeline; |
19 | import org.junit.After; | 19 | import org.junit.After; |
20 | import org.junit.Before; | 20 | import org.junit.Before; |
21 | -import org.junit.Test; | ||
22 | -import org.onosproject.ospf.controller.area.OspfAreaImpl; | ||
23 | -import org.onosproject.ospf.controller.area.OspfInterfaceImpl; | ||
24 | - | ||
25 | -import static org.hamcrest.CoreMatchers.*; | ||
26 | -import static org.hamcrest.MatcherAssert.assertThat; | ||
27 | 21 | ||
28 | /** | 22 | /** |
29 | * Unit test class for OspfPipelineFactory. | 23 | * Unit test class for OspfPipelineFactory. |
... | @@ -35,8 +29,6 @@ public class OspfPipelineFactoryTest { | ... | @@ -35,8 +29,6 @@ public class OspfPipelineFactoryTest { |
35 | 29 | ||
36 | @Before | 30 | @Before |
37 | public void setUp() throws Exception { | 31 | public void setUp() throws Exception { |
38 | - ospfPipelineFactory = new OspfPipelineFactory(new Controller(), new OspfAreaImpl(), new OspfInterfaceImpl()); | ||
39 | - | ||
40 | } | 32 | } |
41 | 33 | ||
42 | @After | 34 | @After |
... | @@ -44,22 +36,4 @@ public class OspfPipelineFactoryTest { | ... | @@ -44,22 +36,4 @@ public class OspfPipelineFactoryTest { |
44 | ospfPipelineFactory = null; | 36 | ospfPipelineFactory = null; |
45 | channelPipeline = null; | 37 | channelPipeline = null; |
46 | } | 38 | } |
47 | - | ||
48 | - /** | ||
49 | - * Tests getPipeline() method. | ||
50 | - */ | ||
51 | - @Test | ||
52 | - public void testGetPipeline() throws Exception { | ||
53 | - channelPipeline = ospfPipelineFactory.getPipeline(); | ||
54 | - assertThat(channelPipeline, is(notNullValue())); | ||
55 | - } | ||
56 | - | ||
57 | - /** | ||
58 | - * Tests releaseExternalResources() method. | ||
59 | - */ | ||
60 | - @Test | ||
61 | - public void testReleaseExternalResources() throws Exception { | ||
62 | - ospfPipelineFactory.releaseExternalResources(); | ||
63 | - assertThat(channelPipeline, is(nullValue())); | ||
64 | - } | ||
65 | } | 39 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -74,8 +74,9 @@ public class LsaQueueConsumerTest { | ... | @@ -74,8 +74,9 @@ public class LsaQueueConsumerTest { |
74 | @Test | 74 | @Test |
75 | public void testRun() throws Exception { | 75 | public void testRun() throws Exception { |
76 | blockingQueue = new ArrayBlockingQueue(5); | 76 | blockingQueue = new ArrayBlockingQueue(5); |
77 | - channel = EasyMock.createMock(Channel.class); | ||
78 | ospfArea = new OspfAreaImpl(); | 77 | ospfArea = new OspfAreaImpl(); |
78 | + lsdbAge = new LsdbAgeImpl(ospfArea); | ||
79 | + channel = EasyMock.createMock(Channel.class); | ||
79 | lsaWrapper = new LsaWrapperImpl(); | 80 | lsaWrapper = new LsaWrapperImpl(); |
80 | lsaWrapper.setLsaProcessing("verifyChecksum"); | 81 | lsaWrapper.setLsaProcessing("verifyChecksum"); |
81 | blockingQueue.add(lsaWrapper); | 82 | blockingQueue.add(lsaWrapper); |
... | @@ -104,7 +105,7 @@ public class LsaQueueConsumerTest { | ... | @@ -104,7 +105,7 @@ public class LsaQueueConsumerTest { |
104 | lsaHeader.setLsType(1); | 105 | lsaHeader.setLsType(1); |
105 | lsaWrapper.setLsaHeader(lsaHeader); | 106 | lsaWrapper.setLsaHeader(lsaHeader); |
106 | lsaWrapper.setLsaProcessing("refreshLsa"); | 107 | lsaWrapper.setLsaProcessing("refreshLsa"); |
107 | - lsaWrapper.setLsdbAge(new LsdbAgeImpl(new OspfAreaImpl())); | 108 | + lsaWrapper.setLsdbAge(new LsdbAgeImpl(ospfArea)); |
108 | blockingQueue.add(lsaWrapper); | 109 | blockingQueue.add(lsaWrapper); |
109 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); | 110 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); |
110 | lsaQueueConsumer.run(); | 111 | lsaQueueConsumer.run(); |
... | @@ -128,7 +129,7 @@ public class LsaQueueConsumerTest { | ... | @@ -128,7 +129,7 @@ public class LsaQueueConsumerTest { |
128 | lsaHeader.setLsType(2); | 129 | lsaHeader.setLsType(2); |
129 | lsaWrapper.setLsaHeader(lsaHeader); | 130 | lsaWrapper.setLsaHeader(lsaHeader); |
130 | lsaWrapper.setLsaProcessing("refreshLsa"); | 131 | lsaWrapper.setLsaProcessing("refreshLsa"); |
131 | - lsaWrapper.setLsdbAge(new LsdbAgeImpl(new OspfAreaImpl())); | 132 | + lsaWrapper.setLsdbAge(new LsdbAgeImpl(ospfArea)); |
132 | blockingQueue.add(lsaWrapper); | 133 | blockingQueue.add(lsaWrapper); |
133 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); | 134 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); |
134 | lsaQueueConsumer.run(); | 135 | lsaQueueConsumer.run(); |
... | @@ -155,7 +156,7 @@ public class LsaQueueConsumerTest { | ... | @@ -155,7 +156,7 @@ public class LsaQueueConsumerTest { |
155 | lsaHeader.setLsType(2); | 156 | lsaHeader.setLsType(2); |
156 | lsaWrapper.setLsaHeader(lsaHeader); | 157 | lsaWrapper.setLsaHeader(lsaHeader); |
157 | lsaWrapper.setLsaProcessing("maxAgeLsa"); | 158 | lsaWrapper.setLsaProcessing("maxAgeLsa"); |
158 | - lsaWrapper.setLsdbAge(new LsdbAgeImpl(new OspfAreaImpl())); | 159 | + lsaWrapper.setLsdbAge(new LsdbAgeImpl(ospfArea)); |
159 | blockingQueue.add(lsaWrapper); | 160 | blockingQueue.add(lsaWrapper); |
160 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); | 161 | lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea); |
161 | lsaQueueConsumer.run(); | 162 | lsaQueueConsumer.run(); |
... | @@ -168,7 +169,7 @@ public class LsaQueueConsumerTest { | ... | @@ -168,7 +169,7 @@ public class LsaQueueConsumerTest { |
168 | @Test | 169 | @Test |
169 | public void testSetChannel() throws Exception { | 170 | public void testSetChannel() throws Exception { |
170 | channel = EasyMock.createMock(Channel.class); | 171 | channel = EasyMock.createMock(Channel.class); |
171 | - lsdbAge = new LsdbAgeImpl(new OspfAreaImpl()); | 172 | + lsdbAge = new LsdbAgeImpl(ospfArea); |
172 | lsdbAge.startDbAging(); | 173 | lsdbAge.startDbAging(); |
173 | lsdbAge.setChannel(channel); | 174 | lsdbAge.setChannel(channel); |
174 | assertThat(lsaQueueConsumer, is(notNullValue())); | 175 | assertThat(lsaQueueConsumer, is(notNullValue())); | ... | ... |
... | @@ -23,6 +23,7 @@ import org.junit.Before; | ... | @@ -23,6 +23,7 @@ import org.junit.Before; |
23 | import org.junit.Test; | 23 | import org.junit.Test; |
24 | import org.onosproject.ospf.controller.LsaBin; | 24 | import org.onosproject.ospf.controller.LsaBin; |
25 | import org.onosproject.ospf.controller.OspfArea; | 25 | import org.onosproject.ospf.controller.OspfArea; |
26 | +import org.onosproject.ospf.controller.OspfLsaType; | ||
26 | import org.onosproject.ospf.controller.area.OspfAreaImpl; | 27 | import org.onosproject.ospf.controller.area.OspfAreaImpl; |
27 | 28 | ||
28 | import static org.hamcrest.CoreMatchers.*; | 29 | import static org.hamcrest.CoreMatchers.*; |
... | @@ -181,14 +182,10 @@ public class LsdbAgeImplTest { | ... | @@ -181,14 +182,10 @@ public class LsdbAgeImplTest { |
181 | public void testRefereshLsa() throws Exception { | 182 | public void testRefereshLsa() throws Exception { |
182 | lsaWrapper = EasyMock.createMock(LsaWrapperImpl.class); | 183 | lsaWrapper = EasyMock.createMock(LsaWrapperImpl.class); |
183 | lsaWrapper.setBinNumber(0); | 184 | lsaWrapper.setBinNumber(0); |
185 | + lsaWrapper.setLsaType(OspfLsaType.NETWORK); | ||
184 | lsdbAge.addLsaToMaxAgeBin("lsa1", lsaWrapper); | 186 | lsdbAge.addLsaToMaxAgeBin("lsa1", lsaWrapper); |
185 | lsdbAge.ageLsaAndFlood(); | 187 | lsdbAge.ageLsaAndFlood(); |
186 | - lsaWrapper.setBinNumber(0); | ||
187 | - lsaWrapper = EasyMock.createMock(LsaWrapperImpl.class); | ||
188 | - lsdbAge.addLsaToMaxAgeBin("lsa2", lsaWrapper); | ||
189 | - lsdbAge.ageLsaAndFlood(); | ||
190 | lsdbAge.startDbAging(); | 188 | lsdbAge.startDbAging(); |
191 | - lsaBin = new LsaBinImpl(1809); | ||
192 | lsdbAge.refreshLsa(); | 189 | lsdbAge.refreshLsa(); |
193 | assertThat(lsdbAge, is(notNullValue())); | 190 | assertThat(lsdbAge, is(notNullValue())); |
194 | } | 191 | } | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/exceptions/OspfErrorType.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/exceptions/OspfParseException.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/exceptions/package-info.java
100644 → 100755
File mode changed
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/LsaHeader.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/OpaqueLsaHeader.java
100644 → 100755
1 | /* | 1 | /* |
2 | - * Copyright 2016-present Open Networking Laboratory | 2 | + * Copyright 2016 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/TlvHeader.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/AdministrativeGroup.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/LinkId.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/LinkSubType.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/LinkSubTypes.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/LinkType.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/LocalInterfaceIpAddress.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/MaximumBandwidth.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/MaximumReservableBandwidth.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/RemoteInterfaceIpAddress.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/TrafficEngineeringMetric.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnknownLinkSubType.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnreservedBandwidth.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/linksubtype/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/subtypes/OspfExternalDestination.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/subtypes/OspfLsaLink.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/subtypes/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/tlvtypes/LinkTlv.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/tlvtypes/OpaqueTopLevelTlvTypes.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/tlvtypes/RouterTlv.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/tlvtypes/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/AsbrSummaryLsa.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/ExternalLsa.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/NetworkLsa.java
100644 → 100755
... | @@ -103,6 +103,16 @@ public class NetworkLsa extends LsaHeader { | ... | @@ -103,6 +103,16 @@ public class NetworkLsa extends LsaHeader { |
103 | } | 103 | } |
104 | 104 | ||
105 | /** | 105 | /** |
106 | + * Gets the list of attached routers. | ||
107 | + * | ||
108 | + * @return list of attached routers | ||
109 | + */ | ||
110 | + public List<Ip4Address> attachedRouters() { | ||
111 | + | ||
112 | + return attachedRouters; | ||
113 | + } | ||
114 | + | ||
115 | + /** | ||
106 | * Reads from channel buffer and populate instance. | 116 | * Reads from channel buffer and populate instance. |
107 | * | 117 | * |
108 | * @param channelBuffer channel buffer instance | 118 | * @param channelBuffer channel buffer instance | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/OpaqueLsa10.java
100644 → 100755
... | @@ -29,7 +29,6 @@ import org.onosproject.ospf.protocol.lsa.tlvtypes.OpaqueTopLevelTlvTypes; | ... | @@ -29,7 +29,6 @@ import org.onosproject.ospf.protocol.lsa.tlvtypes.OpaqueTopLevelTlvTypes; |
29 | import org.onosproject.ospf.protocol.lsa.tlvtypes.RouterTlv; | 29 | import org.onosproject.ospf.protocol.lsa.tlvtypes.RouterTlv; |
30 | import org.onosproject.ospf.protocol.util.OspfParameters; | 30 | import org.onosproject.ospf.protocol.util.OspfParameters; |
31 | 31 | ||
32 | -import java.util.Arrays; | ||
33 | import java.util.ArrayList; | 32 | import java.util.ArrayList; |
34 | import java.util.List; | 33 | import java.util.List; |
35 | 34 | ||
... | @@ -193,11 +192,11 @@ public class OpaqueLsa10 extends OpaqueLsaHeader { | ... | @@ -193,11 +192,11 @@ public class OpaqueLsa10 extends OpaqueLsaHeader { |
193 | } | 192 | } |
194 | OpaqueLsa10 that = (OpaqueLsa10) o; | 193 | OpaqueLsa10 that = (OpaqueLsa10) o; |
195 | return Objects.equal(topLevelValues, that.topLevelValues) && | 194 | return Objects.equal(topLevelValues, that.topLevelValues) && |
196 | - Arrays.equals(opaqueInfo, that.opaqueInfo); | 195 | + Objects.equal(opaqueInfo, that.opaqueInfo); |
197 | } | 196 | } |
198 | 197 | ||
199 | @Override | 198 | @Override |
200 | public int hashCode() { | 199 | public int hashCode() { |
201 | - return Objects.hashCode(Arrays.hashCode(opaqueInfo), topLevelValues); | 200 | + return Objects.hashCode(opaqueInfo, topLevelValues); |
202 | } | 201 | } |
203 | } | 202 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/OpaqueLsa11.java
100644 → 100755
... | @@ -16,13 +16,12 @@ | ... | @@ -16,13 +16,12 @@ |
16 | package org.onosproject.ospf.protocol.lsa.types; | 16 | package org.onosproject.ospf.protocol.lsa.types; |
17 | 17 | ||
18 | import com.google.common.base.MoreObjects; | 18 | import com.google.common.base.MoreObjects; |
19 | +import com.google.common.base.Objects; | ||
19 | import com.google.common.primitives.Bytes; | 20 | import com.google.common.primitives.Bytes; |
20 | import org.jboss.netty.buffer.ChannelBuffer; | 21 | import org.jboss.netty.buffer.ChannelBuffer; |
21 | import org.onosproject.ospf.controller.OspfLsaType; | 22 | import org.onosproject.ospf.controller.OspfLsaType; |
22 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; | 23 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
23 | 24 | ||
24 | -import java.util.Arrays; | ||
25 | - | ||
26 | /** | 25 | /** |
27 | * Representation of an Opaque LSA of type AS (11). | 26 | * Representation of an Opaque LSA of type AS (11). |
28 | */ | 27 | */ |
... | @@ -107,12 +106,12 @@ public class OpaqueLsa11 extends OpaqueLsaHeader { | ... | @@ -107,12 +106,12 @@ public class OpaqueLsa11 extends OpaqueLsaHeader { |
107 | return false; | 106 | return false; |
108 | } | 107 | } |
109 | OpaqueLsa11 that = (OpaqueLsa11) o; | 108 | OpaqueLsa11 that = (OpaqueLsa11) o; |
110 | - return Arrays.equals(opaqueInfo, that.opaqueInfo); | 109 | + return Objects.equal(opaqueInfo, that.opaqueInfo); |
111 | } | 110 | } |
112 | 111 | ||
113 | @Override | 112 | @Override |
114 | public int hashCode() { | 113 | public int hashCode() { |
115 | - return Arrays.hashCode(opaqueInfo); | 114 | + return Objects.hashCode(opaqueInfo); |
116 | } | 115 | } |
117 | 116 | ||
118 | @Override | 117 | @Override | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/OpaqueLsa9.java
100644 → 100755
... | @@ -16,13 +16,12 @@ | ... | @@ -16,13 +16,12 @@ |
16 | package org.onosproject.ospf.protocol.lsa.types; | 16 | package org.onosproject.ospf.protocol.lsa.types; |
17 | 17 | ||
18 | import com.google.common.base.MoreObjects; | 18 | import com.google.common.base.MoreObjects; |
19 | +import com.google.common.base.Objects; | ||
19 | import com.google.common.primitives.Bytes; | 20 | import com.google.common.primitives.Bytes; |
20 | import org.jboss.netty.buffer.ChannelBuffer; | 21 | import org.jboss.netty.buffer.ChannelBuffer; |
21 | import org.onosproject.ospf.controller.OspfLsaType; | 22 | import org.onosproject.ospf.controller.OspfLsaType; |
22 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; | 23 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
23 | 24 | ||
24 | -import java.util.Arrays; | ||
25 | - | ||
26 | /** | 25 | /** |
27 | * Representation of an Opaque LSA of type link local (9). | 26 | * Representation of an Opaque LSA of type link local (9). |
28 | */ | 27 | */ |
... | @@ -109,12 +108,12 @@ public class OpaqueLsa9 extends OpaqueLsaHeader { | ... | @@ -109,12 +108,12 @@ public class OpaqueLsa9 extends OpaqueLsaHeader { |
109 | return false; | 108 | return false; |
110 | } | 109 | } |
111 | OpaqueLsa9 that = (OpaqueLsa9) o; | 110 | OpaqueLsa9 that = (OpaqueLsa9) o; |
112 | - return Arrays.equals(opaqueInfo, that.opaqueInfo); | 111 | + return Objects.equal(opaqueInfo, that.opaqueInfo); |
113 | } | 112 | } |
114 | 113 | ||
115 | @Override | 114 | @Override |
116 | public int hashCode() { | 115 | public int hashCode() { |
117 | - return Arrays.hashCode(opaqueInfo); | 116 | + return Objects.hashCode(opaqueInfo); |
118 | } | 117 | } |
119 | 118 | ||
120 | @Override | 119 | @Override | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/RouterLsa.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/SummaryLsa.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/TopLevelTlv.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/lsa/types/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageReader.java
100644 → 100755
... | @@ -18,6 +18,7 @@ package org.onosproject.ospf.protocol.ospfpacket; | ... | @@ -18,6 +18,7 @@ package org.onosproject.ospf.protocol.ospfpacket; |
18 | 18 | ||
19 | import org.jboss.netty.buffer.ChannelBuffer; | 19 | import org.jboss.netty.buffer.ChannelBuffer; |
20 | import org.onlab.packet.Ip4Address; | 20 | import org.onlab.packet.Ip4Address; |
21 | +import org.onosproject.ospf.controller.OspfMessage; | ||
21 | import org.onosproject.ospf.exceptions.OspfErrorType; | 22 | import org.onosproject.ospf.exceptions.OspfErrorType; |
22 | import org.onosproject.ospf.exceptions.OspfParseException; | 23 | import org.onosproject.ospf.exceptions.OspfParseException; |
23 | import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket; | 24 | import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket; |
... | @@ -46,15 +47,8 @@ public class OspfMessageReader { | ... | @@ -46,15 +47,8 @@ public class OspfMessageReader { |
46 | public OspfMessage readFromBuffer(ChannelBuffer channelBuffer) | 47 | public OspfMessage readFromBuffer(ChannelBuffer channelBuffer) |
47 | throws Exception { | 48 | throws Exception { |
48 | 49 | ||
49 | - if (channelBuffer.readableBytes() < OspfUtil.PACKET_MINIMUM_LENGTH) { | ||
50 | - log.error("Packet should have minimum length..."); | ||
51 | - throw new OspfParseException(OspfErrorType.MESSAGE_HEADER_ERROR, OspfErrorType.BAD_MESSAGE_LENGTH); | ||
52 | - } | ||
53 | - | ||
54 | try { | 50 | try { |
55 | OspfPacketHeader ospfHeader = getOspfHeader(channelBuffer); | 51 | OspfPacketHeader ospfHeader = getOspfHeader(channelBuffer); |
56 | - int len = ospfHeader.ospfPacLength() - OspfUtil.OSPF_HEADER_LENGTH; | ||
57 | - | ||
58 | OspfMessage ospfMessage = null; | 52 | OspfMessage ospfMessage = null; |
59 | switch (ospfHeader.ospfType()) { | 53 | switch (ospfHeader.ospfType()) { |
60 | case OspfParameters.HELLO: | 54 | case OspfParameters.HELLO: |
... | @@ -81,7 +75,8 @@ public class OspfMessageReader { | ... | @@ -81,7 +75,8 @@ public class OspfMessageReader { |
81 | try { | 75 | try { |
82 | log.debug("{} Received::Message Length :: {} ", ospfMessage.ospfMessageType(), | 76 | log.debug("{} Received::Message Length :: {} ", ospfMessage.ospfMessageType(), |
83 | ospfHeader.ospfPacLength()); | 77 | ospfHeader.ospfPacLength()); |
84 | - ospfMessage.readFrom(channelBuffer.readBytes(len)); | 78 | + ospfMessage.readFrom(channelBuffer.readBytes(ospfHeader.ospfPacLength() - |
79 | + OspfUtil.OSPF_HEADER_LENGTH)); | ||
85 | } catch (Exception e) { | 80 | } catch (Exception e) { |
86 | throw new OspfParseException(OspfErrorType.OSPF_MESSAGE_ERROR, | 81 | throw new OspfParseException(OspfErrorType.OSPF_MESSAGE_ERROR, |
87 | OspfErrorType.BAD_MESSAGE); | 82 | OspfErrorType.BAD_MESSAGE); |
... | @@ -105,22 +100,13 @@ public class OspfMessageReader { | ... | @@ -105,22 +100,13 @@ public class OspfMessageReader { |
105 | private OspfPacketHeader getOspfHeader(ChannelBuffer channelBuffer) throws Exception { | 100 | private OspfPacketHeader getOspfHeader(ChannelBuffer channelBuffer) throws Exception { |
106 | OspfPacketHeader ospfPacketHeader = new OspfPacketHeader(); | 101 | OspfPacketHeader ospfPacketHeader = new OspfPacketHeader(); |
107 | 102 | ||
108 | - byte[] sourceIpBytes = new byte[OspfUtil.FOUR_BYTES]; | 103 | + // Determine OSPF version & Packet Type |
109 | - channelBuffer.readBytes(sourceIpBytes, 0, OspfUtil.FOUR_BYTES); | ||
110 | - Ip4Address sourceIP = Ip4Address.valueOf(sourceIpBytes); | ||
111 | - | ||
112 | - // Determine ospf version & Packet Type | ||
113 | int version = channelBuffer.readByte(); //byte 1 is ospf version | 104 | int version = channelBuffer.readByte(); //byte 1 is ospf version |
114 | int packetType = channelBuffer.readByte(); //byte 2 is ospf packet type | 105 | int packetType = channelBuffer.readByte(); //byte 2 is ospf packet type |
115 | 106 | ||
116 | // byte 3 & 4 combine is packet length. | 107 | // byte 3 & 4 combine is packet length. |
117 | int packetLength = channelBuffer.readShort(); | 108 | int packetLength = channelBuffer.readShort(); |
118 | 109 | ||
119 | - if (packetLength > channelBuffer.readableBytes() + OspfUtil.FOUR_BYTES) { | ||
120 | - log.error("Packet should have minimum length..."); | ||
121 | - throw new OspfParseException(OspfErrorType.MESSAGE_HEADER_ERROR, OspfErrorType.BAD_MESSAGE_LENGTH); | ||
122 | - } | ||
123 | - | ||
124 | byte[] tempByteArray = new byte[OspfUtil.FOUR_BYTES]; | 110 | byte[] tempByteArray = new byte[OspfUtil.FOUR_BYTES]; |
125 | channelBuffer.readBytes(tempByteArray, 0, OspfUtil.FOUR_BYTES); | 111 | channelBuffer.readBytes(tempByteArray, 0, OspfUtil.FOUR_BYTES); |
126 | Ip4Address routerId = Ip4Address.valueOf(tempByteArray); | 112 | Ip4Address routerId = Ip4Address.valueOf(tempByteArray); |
... | @@ -133,7 +119,6 @@ public class OspfMessageReader { | ... | @@ -133,7 +119,6 @@ public class OspfMessageReader { |
133 | int auType = channelBuffer.readUnsignedShort(); | 119 | int auType = channelBuffer.readUnsignedShort(); |
134 | int authentication = (int) channelBuffer.readLong(); | 120 | int authentication = (int) channelBuffer.readLong(); |
135 | 121 | ||
136 | - ospfPacketHeader.setSourceIp(sourceIP); | ||
137 | ospfPacketHeader.setOspfVer(version); | 122 | ospfPacketHeader.setOspfVer(version); |
138 | ospfPacketHeader.setOspftype(packetType); | 123 | ospfPacketHeader.setOspftype(packetType); |
139 | ospfPacketHeader.setOspfPacLength(packetLength); | 124 | ospfPacketHeader.setOspfPacLength(packetLength); | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageWriter.java
100644 → 100755
1 | /* | 1 | /* |
2 | -* Copyright 2016-present Open Networking Laboratory | 2 | +* Copyright 2016 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
... | @@ -15,41 +15,36 @@ | ... | @@ -15,41 +15,36 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.ospf.protocol.ospfpacket; | 16 | package org.onosproject.ospf.protocol.ospfpacket; |
17 | 17 | ||
18 | -import org.jboss.netty.buffer.ChannelBuffer; | 18 | +import org.onosproject.ospf.controller.OspfMessage; |
19 | -import org.jboss.netty.buffer.ChannelBuffers; | ||
20 | import org.onosproject.ospf.protocol.util.OspfParameters; | 19 | import org.onosproject.ospf.protocol.util.OspfParameters; |
21 | import org.onosproject.ospf.protocol.util.OspfUtil; | 20 | import org.onosproject.ospf.protocol.util.OspfUtil; |
22 | import org.slf4j.Logger; | 21 | import org.slf4j.Logger; |
23 | import org.slf4j.LoggerFactory; | 22 | import org.slf4j.LoggerFactory; |
24 | 23 | ||
25 | /** | 24 | /** |
26 | - * A message writer which writes an OspfMessage to ChannelBuffer. | 25 | + * A message writer which writes an OSPF message to byte array. |
27 | */ | 26 | */ |
28 | public class OspfMessageWriter { | 27 | public class OspfMessageWriter { |
29 | private static final Logger log = LoggerFactory.getLogger(OspfMessageWriter.class); | 28 | private static final Logger log = LoggerFactory.getLogger(OspfMessageWriter.class); |
30 | 29 | ||
31 | /** | 30 | /** |
32 | - * Writes OSPF message to ChannelBuffer. | 31 | + * Writes OSPF message to byte array. |
33 | * | 32 | * |
34 | * @param ospfMessage OSPF message | 33 | * @param ospfMessage OSPF message |
34 | + * @param interfaceIndex interface index | ||
35 | * @param interfaceState interface state | 35 | * @param interfaceState interface state |
36 | - * @param interfaceType interface type | 36 | + * @return message as byte array |
37 | - * @return channelBuffer channel buffer instance | ||
38 | - * @throws Exception might throws exception while parsing message | ||
39 | */ | 37 | */ |
40 | - public ChannelBuffer writeToBuffer(OspfMessage ospfMessage, int interfaceState, | 38 | + public byte[] getMessage(OspfMessage ospfMessage, int interfaceIndex, int interfaceState) { |
41 | - int interfaceType) throws Exception { | ||
42 | 39 | ||
43 | - ChannelBuffer buf = null; | 40 | + byte[] buf = null; |
44 | switch (ospfMessage.ospfMessageType().value()) { | 41 | switch (ospfMessage.ospfMessageType().value()) { |
45 | case OspfParameters.HELLO: | 42 | case OspfParameters.HELLO: |
46 | case OspfParameters.LSACK: | 43 | case OspfParameters.LSACK: |
47 | - buf = writeMessageToBuffer(ospfMessage, interfaceState); | ||
48 | - break; | ||
49 | case OspfParameters.DD: | 44 | case OspfParameters.DD: |
50 | case OspfParameters.LSREQUEST: | 45 | case OspfParameters.LSREQUEST: |
51 | case OspfParameters.LSUPDATE: | 46 | case OspfParameters.LSUPDATE: |
52 | - buf = writeMessageToBuffer(ospfMessage, interfaceState); | 47 | + buf = writeMessageToBytes(ospfMessage, interfaceIndex, interfaceState); |
53 | break; | 48 | break; |
54 | default: | 49 | default: |
55 | log.debug("Message Writer[Encoder] - Unknown Message to encode..!!!"); | 50 | log.debug("Message Writer[Encoder] - Unknown Message to encode..!!!"); |
... | @@ -60,14 +55,13 @@ public class OspfMessageWriter { | ... | @@ -60,14 +55,13 @@ public class OspfMessageWriter { |
60 | } | 55 | } |
61 | 56 | ||
62 | /** | 57 | /** |
63 | - * Writes an OSPF Message to channel buffer. | 58 | + * Writes an OSPF Message to byte array. |
64 | * | 59 | * |
65 | * @param ospfMessage OSPF Message instance | 60 | * @param ospfMessage OSPF Message instance |
66 | * @param interfaceState interface state | 61 | * @param interfaceState interface state |
67 | - * @return channelBuffer instance | 62 | + * @return message as byte array |
68 | */ | 63 | */ |
69 | - private ChannelBuffer writeMessageToBuffer(OspfMessage ospfMessage, int interfaceState) throws Exception { | 64 | + private byte[] writeMessageToBytes(OspfMessage ospfMessage, int interfaceIndex, int interfaceState) { |
70 | - ChannelBuffer channelBuffer = null; | ||
71 | byte[] ospfMessageAsByte = ospfMessage.asBytes(); | 65 | byte[] ospfMessageAsByte = ospfMessage.asBytes(); |
72 | //Add the length and checksum in byte array at length position 2 & 3 and Checksum position | 66 | //Add the length and checksum in byte array at length position 2 & 3 and Checksum position |
73 | ospfMessageAsByte = OspfUtil.addLengthAndCheckSum(ospfMessageAsByte, OspfUtil.OSPFPACKET_LENGTH_POS1, | 67 | ospfMessageAsByte = OspfUtil.addLengthAndCheckSum(ospfMessageAsByte, OspfUtil.OSPFPACKET_LENGTH_POS1, |
... | @@ -76,16 +70,13 @@ public class OspfMessageWriter { | ... | @@ -76,16 +70,13 @@ public class OspfMessageWriter { |
76 | OspfUtil.OSPFPACKET_CHECKSUM_POS2); | 70 | OspfUtil.OSPFPACKET_CHECKSUM_POS2); |
77 | //Add Interface State Info and destination IP as metadata | 71 | //Add Interface State Info and destination IP as metadata |
78 | if (interfaceState == OspfParameters.DR || interfaceState == OspfParameters.BDR) { | 72 | if (interfaceState == OspfParameters.DR || interfaceState == OspfParameters.BDR) { |
79 | - ospfMessageAsByte = OspfUtil.addMetadata(ospfMessageAsByte, OspfUtil.JOIN_ALL_DROUTERS, | 73 | + ospfMessageAsByte = OspfUtil.addMetadata(interfaceIndex, ospfMessageAsByte, OspfUtil.JOIN_ALL_DROUTERS, |
80 | ospfMessage.destinationIp()); | 74 | ospfMessage.destinationIp()); |
81 | } else { | 75 | } else { |
82 | - ospfMessageAsByte = OspfUtil.addMetadata(ospfMessageAsByte, OspfUtil.ONLY_ALL_SPF_ROUTERS, | 76 | + ospfMessageAsByte = OspfUtil.addMetadata(interfaceIndex, ospfMessageAsByte, OspfUtil.ONLY_ALL_SPF_ROUTERS, |
83 | ospfMessage.destinationIp()); | 77 | ospfMessage.destinationIp()); |
84 | } | 78 | } |
85 | 79 | ||
86 | - channelBuffer = ChannelBuffers.buffer(ospfMessageAsByte.length); | 80 | + return ospfMessageAsByte; |
87 | - channelBuffer.writeBytes(ospfMessageAsByte); | ||
88 | - | ||
89 | - return channelBuffer; | ||
90 | } | 81 | } |
91 | } | 82 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/OspfPacketHeader.java
100644 → 100755
... | @@ -18,8 +18,9 @@ package org.onosproject.ospf.protocol.ospfpacket; | ... | @@ -18,8 +18,9 @@ package org.onosproject.ospf.protocol.ospfpacket; |
18 | import com.google.common.base.MoreObjects; | 18 | import com.google.common.base.MoreObjects; |
19 | import org.jboss.netty.buffer.ChannelBuffer; | 19 | import org.jboss.netty.buffer.ChannelBuffer; |
20 | import org.onlab.packet.Ip4Address; | 20 | import org.onlab.packet.Ip4Address; |
21 | +import org.onosproject.ospf.controller.OspfMessage; | ||
22 | +import org.onosproject.ospf.controller.OspfPacketType; | ||
21 | import org.onosproject.ospf.exceptions.OspfParseException; | 23 | import org.onosproject.ospf.exceptions.OspfParseException; |
22 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | ||
23 | 24 | ||
24 | /** | 25 | /** |
25 | * Defines the OSPF Packet Header, fields and access methods. | 26 | * Defines the OSPF Packet Header, fields and access methods. |
... | @@ -57,6 +58,7 @@ public class OspfPacketHeader implements OspfMessage { | ... | @@ -57,6 +58,7 @@ public class OspfPacketHeader implements OspfMessage { |
57 | private int authentication; | 58 | private int authentication; |
58 | private Ip4Address destinationIp; | 59 | private Ip4Address destinationIp; |
59 | private Ip4Address sourceIp; | 60 | private Ip4Address sourceIp; |
61 | + private int interfaceIndex; | ||
60 | 62 | ||
61 | /** | 63 | /** |
62 | * Gets the source IP. | 64 | * Gets the source IP. |
... | @@ -256,11 +258,30 @@ public class OspfPacketHeader implements OspfMessage { | ... | @@ -256,11 +258,30 @@ public class OspfPacketHeader implements OspfMessage { |
256 | } | 258 | } |
257 | 259 | ||
258 | /** | 260 | /** |
261 | + * Returns the interface index on which the message received. | ||
262 | + * | ||
263 | + * @return interface index on which the message received | ||
264 | + */ | ||
265 | + public int interfaceIndex() { | ||
266 | + return interfaceIndex; | ||
267 | + } | ||
268 | + | ||
269 | + /** | ||
270 | + * Sets the interface index on which the message received. | ||
271 | + * | ||
272 | + * @param interfaceIndex interface index on which the message received | ||
273 | + */ | ||
274 | + public void setInterfaceIndex(int interfaceIndex) { | ||
275 | + this.interfaceIndex = interfaceIndex; | ||
276 | + } | ||
277 | + | ||
278 | + /** | ||
259 | * Populates the header from the packetHeader instance. | 279 | * Populates the header from the packetHeader instance. |
260 | * | 280 | * |
261 | * @param ospfPacketHeader packet header instance. | 281 | * @param ospfPacketHeader packet header instance. |
262 | */ | 282 | */ |
263 | public void populateHeader(OspfPacketHeader ospfPacketHeader) { | 283 | public void populateHeader(OspfPacketHeader ospfPacketHeader) { |
284 | + this.setInterfaceIndex(ospfPacketHeader.interfaceIndex()); | ||
264 | this.setSourceIp(ospfPacketHeader.sourceIp()); | 285 | this.setSourceIp(ospfPacketHeader.sourceIp()); |
265 | this.setOspfVer(ospfPacketHeader.ospfVersion()); | 286 | this.setOspfVer(ospfPacketHeader.ospfVersion()); |
266 | this.setOspftype(ospfPacketHeader.ospfType()); | 287 | this.setOspftype(ospfPacketHeader.ospfType()); | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/subtype/LsRequestPacket.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/subtype/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/DdPacket.java
100644 → 100755
... | @@ -23,7 +23,7 @@ import org.onosproject.ospf.exceptions.OspfParseException; | ... | @@ -23,7 +23,7 @@ import org.onosproject.ospf.exceptions.OspfParseException; |
23 | import org.onosproject.ospf.protocol.lsa.LsaHeader; | 23 | import org.onosproject.ospf.protocol.lsa.LsaHeader; |
24 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; | 24 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
25 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 25 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
26 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | 26 | +import org.onosproject.ospf.controller.OspfPacketType; |
27 | import org.onosproject.ospf.protocol.util.OspfParameters; | 27 | import org.onosproject.ospf.protocol.util.OspfParameters; |
28 | import org.onosproject.ospf.protocol.util.OspfUtil; | 28 | import org.onosproject.ospf.protocol.util.OspfUtil; |
29 | import org.slf4j.Logger; | 29 | import org.slf4j.Logger; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/HelloPacket.java
100644 → 100755
... | @@ -22,7 +22,7 @@ import org.onlab.packet.Ip4Address; | ... | @@ -22,7 +22,7 @@ import org.onlab.packet.Ip4Address; |
22 | import org.onosproject.ospf.exceptions.OspfErrorType; | 22 | import org.onosproject.ospf.exceptions.OspfErrorType; |
23 | import org.onosproject.ospf.exceptions.OspfParseException; | 23 | import org.onosproject.ospf.exceptions.OspfParseException; |
24 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 24 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
25 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | 25 | +import org.onosproject.ospf.controller.OspfPacketType; |
26 | import org.onosproject.ospf.protocol.util.OspfUtil; | 26 | import org.onosproject.ospf.protocol.util.OspfUtil; |
27 | import org.slf4j.Logger; | 27 | import org.slf4j.Logger; |
28 | import org.slf4j.LoggerFactory; | 28 | import org.slf4j.LoggerFactory; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/LsAcknowledge.java
100644 → 100755
... | @@ -23,7 +23,7 @@ import org.onosproject.ospf.exceptions.OspfParseException; | ... | @@ -23,7 +23,7 @@ import org.onosproject.ospf.exceptions.OspfParseException; |
23 | import org.onosproject.ospf.protocol.lsa.LsaHeader; | 23 | import org.onosproject.ospf.protocol.lsa.LsaHeader; |
24 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; | 24 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
25 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 25 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
26 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | 26 | +import org.onosproject.ospf.controller.OspfPacketType; |
27 | import org.onosproject.ospf.protocol.util.OspfParameters; | 27 | import org.onosproject.ospf.protocol.util.OspfParameters; |
28 | import org.onosproject.ospf.protocol.util.OspfUtil; | 28 | import org.onosproject.ospf.protocol.util.OspfUtil; |
29 | import org.slf4j.Logger; | 29 | import org.slf4j.Logger; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/LsRequest.java
100644 → 100755
... | @@ -22,7 +22,7 @@ import org.onlab.packet.Ip4Address; | ... | @@ -22,7 +22,7 @@ import org.onlab.packet.Ip4Address; |
22 | import org.onosproject.ospf.exceptions.OspfParseException; | 22 | import org.onosproject.ospf.exceptions.OspfParseException; |
23 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 23 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
24 | import org.onosproject.ospf.protocol.ospfpacket.subtype.LsRequestPacket; | 24 | import org.onosproject.ospf.protocol.ospfpacket.subtype.LsRequestPacket; |
25 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | 25 | +import org.onosproject.ospf.controller.OspfPacketType; |
26 | import org.onosproject.ospf.protocol.util.OspfUtil; | 26 | import org.onosproject.ospf.protocol.util.OspfUtil; |
27 | import org.slf4j.Logger; | 27 | import org.slf4j.Logger; |
28 | import org.slf4j.LoggerFactory; | 28 | import org.slf4j.LoggerFactory; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/LsUpdate.java
100644 → 100755
... | @@ -32,7 +32,7 @@ import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa9; | ... | @@ -32,7 +32,7 @@ import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa9; |
32 | import org.onosproject.ospf.protocol.lsa.types.RouterLsa; | 32 | import org.onosproject.ospf.protocol.lsa.types.RouterLsa; |
33 | import org.onosproject.ospf.protocol.lsa.types.SummaryLsa; | 33 | import org.onosproject.ospf.protocol.lsa.types.SummaryLsa; |
34 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 34 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
35 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | 35 | +import org.onosproject.ospf.controller.OspfPacketType; |
36 | import org.onosproject.ospf.protocol.util.OspfParameters; | 36 | import org.onosproject.ospf.protocol.util.OspfParameters; |
37 | import org.onosproject.ospf.protocol.util.OspfUtil; | 37 | import org.onosproject.ospf.protocol.util.OspfUtil; |
38 | import org.slf4j.Logger; | 38 | import org.slf4j.Logger; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/ospfpacket/types/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/package-info.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/ChecksumCalculator.java
100644 → 100755
... | @@ -25,7 +25,7 @@ import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa11; | ... | @@ -25,7 +25,7 @@ import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa11; |
25 | import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa9; | 25 | import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa9; |
26 | import org.onosproject.ospf.protocol.lsa.types.RouterLsa; | 26 | import org.onosproject.ospf.protocol.lsa.types.RouterLsa; |
27 | import org.onosproject.ospf.protocol.lsa.types.SummaryLsa; | 27 | import org.onosproject.ospf.protocol.lsa.types.SummaryLsa; |
28 | -import org.onosproject.ospf.protocol.ospfpacket.OspfMessage; | 28 | +import org.onosproject.ospf.controller.OspfMessage; |
29 | import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket; | 29 | import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket; |
30 | import org.onosproject.ospf.protocol.ospfpacket.types.HelloPacket; | 30 | import org.onosproject.ospf.protocol.ospfpacket.types.HelloPacket; |
31 | import org.onosproject.ospf.protocol.ospfpacket.types.LsAcknowledge; | 31 | import org.onosproject.ospf.protocol.ospfpacket.types.LsAcknowledge; | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfInterfaceState.java
100644 → 100755
... | @@ -31,20 +31,55 @@ public enum OspfInterfaceState { | ... | @@ -31,20 +31,55 @@ public enum OspfInterfaceState { |
31 | private int value; | 31 | private int value; |
32 | 32 | ||
33 | /** | 33 | /** |
34 | - * Creates an instance of Interface State. | 34 | + * Creates an instance of interface state. |
35 | * | 35 | * |
36 | - * @param value Interface State value | 36 | + * @param value Interface state value |
37 | */ | 37 | */ |
38 | OspfInterfaceState(int value) { | 38 | OspfInterfaceState(int value) { |
39 | this.value = value; | 39 | this.value = value; |
40 | } | 40 | } |
41 | 41 | ||
42 | /** | 42 | /** |
43 | - * Gets value for Interface State. | 43 | + * Gets value for Interface state. |
44 | * | 44 | * |
45 | - * @return value Interface State | 45 | + * @return value Interface state |
46 | */ | 46 | */ |
47 | public int value() { | 47 | public int value() { |
48 | return value; | 48 | return value; |
49 | } | 49 | } |
50 | + | ||
51 | + /** | ||
52 | + * Gets interface state. | ||
53 | + * | ||
54 | + * @return interface state | ||
55 | + */ | ||
56 | + public String interfaceState() { | ||
57 | + String state = null; | ||
58 | + switch (value) { | ||
59 | + case 1: | ||
60 | + state = "DOWN"; | ||
61 | + break; | ||
62 | + case 2: | ||
63 | + state = "LOOPBACK"; | ||
64 | + break; | ||
65 | + case 3: | ||
66 | + state = "WAITING"; | ||
67 | + break; | ||
68 | + case 4: | ||
69 | + state = "POINT2POINT"; | ||
70 | + break; | ||
71 | + case 5: | ||
72 | + state = "DROTHER"; | ||
73 | + break; | ||
74 | + case 6: | ||
75 | + state = "BDR"; | ||
76 | + break; | ||
77 | + case 7: | ||
78 | + state = "DR"; | ||
79 | + break; | ||
80 | + default: | ||
81 | + break; | ||
82 | + } | ||
83 | + return state; | ||
84 | + } | ||
50 | } | 85 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfParameters.java
100644 → 100755
File mode changed
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/OspfUtil.java
100644 → 100755
... | @@ -36,10 +36,11 @@ import java.util.StringTokenizer; | ... | @@ -36,10 +36,11 @@ import java.util.StringTokenizer; |
36 | * Representation of an OSPF constants and utility methods. | 36 | * Representation of an OSPF constants and utility methods. |
37 | */ | 37 | */ |
38 | public final class OspfUtil { | 38 | public final class OspfUtil { |
39 | - | ||
40 | public static final int OSPF_VERSION_2 = 2; | 39 | public static final int OSPF_VERSION_2 = 2; |
41 | public static final int OSPF_VERSION = OSPF_VERSION_2; | 40 | public static final int OSPF_VERSION = OSPF_VERSION_2; |
42 | public static final int PACKET_MINIMUM_LENGTH = 24; | 41 | public static final int PACKET_MINIMUM_LENGTH = 24; |
42 | + public static final int METADATA_LEN = 5; | ||
43 | + public static final int MINIMUM_FRAME_LEN = 1487; | ||
43 | public static final int OSPF_HEADER_LENGTH = 24; | 44 | public static final int OSPF_HEADER_LENGTH = 24; |
44 | public static final int LSA_HEADER_LENGTH = 20; | 45 | public static final int LSA_HEADER_LENGTH = 20; |
45 | public static final int DD_HEADER_LENGTH = OSPF_HEADER_LENGTH + 8; | 46 | public static final int DD_HEADER_LENGTH = OSPF_HEADER_LENGTH + 8; |
... | @@ -52,6 +53,8 @@ public final class OspfUtil { | ... | @@ -52,6 +53,8 @@ public final class OspfUtil { |
52 | public static final int LSAPACKET_CHECKSUM_POS2 = 17; | 53 | public static final int LSAPACKET_CHECKSUM_POS2 = 17; |
53 | public static final Ip4Address ALL_SPF_ROUTERS = Ip4Address.valueOf("224.0.0.5"); | 54 | public static final Ip4Address ALL_SPF_ROUTERS = Ip4Address.valueOf("224.0.0.5"); |
54 | public static final Ip4Address ALL_DROUTERS = Ip4Address.valueOf("224.0.0.6"); | 55 | public static final Ip4Address ALL_DROUTERS = Ip4Address.valueOf("224.0.0.6"); |
56 | + public static final Ip4Address DEFAULTIP = Ip4Address.valueOf("0.0.0.0"); | ||
57 | + public static final int RETRANSMITINTERVAL = 5; | ||
55 | public static final int ONLY_ALL_SPF_ROUTERS = 1; | 58 | public static final int ONLY_ALL_SPF_ROUTERS = 1; |
56 | public static final int JOIN_ALL_DROUTERS = 2; | 59 | public static final int JOIN_ALL_DROUTERS = 2; |
57 | public static final int INITIALIZE_SET = 1; | 60 | public static final int INITIALIZE_SET = 1; |
... | @@ -62,9 +65,16 @@ public final class OspfUtil { | ... | @@ -62,9 +65,16 @@ public final class OspfUtil { |
62 | public static final int NOT_MASTER = 0; | 65 | public static final int NOT_MASTER = 0; |
63 | public static final int NOT_ASSIGNED = 0; | 66 | public static final int NOT_ASSIGNED = 0; |
64 | public static final int FOUR_BYTES = 4; | 67 | public static final int FOUR_BYTES = 4; |
68 | + public static final int FIVE_BYTES = 5; | ||
65 | public static final int EIGHT_BYTES = 8; | 69 | public static final int EIGHT_BYTES = 8; |
66 | public static final int TWELVE_BYTES = 12; | 70 | public static final int TWELVE_BYTES = 12; |
67 | public static final int EXTERNAL_DESTINATION_LENGTH = 12; | 71 | public static final int EXTERNAL_DESTINATION_LENGTH = 12; |
72 | + public static final String SHOST = "127.0.0.1"; | ||
73 | + public static final int SPORT = 7000; | ||
74 | + public static final int MTU = 1500; | ||
75 | + public static final char CONFIG_LENGTH = 1498; | ||
76 | + public static final char ROUTER_PRIORITY = 0; | ||
77 | + public static final int HELLO_PACKET_OPTIONS = 2; | ||
68 | private static final Logger log = | 78 | private static final Logger log = |
69 | LoggerFactory.getLogger(OspfUtil.class); | 79 | LoggerFactory.getLogger(OspfUtil.class); |
70 | 80 | ||
... | @@ -398,18 +408,21 @@ public final class OspfUtil { | ... | @@ -398,18 +408,21 @@ public final class OspfUtil { |
398 | /** | 408 | /** |
399 | * Adds metadata to ospf packet like whether to join multi cast group and destination IP. | 409 | * Adds metadata to ospf packet like whether to join multi cast group and destination IP. |
400 | * | 410 | * |
411 | + * @param interfaceIndex interface index | ||
401 | * @param ospfPacket OSPF packet | 412 | * @param ospfPacket OSPF packet |
402 | * @param allDroutersValue whether to join multi cast or not | 413 | * @param allDroutersValue whether to join multi cast or not |
403 | * @param destinationIp destination ip address | 414 | * @param destinationIp destination ip address |
404 | * @return byte array | 415 | * @return byte array |
405 | */ | 416 | */ |
406 | - public static byte[] addMetadata(byte[] ospfPacket, int allDroutersValue, Ip4Address destinationIp) { | 417 | + public static byte[] addMetadata(int interfaceIndex, byte[] ospfPacket, int allDroutersValue, |
418 | + Ip4Address destinationIp) { | ||
407 | byte[] packet; | 419 | byte[] packet; |
420 | + byte[] interfaceIndexByteVal = {(byte) interfaceIndex}; | ||
408 | byte[] allDroutersByteVal = {(byte) allDroutersValue}; | 421 | byte[] allDroutersByteVal = {(byte) allDroutersValue}; |
409 | byte[] destIpAsBytes = destinationIp.toOctets(); | 422 | byte[] destIpAsBytes = destinationIp.toOctets(); |
410 | - byte[] metadata = Bytes.concat(allDroutersByteVal, destIpAsBytes); | 423 | + byte[] metadata = Bytes.concat(interfaceIndexByteVal, allDroutersByteVal); |
411 | - | 424 | + metadata = Bytes.concat(metadata, destIpAsBytes); |
412 | - packet = Bytes.concat(metadata, ospfPacket); | 425 | + packet = Bytes.concat(ospfPacket, metadata); |
413 | 426 | ||
414 | return packet; | 427 | return packet; |
415 | } | 428 | } | ... | ... |
protocols/ospf/protocol/src/main/java/org/onosproject/ospf/protocol/util/package-info.java
100644 → 100755
File mode changed
... | @@ -20,6 +20,7 @@ import org.jboss.netty.buffer.ChannelBuffers; | ... | @@ -20,6 +20,7 @@ import org.jboss.netty.buffer.ChannelBuffers; |
20 | import org.junit.After; | 20 | import org.junit.After; |
21 | import org.junit.Before; | 21 | import org.junit.Before; |
22 | import org.junit.Test; | 22 | import org.junit.Test; |
23 | +import org.onosproject.ospf.protocol.util.OspfUtil; | ||
23 | 24 | ||
24 | import static org.hamcrest.CoreMatchers.is; | 25 | import static org.hamcrest.CoreMatchers.is; |
25 | import static org.hamcrest.CoreMatchers.notNullValue; | 26 | import static org.hamcrest.CoreMatchers.notNullValue; |
... | @@ -31,17 +32,17 @@ import static org.hamcrest.MatcherAssert.assertThat; | ... | @@ -31,17 +32,17 @@ import static org.hamcrest.MatcherAssert.assertThat; |
31 | 32 | ||
32 | public class OspfMessageReaderTest { | 33 | public class OspfMessageReaderTest { |
33 | 34 | ||
34 | - private final byte[] packet1 = {1, 1, 1, 1, 2, 1, 0, 44, -64, -88, -86, 8, | 35 | + private final byte[] packet1 = {2, 1, 0, 44, -64, -88, -86, 8, |
35 | 0, 0, 0, 1, 39, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, | 36 | 0, 0, 0, 1, 39, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, |
36 | 10, 2, 1, 0, 0, 0, 40, -64, -88, -86, 8, 0, 0, 0, 0}; | 37 | 10, 2, 1, 0, 0, 0, 40, -64, -88, -86, 8, 0, 0, 0, 0}; |
37 | - private final byte[] packet2 = {1, 1, 1, 1, 2, 2, 0, 52, -64, -88, -86, 8, 0, | 38 | + private final byte[] packet2 = {2, 2, 0, 52, -64, -88, -86, 8, 0, |
38 | 0, 0, 1, -96, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -36, 2, 7, 65, 119, | 39 | 0, 0, 1, -96, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -36, 2, 7, 65, 119, |
39 | -87, 126, 0, 23, 2, 1, 10, 10, 10, 10, 10, 10, 10, 10, -128, 0, 0, 6, | 40 | -87, 126, 0, 23, 2, 1, 10, 10, 10, 10, 10, 10, 10, 10, -128, 0, 0, 6, |
40 | -69, 26, 0, 36}; | 41 | -69, 26, 0, 36}; |
41 | - private final byte[] packet3 = {1, 1, 1, 1, 2, 3, 0, 36, -64, -88, -86, 3, 0, | 42 | + private final byte[] packet3 = {2, 3, 0, 36, -64, -88, -86, 3, 0, |
42 | 0, 0, 1, -67, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -64, -88, | 43 | 0, 0, 1, -67, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -64, -88, |
43 | -86, 8, -64, -88, -86, 8}; | 44 | -86, 8, -64, -88, -86, 8}; |
44 | - private final byte[] packet4 = {1, 1, 1, 1, 2, 4, 1, 36, -64, -88, -86, 3, 0, | 45 | + private final byte[] packet4 = {2, 4, 1, 36, -64, -88, -86, 3, 0, |
45 | 0, 0, 1, 54, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, | 46 | 0, 0, 1, 54, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, |
46 | 2, 2, 1, -64, -88, -86, 3, -64, -88, -86, 3, -128, 0, | 47 | 2, 2, 1, -64, -88, -86, 3, -64, -88, -86, 3, -128, 0, |
47 | 0, 1, 58, -100, 0, 48, 2, 0, 0, 2, -64, -88, -86, | 48 | 0, 1, 58, -100, 0, 48, 2, 0, 0, 2, -64, -88, -86, |
... | @@ -62,7 +63,7 @@ public class OspfMessageReaderTest { | ... | @@ -62,7 +63,7 @@ public class OspfMessageReaderTest { |
62 | 0, 0, 0, 0, 0, 0, 0, 3, 2, 5, -64, -88, -84, 0, -64, | 63 | 0, 0, 0, 0, 0, 0, 0, 3, 2, 5, -64, -88, -84, 0, -64, |
63 | -88, -86, 2, -128, 0, 0, 1, 51, 65, 0, 36, -1, -1, -1, 0, | 64 | -88, -86, 2, -128, 0, 0, 1, 51, 65, 0, 36, -1, -1, -1, 0, |
64 | -128, 0, 0, 20, -64, -88, -86, 10, 0, 0, 0, 0}; | 65 | -128, 0, 0, 20, -64, -88, -86, 10, 0, 0, 0, 0}; |
65 | - private final byte[] packet5 = {1, 1, 1, 1, 2, 5, 0, 44, -64, -88, -86, 8, 0, 0, | 66 | + private final byte[] packet5 = {2, 5, 0, 44, -64, -88, -86, 8, 0, 0, |
66 | 0, 1, -30, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 2, 1, -64, -88, -86, | 67 | 0, 1, -30, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 2, 1, -64, -88, -86, |
67 | 2, -64, -88, -86, 2, -128, 0, 0, 1, 74, -114, 0, 48}; | 68 | 2, -64, -88, -86, 2, -128, 0, 0, 1, 74, -114, 0, 48}; |
68 | private OspfMessageReader ospfMessageReader; | 69 | private OspfMessageReader ospfMessageReader; |
... | @@ -84,21 +85,39 @@ public class OspfMessageReaderTest { | ... | @@ -84,21 +85,39 @@ public class OspfMessageReaderTest { |
84 | */ | 85 | */ |
85 | @Test | 86 | @Test |
86 | public void testReadFromBuffer() throws Exception { | 87 | public void testReadFromBuffer() throws Exception { |
87 | - channelBuffer = ChannelBuffers.copiedBuffer(packet1); | 88 | + channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet1)); |
88 | ospfMessageReader.readFromBuffer(channelBuffer); | 89 | ospfMessageReader.readFromBuffer(channelBuffer); |
89 | 90 | ||
90 | - channelBuffer = ChannelBuffers.copiedBuffer(packet2); | 91 | + channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet2)); |
91 | ospfMessageReader.readFromBuffer(channelBuffer); | 92 | ospfMessageReader.readFromBuffer(channelBuffer); |
92 | 93 | ||
93 | - channelBuffer = ChannelBuffers.copiedBuffer(packet3); | 94 | + channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet3)); |
94 | ospfMessageReader.readFromBuffer(channelBuffer); | 95 | ospfMessageReader.readFromBuffer(channelBuffer); |
95 | 96 | ||
96 | - channelBuffer = ChannelBuffers.copiedBuffer(packet4); | 97 | + channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet4)); |
97 | ospfMessageReader.readFromBuffer(channelBuffer); | 98 | ospfMessageReader.readFromBuffer(channelBuffer); |
98 | 99 | ||
99 | - channelBuffer = ChannelBuffers.copiedBuffer(packet5); | 100 | + channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet5)); |
100 | ospfMessageReader.readFromBuffer(channelBuffer); | 101 | ospfMessageReader.readFromBuffer(channelBuffer); |
101 | assertThat(ospfMessageReader, is(notNullValue())); | 102 | assertThat(ospfMessageReader, is(notNullValue())); |
103 | + } | ||
102 | 104 | ||
105 | + /** | ||
106 | + * Frames the packet to min frame length. | ||
107 | + * | ||
108 | + * @param ospfPacket OSPF packet | ||
109 | + * @return OSPF packet as byte array | ||
110 | + */ | ||
111 | + private byte[] framePacket(byte[] ospfPacket) { | ||
112 | + //Set the length of the packet | ||
113 | + //Get the total length of the packet | ||
114 | + int length = ospfPacket.length; | ||
115 | + //PDU_LENGTH + 1 byte for interface index | ||
116 | + if (length < OspfUtil.MINIMUM_FRAME_LEN) { | ||
117 | + byte[] bytes = new byte[OspfUtil.MINIMUM_FRAME_LEN + 5]; | ||
118 | + System.arraycopy(ospfPacket, 0, bytes, 0, length); | ||
119 | + return bytes; | ||
120 | + } | ||
121 | + return ospfPacket; | ||
103 | } | 122 | } |
104 | } | 123 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -57,10 +57,10 @@ public class OspfMessageWriterTest { | ... | @@ -57,10 +57,10 @@ public class OspfMessageWriterTest { |
57 | } | 57 | } |
58 | 58 | ||
59 | /** | 59 | /** |
60 | - * Tests writeToBuffer() method. | 60 | + * Tests getMessage() method. |
61 | */ | 61 | */ |
62 | @Test | 62 | @Test |
63 | - public void testWriteToBuffer() throws Exception { | 63 | + public void testGetMessage() throws Exception { |
64 | helloPacket = new HelloPacket(); | 64 | helloPacket = new HelloPacket(); |
65 | helloPacket.setAuthType(1); | 65 | helloPacket.setAuthType(1); |
66 | helloPacket.setOspftype(1); | 66 | helloPacket.setOspftype(1); |
... | @@ -79,12 +79,12 @@ public class OspfMessageWriterTest { | ... | @@ -79,12 +79,12 @@ public class OspfMessageWriterTest { |
79 | helloPacket.setBdr(Ip4Address.valueOf("2.2.2.2")); | 79 | helloPacket.setBdr(Ip4Address.valueOf("2.2.2.2")); |
80 | helloPacket.addNeighbor(Ip4Address.valueOf("8.8.8.8")); | 80 | helloPacket.addNeighbor(Ip4Address.valueOf("8.8.8.8")); |
81 | helloPacket.setDestinationIp(Ip4Address.valueOf("5.5.5.5")); | 81 | helloPacket.setDestinationIp(Ip4Address.valueOf("5.5.5.5")); |
82 | - ospfMessageWriter.writeToBuffer(helloPacket, 7, 1); | 82 | + ospfMessageWriter.getMessage(helloPacket, 7, 1); |
83 | assertThat(ospfMessageWriter, is(notNullValue())); | 83 | assertThat(ospfMessageWriter, is(notNullValue())); |
84 | } | 84 | } |
85 | 85 | ||
86 | @Test(expected = Exception.class) | 86 | @Test(expected = Exception.class) |
87 | - public void testWriteToBuffer1() throws Exception { | 87 | + public void testGetMessage1() throws Exception { |
88 | 88 | ||
89 | ddPacket = new DdPacket(); | 89 | ddPacket = new DdPacket(); |
90 | ddPacket.setAuthType(1); | 90 | ddPacket.setAuthType(1); |
... | @@ -95,12 +95,12 @@ public class OspfMessageWriterTest { | ... | @@ -95,12 +95,12 @@ public class OspfMessageWriterTest { |
95 | ddPacket.setAuthentication(2); | 95 | ddPacket.setAuthentication(2); |
96 | ddPacket.setOspfPacLength(48); | 96 | ddPacket.setOspfPacLength(48); |
97 | ddPacket.setOspfVer(2); | 97 | ddPacket.setOspfVer(2); |
98 | - ospfMessageWriter.writeToBuffer(ddPacket, 1, 1); | 98 | + ospfMessageWriter.getMessage(ddPacket, 1, 1); |
99 | assertThat(ospfMessageWriter, is(notNullValue())); | 99 | assertThat(ospfMessageWriter, is(notNullValue())); |
100 | } | 100 | } |
101 | 101 | ||
102 | @Test(expected = Exception.class) | 102 | @Test(expected = Exception.class) |
103 | - public void testWriteToBuffer2() throws Exception { | 103 | + public void testGetMessage2() throws Exception { |
104 | 104 | ||
105 | lsAck = new LsAcknowledge(); | 105 | lsAck = new LsAcknowledge(); |
106 | lsAck.setAuthType(1); | 106 | lsAck.setAuthType(1); |
... | @@ -111,12 +111,12 @@ public class OspfMessageWriterTest { | ... | @@ -111,12 +111,12 @@ public class OspfMessageWriterTest { |
111 | lsAck.setAuthentication(2); | 111 | lsAck.setAuthentication(2); |
112 | lsAck.setOspfPacLength(48); | 112 | lsAck.setOspfPacLength(48); |
113 | lsAck.setOspfVer(2); | 113 | lsAck.setOspfVer(2); |
114 | - ospfMessageWriter.writeToBuffer(lsAck, 1, 1); | 114 | + ospfMessageWriter.getMessage(lsAck, 1, 1); |
115 | assertThat(ospfMessageWriter, is(notNullValue())); | 115 | assertThat(ospfMessageWriter, is(notNullValue())); |
116 | } | 116 | } |
117 | 117 | ||
118 | @Test(expected = Exception.class) | 118 | @Test(expected = Exception.class) |
119 | - public void testWriteToBuffer3() throws Exception { | 119 | + public void testGetMessage3() throws Exception { |
120 | lsReq = new LsRequest(); | 120 | lsReq = new LsRequest(); |
121 | lsReq.setAuthType(1); | 121 | lsReq.setAuthType(1); |
122 | lsReq.setOspftype(3); | 122 | lsReq.setOspftype(3); |
... | @@ -126,12 +126,15 @@ public class OspfMessageWriterTest { | ... | @@ -126,12 +126,15 @@ public class OspfMessageWriterTest { |
126 | lsReq.setAuthentication(2); | 126 | lsReq.setAuthentication(2); |
127 | lsReq.setOspfPacLength(48); | 127 | lsReq.setOspfPacLength(48); |
128 | lsReq.setOspfVer(2); | 128 | lsReq.setOspfVer(2); |
129 | - ospfMessageWriter.writeToBuffer(lsReq, 1, 1); | 129 | + ospfMessageWriter.getMessage(lsReq, 1, 1); |
130 | assertThat(ospfMessageWriter, is(notNullValue())); | 130 | assertThat(ospfMessageWriter, is(notNullValue())); |
131 | } | 131 | } |
132 | 132 | ||
133 | + /** | ||
134 | + * Tests getMessage() method. | ||
135 | + */ | ||
133 | @Test(expected = Exception.class) | 136 | @Test(expected = Exception.class) |
134 | - public void testWriteToBuffer4() throws Exception { | 137 | + public void testGetMessage4() throws Exception { |
135 | lsUpdate = new LsUpdate(); | 138 | lsUpdate = new LsUpdate(); |
136 | lsUpdate.setAuthType(1); | 139 | lsUpdate.setAuthType(1); |
137 | lsUpdate.setOspftype(3); | 140 | lsUpdate.setOspftype(3); |
... | @@ -141,15 +144,15 @@ public class OspfMessageWriterTest { | ... | @@ -141,15 +144,15 @@ public class OspfMessageWriterTest { |
141 | lsUpdate.setAuthentication(2); | 144 | lsUpdate.setAuthentication(2); |
142 | lsUpdate.setOspfPacLength(48); | 145 | lsUpdate.setOspfPacLength(48); |
143 | lsUpdate.setOspfVer(2); | 146 | lsUpdate.setOspfVer(2); |
144 | - ospfMessageWriter.writeToBuffer(lsUpdate, 1, 1); | 147 | + ospfMessageWriter.getMessage(lsUpdate, 1, 1); |
145 | assertThat(ospfMessageWriter, is(notNullValue())); | 148 | assertThat(ospfMessageWriter, is(notNullValue())); |
146 | } | 149 | } |
147 | 150 | ||
148 | /** | 151 | /** |
149 | - * Tests writeToBuffer() method. | 152 | + * Tests getMessage() method. |
150 | */ | 153 | */ |
151 | @Test(expected = Exception.class) | 154 | @Test(expected = Exception.class) |
152 | - public void testWriteToBuffer5() throws Exception { | 155 | + public void testGetMessage5() throws Exception { |
153 | lsAck = new LsAcknowledge(); | 156 | lsAck = new LsAcknowledge(); |
154 | lsAck.setAuthType(1); | 157 | lsAck.setAuthType(1); |
155 | lsAck.setOspftype(5); | 158 | lsAck.setOspftype(5); |
... | @@ -159,6 +162,6 @@ public class OspfMessageWriterTest { | ... | @@ -159,6 +162,6 @@ public class OspfMessageWriterTest { |
159 | lsAck.setAuthentication(2); | 162 | lsAck.setAuthentication(2); |
160 | lsAck.setOspfPacLength(48); | 163 | lsAck.setOspfPacLength(48); |
161 | lsAck.setOspfVer(2); | 164 | lsAck.setOspfVer(2); |
162 | - ospfMessageWriter.writeToBuffer(lsAck, 1, 1); | 165 | + ospfMessageWriter.getMessage(lsAck, 1, 1); |
163 | } | 166 | } |
164 | } | 167 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -22,10 +22,10 @@ import org.junit.Assert; | ... | @@ -22,10 +22,10 @@ import org.junit.Assert; |
22 | import org.junit.Before; | 22 | import org.junit.Before; |
23 | import org.junit.Test; | 23 | import org.junit.Test; |
24 | import org.onlab.packet.Ip4Address; | 24 | import org.onlab.packet.Ip4Address; |
25 | +import org.onosproject.ospf.controller.OspfPacketType; | ||
25 | import org.onosproject.ospf.protocol.lsa.LsaHeader; | 26 | import org.onosproject.ospf.protocol.lsa.LsaHeader; |
26 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; | 27 | import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
27 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 28 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
28 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | ||
29 | 29 | ||
30 | import java.util.List; | 30 | import java.util.List; |
31 | import java.util.Vector; | 31 | import java.util.Vector; | ... | ... |
... | @@ -21,8 +21,8 @@ import org.junit.After; | ... | @@ -21,8 +21,8 @@ import org.junit.After; |
21 | import org.junit.Before; | 21 | import org.junit.Before; |
22 | import org.junit.Test; | 22 | import org.junit.Test; |
23 | import org.onlab.packet.Ip4Address; | 23 | import org.onlab.packet.Ip4Address; |
24 | +import org.onosproject.ospf.controller.OspfPacketType; | ||
24 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; | 25 | import org.onosproject.ospf.protocol.ospfpacket.OspfPacketHeader; |
25 | -import org.onosproject.ospf.protocol.util.OspfPacketType; | ||
26 | 26 | ||
27 | import java.util.Vector; | 27 | import java.util.Vector; |
28 | 28 | ... | ... |
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment