Committed by
Gerrit Code Review
Omit zero-prefix IP match in Softrouter driver
Change-Id: I613c6a2aedc7274c9006be26d81e3ea9ab98b6a7
Showing
1 changed file
with
12 additions
and
8 deletions
... | @@ -17,6 +17,7 @@ package org.onosproject.driver.pipeline; | ... | @@ -17,6 +17,7 @@ package org.onosproject.driver.pipeline; |
17 | 17 | ||
18 | import org.onlab.osgi.ServiceDirectory; | 18 | import org.onlab.osgi.ServiceDirectory; |
19 | import org.onlab.packet.Ethernet; | 19 | import org.onlab.packet.Ethernet; |
20 | +import org.onlab.packet.IpPrefix; | ||
20 | import org.onlab.packet.VlanId; | 21 | import org.onlab.packet.VlanId; |
21 | import org.onlab.util.KryoNamespace; | 22 | import org.onlab.util.KryoNamespace; |
22 | import org.onosproject.core.ApplicationId; | 23 | import org.onosproject.core.ApplicationId; |
... | @@ -52,13 +53,13 @@ import org.onosproject.net.flowobjective.Objective; | ... | @@ -52,13 +53,13 @@ import org.onosproject.net.flowobjective.Objective; |
52 | import org.onosproject.net.flowobjective.ObjectiveError; | 53 | import org.onosproject.net.flowobjective.ObjectiveError; |
53 | import org.onosproject.store.serializers.KryoNamespaces; | 54 | import org.onosproject.store.serializers.KryoNamespaces; |
54 | import org.slf4j.Logger; | 55 | import org.slf4j.Logger; |
55 | -import static org.onlab.util.Tools.delay; | ||
56 | 56 | ||
57 | import java.util.ArrayList; | 57 | import java.util.ArrayList; |
58 | import java.util.Collection; | 58 | import java.util.Collection; |
59 | import java.util.Collections; | 59 | import java.util.Collections; |
60 | import java.util.Objects; | 60 | import java.util.Objects; |
61 | 61 | ||
62 | +import static org.onlab.util.Tools.delay; | ||
62 | import static org.slf4j.LoggerFactory.getLogger; | 63 | import static org.slf4j.LoggerFactory.getLogger; |
63 | 64 | ||
64 | /** | 65 | /** |
... | @@ -394,12 +395,15 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe | ... | @@ -394,12 +395,15 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe |
394 | return Collections.emptySet(); | 395 | return Collections.emptySet(); |
395 | } | 396 | } |
396 | 397 | ||
397 | - TrafficSelector filteredSelector = | 398 | + IpPrefix ipPrefix = ((IPCriterion) |
398 | - DefaultTrafficSelector.builder() | 399 | + selector.getCriterion(Criterion.Type.IPV4_DST)).ip(); |
399 | - .matchEthType(Ethernet.TYPE_IPV4) | 400 | + |
400 | - .matchIPDst(((IPCriterion) | 401 | + TrafficSelector.Builder filteredSelector = DefaultTrafficSelector.builder() |
401 | - selector.getCriterion(Criterion.Type.IPV4_DST)).ip()) | 402 | + .matchEthType(Ethernet.TYPE_IPV4); |
402 | - .build(); | 403 | + |
404 | + if (ipPrefix.prefixLength() != 0) { | ||
405 | + filteredSelector.matchIPDst(ipPrefix); | ||
406 | + } | ||
403 | 407 | ||
404 | TrafficTreatment tt = null; | 408 | TrafficTreatment tt = null; |
405 | if (fwd.nextId() != null) { | 409 | if (fwd.nextId() != null) { |
... | @@ -419,7 +423,7 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe | ... | @@ -419,7 +423,7 @@ public class SoftRouterPipeline extends AbstractHandlerBehaviour implements Pipe |
419 | .fromApp(fwd.appId()) | 423 | .fromApp(fwd.appId()) |
420 | .withPriority(fwd.priority()) | 424 | .withPriority(fwd.priority()) |
421 | .forDevice(deviceId) | 425 | .forDevice(deviceId) |
422 | - .withSelector(filteredSelector); | 426 | + .withSelector(filteredSelector.build()); |
423 | 427 | ||
424 | if (tt != null) { | 428 | if (tt != null) { |
425 | ruleBuilder.withTreatment(tt); | 429 | ruleBuilder.withTreatment(tt); | ... | ... |
-
Please register or login to post a comment