Remove duplicated treatment building from GroupBucketEntryBuilder
Change-Id: I0f956dd11d990209eb3dc00c866dd535843506ea
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
index b75954f..51d32df 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
@@ -91,6 +91,7 @@
import org.projectfloodlight.openflow.types.U8;
import org.projectfloodlight.openflow.types.VlanPcp;
import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
@@ -104,10 +105,9 @@
import static org.onosproject.provider.of.flow.impl.OpenFlowValueMapper.lookupGridType;
import static org.onosproject.provider.of.flow.impl.OpenFlowValueMapper.lookupOchSignalType;
import static org.onosproject.provider.of.flow.impl.OpenFlowValueMapper.lookupOduSignalType;
-import static org.slf4j.LoggerFactory.getLogger;
public class FlowEntryBuilder {
- private final Logger log = getLogger(getClass());
+ private static final Logger log = LoggerFactory.getLogger(FlowEntryBuilder.class);
private final OFFlowStatsEntry stat;
private final OFFlowRemoved removed;
@@ -289,14 +289,24 @@
return builder.build();
}
- private TrafficTreatment.Builder buildActions(List<OFAction> actions,
- TrafficTreatment.Builder builder) {
- DriverHandler driverHandler = getDriver(deviceId);
- ExtensionTreatmentInterpreter treatmentInterpreter;
+ /**
+ * Configures traffic treatment builder with a given collection of actions.
+ *
+ * @param actions a set of OpenFlow actions
+ * @param builder traffic treatment builder
+ * @param driverHandler driver handler
+ * @param deviceId device identifier
+ * @return configured traffic treatment builder
+ */
+ public static TrafficTreatment.Builder configureTreatmentBuilder(List<OFAction> actions,
+ TrafficTreatment.Builder builder,
+ DriverHandler driverHandler,
+ DeviceId deviceId) {
+ ExtensionTreatmentInterpreter interpreter;
if (driverHandler.hasBehaviour(ExtensionTreatmentInterpreter.class)) {
- treatmentInterpreter = driverHandler.behaviour(ExtensionTreatmentInterpreter.class);
+ interpreter = driverHandler.behaviour(ExtensionTreatmentInterpreter.class);
} else {
- treatmentInterpreter = null;
+ interpreter = null;
}
for (OFAction act : actions) {
@@ -344,15 +354,15 @@
lookupGridType(circuitSignalID.getGridType()),
lookupChannelSpacing(circuitSignalID.getChannelSpacing()),
circuitSignalID.getChannelNumber(), circuitSignalID.getSpectralWidth())));
- } else if (treatmentInterpreter != null) {
- builder.extension(treatmentInterpreter.mapAction(exp), deviceId);
+ } else if (interpreter != null) {
+ builder.extension(interpreter.mapAction(exp), deviceId);
} else {
log.warn("Unsupported OFActionExperimenter {}", exp.getExperimenter());
}
break;
case SET_FIELD:
OFActionSetField setField = (OFActionSetField) act;
- handleSetField(builder, setField);
+ handleSetField(builder, setField, driverHandler, deviceId);
break;
case POP_MPLS:
OFActionPopMpls popMpls = (OFActionPopMpls) act;
@@ -410,9 +420,18 @@
return builder;
}
-
- private void handleSetField(TrafficTreatment.Builder builder, OFActionSetField action) {
+ private TrafficTreatment.Builder buildActions(List<OFAction> actions,
+ TrafficTreatment.Builder builder) {
DriverHandler driverHandler = getDriver(deviceId);
+
+ return configureTreatmentBuilder(actions, builder, driverHandler, deviceId);
+ }
+
+
+ private static void handleSetField(TrafficTreatment.Builder builder,
+ OFActionSetField action,
+ DriverHandler driverHandler,
+ DeviceId deviceId) {
ExtensionTreatmentInterpreter treatmentInterpreter;
if (driverHandler.hasBehaviour(ExtensionTreatmentInterpreter.class)) {
treatmentInterpreter = driverHandler.behaviour(ExtensionTreatmentInterpreter.class);