Committed by
Gerrit Code Review
[ONOS-4715] Port chain delete issue fix
Change-Id: I8330367710212be1432c13534f69be96f80637bd
Showing
3 changed files
with
29 additions
and
2 deletions
... | @@ -64,4 +64,15 @@ public interface SfcFlowRuleInstallerService { | ... | @@ -64,4 +64,15 @@ public interface SfcFlowRuleInstallerService { |
64 | */ | 64 | */ |
65 | ConnectPoint unInstallLoadBalancedFlowRules(PortChain portChain, FiveTuple fiveTuple, | 65 | ConnectPoint unInstallLoadBalancedFlowRules(PortChain portChain, FiveTuple fiveTuple, |
66 | NshServicePathId nshSpiId); | 66 | NshServicePathId nshSpiId); |
67 | + | ||
68 | + /** | ||
69 | + * Uninstall load balanced classifier rules. | ||
70 | + * | ||
71 | + * @param portChain port-chain | ||
72 | + * @param fiveTuple five tuple packet information | ||
73 | + * @param nshSpiId service path index identifier | ||
74 | + * @return connectPoint the network identifier | ||
75 | + */ | ||
76 | + ConnectPoint unInstallLoadBalancedClassifierRules(PortChain portChain, FiveTuple fiveTuple, | ||
77 | + NshServicePathId nshSpiId); | ||
67 | } | 78 | } | ... | ... |
... | @@ -218,6 +218,20 @@ public class SfcFlowRuleInstallerImpl implements SfcFlowRuleInstallerService { | ... | @@ -218,6 +218,20 @@ public class SfcFlowRuleInstallerImpl implements SfcFlowRuleInstallerService { |
218 | return installSfcFlowRules(portChain, fiveTuple, nshSpiId, Objective.Operation.REMOVE); | 218 | return installSfcFlowRules(portChain, fiveTuple, nshSpiId, Objective.Operation.REMOVE); |
219 | } | 219 | } |
220 | 220 | ||
221 | + @Override | ||
222 | + public ConnectPoint unInstallLoadBalancedClassifierRules(PortChain portChain, FiveTuple fiveTuple, | ||
223 | + NshServicePathId nshSpiId) { | ||
224 | + checkNotNull(portChain, PORT_CHAIN_NOT_NULL); | ||
225 | + | ||
226 | + List<PortPairId> portPairs = portChain.getLoadBalancePath(fiveTuple); | ||
227 | + // Get the first port pair | ||
228 | + ListIterator<PortPairId> portPairListIterator = portPairs.listIterator(); | ||
229 | + PortPairId portPairId = portPairListIterator.next(); | ||
230 | + PortPair portPair = portPairService.getPortPair(portPairId); | ||
231 | + | ||
232 | + return installSfcClassifierRules(portChain, portPair, nshSpiId, fiveTuple, Objective.Operation.REMOVE); | ||
233 | + } | ||
234 | + | ||
221 | public ConnectPoint installSfcFlowRules(PortChain portChain, FiveTuple fiveTuple, NshServicePathId nshSpiId, | 235 | public ConnectPoint installSfcFlowRules(PortChain portChain, FiveTuple fiveTuple, NshServicePathId nshSpiId, |
222 | Objective.Operation type) { | 236 | Objective.Operation type) { |
223 | checkNotNull(portChain, PORT_CHAIN_NOT_NULL); | 237 | checkNotNull(portChain, PORT_CHAIN_NOT_NULL); | ... | ... |
... | @@ -316,13 +316,15 @@ public class SfcManager implements SfcService { | ... | @@ -316,13 +316,15 @@ public class SfcManager implements SfcService { |
316 | Set<FiveTuple> fiveTupleSet = portChain.getLoadBalanceIdMapKeys(); | 316 | Set<FiveTuple> fiveTupleSet = portChain.getLoadBalanceIdMapKeys(); |
317 | for (FiveTuple fiveTuple : fiveTupleSet) { | 317 | for (FiveTuple fiveTuple : fiveTupleSet) { |
318 | id = portChain.getLoadBalanceId(fiveTuple); | 318 | id = portChain.getLoadBalanceId(fiveTuple); |
319 | + nshSpi = NshServicePathId.of(getNshServicePathId(id, nshSpiId)); | ||
319 | if (processedIdList.contains(id)) { | 320 | if (processedIdList.contains(id)) { |
320 | - // multiple five tuple can have single path. | 321 | + // Multiple five tuple can have single path. In this case only |
322 | + // the classifier rule need to delete | ||
323 | + flowRuleInstaller.unInstallLoadBalancedClassifierRules(portChain, fiveTuple, nshSpi); | ||
321 | continue; | 324 | continue; |
322 | } else { | 325 | } else { |
323 | processedIdList.add(id); | 326 | processedIdList.add(id); |
324 | } | 327 | } |
325 | - nshSpi = NshServicePathId.of(getNshServicePathId(id, nshSpiId)); | ||
326 | flowRuleInstaller.unInstallLoadBalancedFlowRules(portChain, fiveTuple, nshSpi); | 328 | flowRuleInstaller.unInstallLoadBalancedFlowRules(portChain, fiveTuple, nshSpi); |
327 | } | 329 | } |
328 | 330 | ... | ... |
-
Please register or login to post a comment