Committed by
Gerrit Code Review
Minor cleanups and renaming in vRouter
Change-Id: I9f5334a0d428f77789880bb9caef5a5d12084f1c
Showing
3 changed files
with
23 additions
and
37 deletions
... | @@ -133,10 +133,8 @@ public class ControlPlaneRedirectManager { | ... | @@ -133,10 +133,8 @@ public class ControlPlaneRedirectManager { |
133 | hostService.addListener(hostListener); | 133 | hostService.addListener(hostListener); |
134 | interfaceService.addListener(interfaceListener); | 134 | interfaceService.addListener(interfaceListener); |
135 | 135 | ||
136 | - updateConfig(true); | 136 | + readConfig(); |
137 | - applicationService.registerDeactivateHook(this.appId, () -> { | 137 | + applicationService.registerDeactivateHook(this.appId, () -> provisionDevice(false)); |
138 | - this.updateConfig(false); | ||
139 | - }); | ||
140 | } | 138 | } |
141 | 139 | ||
142 | @Deactivate | 140 | @Deactivate |
... | @@ -151,10 +149,8 @@ public class ControlPlaneRedirectManager { | ... | @@ -151,10 +149,8 @@ public class ControlPlaneRedirectManager { |
151 | * Installs or removes interface configuration | 149 | * Installs or removes interface configuration |
152 | * based on the flag used on activate or deactivate. | 150 | * based on the flag used on activate or deactivate. |
153 | * | 151 | * |
154 | - * @param operation true on activate application, false on deactivate | ||
155 | - * the application | ||
156 | **/ | 152 | **/ |
157 | - private void updateConfig(boolean operation) { | 153 | + private void readConfig() { |
158 | ApplicationId routingAppId = | 154 | ApplicationId routingAppId = |
159 | coreService.registerApplication(RoutingService.ROUTER_APP_ID); | 155 | coreService.registerApplication(RoutingService.ROUTER_APP_ID); |
160 | 156 | ||
... | @@ -170,17 +166,16 @@ public class ControlPlaneRedirectManager { | ... | @@ -170,17 +166,16 @@ public class ControlPlaneRedirectManager { |
170 | ospfEnabled = config.getOspfEnabled(); | 166 | ospfEnabled = config.getOspfEnabled(); |
171 | interfaces = config.getInterfaces(); | 167 | interfaces = config.getInterfaces(); |
172 | 168 | ||
173 | - updateDevice(operation); | 169 | + provisionDevice(true); |
174 | } | 170 | } |
175 | 171 | ||
176 | /** | 172 | /** |
177 | * Installs or removes interface configuration for each interface | 173 | * Installs or removes interface configuration for each interface |
178 | * based on the flag used on activate or deactivate. | 174 | * based on the flag used on activate or deactivate. |
179 | * | 175 | * |
180 | - * @param operation true on activate application, false on deactivate | 176 | + * @param install true to install flows, false to remove them |
181 | - * the application | ||
182 | **/ | 177 | **/ |
183 | - private void updateDevice(boolean operation) { | 178 | + private void provisionDevice(boolean install) { |
184 | if (controlPlaneConnectPoint != null && | 179 | if (controlPlaneConnectPoint != null && |
185 | deviceService.isAvailable(controlPlaneConnectPoint.deviceId())) { | 180 | deviceService.isAvailable(controlPlaneConnectPoint.deviceId())) { |
186 | DeviceId deviceId = controlPlaneConnectPoint.deviceId(); | 181 | DeviceId deviceId = controlPlaneConnectPoint.deviceId(); |
... | @@ -188,21 +183,17 @@ public class ControlPlaneRedirectManager { | ... | @@ -188,21 +183,17 @@ public class ControlPlaneRedirectManager { |
188 | interfaceService.getInterfaces().stream() | 183 | interfaceService.getInterfaces().stream() |
189 | .filter(intf -> intf.connectPoint().deviceId().equals(deviceId)) | 184 | .filter(intf -> intf.connectPoint().deviceId().equals(deviceId)) |
190 | .filter(intf -> interfaces.isEmpty() || interfaces.contains(intf.name())) | 185 | .filter(intf -> interfaces.isEmpty() || interfaces.contains(intf.name())) |
191 | - .forEach(operation ? this::provisionInterface : this::removeInterface); | 186 | + .forEach(intf -> provisionInterface(intf, install)); |
192 | 187 | ||
193 | log.info("Set up interfaces on {}", controlPlaneConnectPoint.deviceId()); | 188 | log.info("Set up interfaces on {}", controlPlaneConnectPoint.deviceId()); |
194 | } | 189 | } |
195 | } | 190 | } |
196 | 191 | ||
197 | - private void removeInterface(Interface intf) { | 192 | + private void provisionInterface(Interface intf, boolean install) { |
198 | - modifyBasicInterfaceForwarding(intf, false); | 193 | + updateInterfaceForwarding(intf, install); |
199 | - updateOspfForwarding(intf, false); | 194 | + updateOspfForwarding(intf, install); |
200 | } | 195 | } |
201 | 196 | ||
202 | - private void provisionInterface(Interface intf) { | ||
203 | - modifyBasicInterfaceForwarding(intf, true); | ||
204 | - updateOspfForwarding(intf, true); | ||
205 | - } | ||
206 | /** | 197 | /** |
207 | * Installs or removes the basic forwarding flows for each interface | 198 | * Installs or removes the basic forwarding flows for each interface |
208 | * based on the flag used. | 199 | * based on the flag used. |
... | @@ -211,7 +202,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -211,7 +202,7 @@ public class ControlPlaneRedirectManager { |
211 | * @param install true to create an add objective, false to create a remove | 202 | * @param install true to create an add objective, false to create a remove |
212 | * objective | 203 | * objective |
213 | **/ | 204 | **/ |
214 | - private void modifyBasicInterfaceForwarding(Interface intf, boolean install) { | 205 | + private void updateInterfaceForwarding(Interface intf, boolean install) { |
215 | log.debug("Adding interface objectives for {}", intf); | 206 | log.debug("Adding interface objectives for {}", intf); |
216 | 207 | ||
217 | DeviceId deviceId = controlPlaneConnectPoint.deviceId(); | 208 | DeviceId deviceId = controlPlaneConnectPoint.deviceId(); |
... | @@ -361,6 +352,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -361,6 +352,7 @@ public class ControlPlaneRedirectManager { |
361 | } | 352 | } |
362 | return nextId; | 353 | return nextId; |
363 | } | 354 | } |
355 | + | ||
364 | /** | 356 | /** |
365 | * Builds a forwarding objective from the given selector, treatment and nextId. | 357 | * Builds a forwarding objective from the given selector, treatment and nextId. |
366 | * | 358 | * |
... | @@ -404,7 +396,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -404,7 +396,7 @@ public class ControlPlaneRedirectManager { |
404 | case DEVICE_AVAILABILITY_CHANGED: | 396 | case DEVICE_AVAILABILITY_CHANGED: |
405 | if (deviceService.isAvailable(event.subject().id())) { | 397 | if (deviceService.isAvailable(event.subject().id())) { |
406 | log.info("Device connected {}", event.subject().id()); | 398 | log.info("Device connected {}", event.subject().id()); |
407 | - updateDevice(true); | 399 | + provisionDevice(true); |
408 | } | 400 | } |
409 | break; | 401 | break; |
410 | case DEVICE_UPDATED: | 402 | case DEVICE_UPDATED: |
... | @@ -431,7 +423,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -431,7 +423,7 @@ public class ControlPlaneRedirectManager { |
431 | switch (event.type()) { | 423 | switch (event.type()) { |
432 | case CONFIG_ADDED: | 424 | case CONFIG_ADDED: |
433 | case CONFIG_UPDATED: | 425 | case CONFIG_UPDATED: |
434 | - updateConfig(true); | 426 | + readConfig(); |
435 | break; | 427 | break; |
436 | case CONFIG_REGISTERED: | 428 | case CONFIG_REGISTERED: |
437 | case CONFIG_UNREGISTERED: | 429 | case CONFIG_UNREGISTERED: |
... | @@ -494,7 +486,6 @@ public class ControlPlaneRedirectManager { | ... | @@ -494,7 +486,6 @@ public class ControlPlaneRedirectManager { |
494 | return; | 486 | return; |
495 | } | 487 | } |
496 | 488 | ||
497 | - Set<Integer> nextIds = peerNextId.get(peer); | ||
498 | checkState(peerNextId.get(peer) != null, | 489 | checkState(peerNextId.get(peer) != null, |
499 | "Peer nextId should not be null"); | 490 | "Peer nextId should not be null"); |
500 | checkState(peerNextId.get(peer).size() == 2, | 491 | checkState(peerNextId.get(peer).size() == 2, |
... | @@ -593,12 +584,12 @@ public class ControlPlaneRedirectManager { | ... | @@ -593,12 +584,12 @@ public class ControlPlaneRedirectManager { |
593 | * Update the flows comparing previous event and current event. | 584 | * Update the flows comparing previous event and current event. |
594 | * | 585 | * |
595 | * @param prevIntf the previous interface event | 586 | * @param prevIntf the previous interface event |
596 | - * @param intf the current occured update envent | 587 | + * @param intf the current occurred update event |
597 | **/ | 588 | **/ |
598 | private void updateInterface(Interface prevIntf, Interface intf) { | 589 | private void updateInterface(Interface prevIntf, Interface intf) { |
599 | if (!prevIntf.vlan().equals(intf.vlan()) || !prevIntf.mac().equals(intf)) { | 590 | if (!prevIntf.vlan().equals(intf.vlan()) || !prevIntf.mac().equals(intf)) { |
600 | - removeInterface(prevIntf); | 591 | + provisionInterface(prevIntf, false); |
601 | - provisionInterface(intf); | 592 | + provisionInterface(intf, true); |
602 | } else { | 593 | } else { |
603 | List<InterfaceIpAddress> removeIps = | 594 | List<InterfaceIpAddress> removeIps = |
604 | prevIntf.ipAddressesList().stream() | 595 | prevIntf.ipAddressesList().stream() |
... | @@ -609,10 +600,10 @@ public class ControlPlaneRedirectManager { | ... | @@ -609,10 +600,10 @@ public class ControlPlaneRedirectManager { |
609 | .filter(cur -> !prevIntf.ipAddressesList().contains(cur)) | 600 | .filter(cur -> !prevIntf.ipAddressesList().contains(cur)) |
610 | .collect(Collectors.toList()); | 601 | .collect(Collectors.toList()); |
611 | // removing flows with match parameters present in previous subject | 602 | // removing flows with match parameters present in previous subject |
612 | - modifyBasicInterfaceForwarding(new Interface(prevIntf.name(), prevIntf.connectPoint(), | 603 | + updateInterfaceForwarding(new Interface(prevIntf.name(), prevIntf.connectPoint(), |
613 | removeIps, prevIntf.mac(), prevIntf.vlan()), false); | 604 | removeIps, prevIntf.mac(), prevIntf.vlan()), false); |
614 | // adding flows with match parameters present in event subject | 605 | // adding flows with match parameters present in event subject |
615 | - modifyBasicInterfaceForwarding(new Interface(intf.name(), intf.connectPoint(), | 606 | + updateInterfaceForwarding(new Interface(intf.name(), intf.connectPoint(), |
616 | addIps, intf.mac(), intf.vlan()), true); | 607 | addIps, intf.mac(), intf.vlan()), true); |
617 | } | 608 | } |
618 | } | 609 | } |
... | @@ -626,7 +617,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -626,7 +617,7 @@ public class ControlPlaneRedirectManager { |
626 | switch (event.type()) { | 617 | switch (event.type()) { |
627 | case INTERFACE_ADDED: | 618 | case INTERFACE_ADDED: |
628 | if (intf != null && !intf.connectPoint().equals(controlPlaneConnectPoint)) { | 619 | if (intf != null && !intf.connectPoint().equals(controlPlaneConnectPoint)) { |
629 | - provisionInterface(intf); | 620 | + provisionInterface(intf, true); |
630 | } | 621 | } |
631 | break; | 622 | break; |
632 | case INTERFACE_UPDATED: | 623 | case INTERFACE_UPDATED: |
... | @@ -636,7 +627,7 @@ public class ControlPlaneRedirectManager { | ... | @@ -636,7 +627,7 @@ public class ControlPlaneRedirectManager { |
636 | break; | 627 | break; |
637 | case INTERFACE_REMOVED: | 628 | case INTERFACE_REMOVED: |
638 | if (intf != null && !intf.connectPoint().equals(controlPlaneConnectPoint)) { | 629 | if (intf != null && !intf.connectPoint().equals(controlPlaneConnectPoint)) { |
639 | - removeInterface(intf); | 630 | + provisionInterface(intf, false); |
640 | } | 631 | } |
641 | break; | 632 | break; |
642 | default: | 633 | default: | ... | ... |
... | @@ -178,9 +178,7 @@ public class SingleSwitchFibInstaller { | ... | @@ -178,9 +178,7 @@ public class SingleSwitchFibInstaller { |
178 | 178 | ||
179 | updateConfig(); | 179 | updateConfig(); |
180 | 180 | ||
181 | - applicationService.registerDeactivateHook(vrouterAppId, () -> { | 181 | + applicationService.registerDeactivateHook(vrouterAppId, () -> cleanUp()); |
182 | - this.cleanUp(); | ||
183 | - }); | ||
184 | 182 | ||
185 | log.info("Started"); | 183 | log.info("Started"); |
186 | } | 184 | } |
... | @@ -192,8 +190,6 @@ public class SingleSwitchFibInstaller { | ... | @@ -192,8 +190,6 @@ public class SingleSwitchFibInstaller { |
192 | interfaceService.removeListener(internalInterfaceList); | 190 | interfaceService.removeListener(internalInterfaceList); |
193 | networkConfigService.removeListener(configListener); | 191 | networkConfigService.removeListener(configListener); |
194 | 192 | ||
195 | - //processIntfFilters(false, configService.getInterfaces()); //TODO necessary? | ||
196 | - | ||
197 | componentConfigService.unregisterProperties(getClass(), false); | 193 | componentConfigService.unregisterProperties(getClass(), false); |
198 | 194 | ||
199 | log.info("Stopped"); | 195 | log.info("Stopped"); | ... | ... |
... | @@ -261,7 +261,7 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe | ... | @@ -261,7 +261,7 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe |
261 | } | 261 | } |
262 | } | 262 | } |
263 | 263 | ||
264 | - log.debug("adding Port/VLAN/MAC filtering rules in filter table: {}/{}/{}", | 264 | + log.debug("Modifying Port/VLAN/MAC filtering rules in filter table: {}/{}/{}", |
265 | p.port(), v.vlanId(), e.mac()); | 265 | p.port(), v.vlanId(), e.mac()); |
266 | TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); | 266 | TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); |
267 | TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder(); | 267 | TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder(); |
... | @@ -287,7 +287,6 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe | ... | @@ -287,7 +287,6 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe |
287 | .fromApp(applicationId) | 287 | .fromApp(applicationId) |
288 | .makePermanent() | 288 | .makePermanent() |
289 | .forTable(FILTER_TABLE).build(); | 289 | .forTable(FILTER_TABLE).build(); |
290 | - ops = ops.add(rule); | ||
291 | 290 | ||
292 | ops = install ? ops.add(rule) : ops.remove(rule); | 291 | ops = install ? ops.add(rule) : ops.remove(rule); |
293 | // apply filtering flow rules | 292 | // apply filtering flow rules | ... | ... |
-
Please register or login to post a comment