diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-19 10:14:31 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-19 10:14:31 -0700 |
commit | e9bb60be43af477f17b30ee1f2ba205565b7fa15 (patch) | |
tree | 981fd759a44b751fc45cde774f46fda37c11c257 /framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java | |
parent | 74f3941756a1386cbc1fa99ee73fdc8376a0b6a0 (diff) |
Updated onos src tree to commit id 1e60f97ae50c05b94fcb6a10520738bfb5efdfd1
Diffstat (limited to 'framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java')
-rw-r--r-- | framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java b/framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java index 90f65c94..b7f1f3ce 100644 --- a/framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java +++ b/framework/src/onos/apps/mfwd/src/main/java/org/onosproject/mfwd/impl/McastIntentManager.java @@ -79,8 +79,7 @@ public class McastIntentManager { TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment(); - if (mroute.getIngressPoint() == null || - mroute.getEgressPoints().isEmpty()) { + if (mroute.getIngressPoint() == null) { return null; } @@ -96,16 +95,22 @@ public class McastIntentManager { .matchIPDst(mroute.getGaddr()) .matchIPSrc(mroute.getSaddr()); - SinglePointToMultiPointIntent intent = - SinglePointToMultiPointIntent.builder() + + SinglePointToMultiPointIntent.Builder builder = SinglePointToMultiPointIntent.builder() .appId(McastForwarding.getAppId()) .selector(selector.build()) .treatment(treatment) - .ingressPoint(mroute.getIngressPoint().getConnectPoint()) - .egressPoints(mroute.getEgressConnectPoints()). - build(); + .ingressPoint(mroute.getIngressPoint().getConnectPoint()); + + // allowing intent to be pushed without egress points means we can drop packets. + if (!mroute.getEgressPoints().isEmpty()) { + builder.egressPoints(mroute.getEgressConnectPoints()); + } + SinglePointToMultiPointIntent intent = builder.build(); intentService.submit(intent); + mroute.setDirty(false); + return intent; } @@ -114,9 +119,10 @@ public class McastIntentManager { * * @param mroute the mcast route whose intent we want to remove */ - public void withdrawIntent(McastRouteBase mroute) { + public void withdrawIntent(McastRoute mroute) { Intent intent = intentService.getIntent(mroute.getIntentKey()); intentService.withdraw(intent); + mroute.setDirty(false); } /** |