diff options
author | Ashlee Young <ashlee@wildernessvoice.com> | 2015-11-03 14:08:10 -0800 |
---|---|---|
committer | Ashlee Young <ashlee@wildernessvoice.com> | 2015-11-03 14:08:10 -0800 |
commit | 643ee33289bd2cb9e6afbfb09b4ed72d467ba1c2 (patch) | |
tree | c2c376a44a359544fe3d4c45eb0cc0e2ec4a7080 /framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java | |
parent | 46eeb79b54345bdafb6055b8ee4bad4ce8b01274 (diff) |
This updates ONOS src tree to commit id
03fa5e571cabbd001ddb1598847e1150b11c7333
Change-Id: I13b554026d6f902933e35887d29bd5fdb669c0bd
Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java')
-rw-r--r-- | framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java index 6374ca55..b37cb42c 100644 --- a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java +++ b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java @@ -21,7 +21,6 @@ import com.google.common.cache.RemovalCause; import com.google.common.cache.RemovalNotification; import com.google.common.collect.Maps; import com.google.common.collect.Sets; - import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Deactivate; @@ -32,6 +31,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; import org.onosproject.cfg.ComponentConfigService; import org.onosproject.core.ApplicationId; import org.onosproject.net.DeviceId; +import org.onosproject.net.driver.DriverService; import org.onosproject.net.flow.CompletedBatchOperation; import org.onosproject.net.flow.DefaultTableStatisticsEntry; import org.onosproject.net.flow.FlowEntry; @@ -61,12 +61,12 @@ import org.projectfloodlight.openflow.protocol.OFErrorType; import org.projectfloodlight.openflow.protocol.OFFlowMod; import org.projectfloodlight.openflow.protocol.OFFlowRemoved; import org.projectfloodlight.openflow.protocol.OFFlowStatsReply; -import org.projectfloodlight.openflow.protocol.OFTableStatsReply; -import org.projectfloodlight.openflow.protocol.OFTableStatsEntry; import org.projectfloodlight.openflow.protocol.OFMessage; import org.projectfloodlight.openflow.protocol.OFPortStatus; import org.projectfloodlight.openflow.protocol.OFStatsReply; import org.projectfloodlight.openflow.protocol.OFStatsType; +import org.projectfloodlight.openflow.protocol.OFTableStatsEntry; +import org.projectfloodlight.openflow.protocol.OFTableStatsReply; import org.projectfloodlight.openflow.protocol.errormsg.OFBadRequestErrorMsg; import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; import org.slf4j.Logger; @@ -106,6 +106,9 @@ public class OpenFlowRuleProvider extends AbstractProvider @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) protected ComponentConfigService cfgService; + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) + protected DriverService driverService; + private static final int DEFAULT_POLL_FREQUENCY = 5; @Property(name = "flowPollFrequency", intValue = DEFAULT_POLL_FREQUENCY, label = "Frequency (in seconds) for polling flow statistics") @@ -269,7 +272,7 @@ public class OpenFlowRuleProvider extends AbstractProvider return; } sw.sendMsg(FlowModBuilder.builder(flowRule, sw.factory(), - Optional.empty()).buildFlowAdd()); + Optional.empty(), Optional.of(driverService)).buildFlowAdd()); if (adaptiveFlowSampling) { // Add TypedFlowEntry to deviceFlowEntries in NewAdaptiveFlowStatsCollector @@ -298,7 +301,7 @@ public class OpenFlowRuleProvider extends AbstractProvider return; } sw.sendMsg(FlowModBuilder.builder(flowRule, sw.factory(), - Optional.empty()).buildFlowDel()); + Optional.empty(), Optional.of(driverService)).buildFlowDel()); if (adaptiveFlowSampling) { // Remove TypedFlowEntry to deviceFlowEntries in NewAdaptiveFlowStatsCollector @@ -334,7 +337,8 @@ public class OpenFlowRuleProvider extends AbstractProvider continue; } FlowModBuilder builder = - FlowModBuilder.builder(fbe.target(), sw.factory(), Optional.of(batch.id())); + FlowModBuilder.builder(fbe.target(), sw.factory(), + Optional.of(batch.id()), Optional.of(driverService)); NewAdaptiveFlowStatsCollector collector = afsCollectors.get(dpid); switch (fbe.operator()) { case ADD: @@ -423,7 +427,7 @@ public class OpenFlowRuleProvider extends AbstractProvider case FLOW_REMOVED: OFFlowRemoved removed = (OFFlowRemoved) msg; - FlowEntry fr = new FlowEntryBuilder(dpid, removed).build(); + FlowEntry fr = new FlowEntryBuilder(dpid, removed, driverService).build(); providerService.flowRemoved(fr); if (adaptiveFlowSampling) { @@ -474,7 +478,7 @@ public class OpenFlowRuleProvider extends AbstractProvider InternalCacheEntry entry = pendingBatches.getIfPresent(msg.getXid()); if (entry != null) { - entry.appendFailure(new FlowEntryBuilder(dpid, fm).build()); + entry.appendFailure(new FlowEntryBuilder(dpid, fm, driverService).build()); } else { log.error("No matching batch for this error: {}", error); } @@ -501,7 +505,7 @@ public class OpenFlowRuleProvider extends AbstractProvider DeviceId did = DeviceId.deviceId(Dpid.uri(dpid)); List<FlowEntry> flowEntries = replies.getEntries().stream() - .map(entry -> new FlowEntryBuilder(dpid, entry).build()) + .map(entry -> new FlowEntryBuilder(dpid, entry, driverService).build()) .collect(Collectors.toList()); if (adaptiveFlowSampling) { |