sunish vk
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()) {
......
...@@ -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 }
......
...@@ -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
......
...@@ -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 }
......
...@@ -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
......
...@@ -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);
......
...@@ -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
......
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
......
...@@ -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
......
...@@ -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 }
......
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.
......
...@@ -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
......
...@@ -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
......
...@@ -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
......
...@@ -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
......
...@@ -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);
......
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
......
...@@ -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());
......
...@@ -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;
......
...@@ -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;
......
...@@ -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;
......
...@@ -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;
......
...@@ -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;
......
...@@ -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;
......
...@@ -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
......
...@@ -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 }
......
...@@ -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
......