diff options
Diffstat (limited to 'framework/src/onos/providers/openflow/flow')
2 files changed, 13 insertions, 1 deletions
diff --git a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java index cf918605..1039d049 100644 --- a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java +++ b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java @@ -55,6 +55,7 @@ import org.projectfloodlight.openflow.protocol.action.OFActionCircuit; import org.projectfloodlight.openflow.protocol.action.OFActionExperimenter; import org.projectfloodlight.openflow.protocol.action.OFActionGroup; import org.projectfloodlight.openflow.protocol.action.OFActionOutput; +import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; import org.projectfloodlight.openflow.protocol.action.OFActionPopMpls; import org.projectfloodlight.openflow.protocol.action.OFActionSetDlDst; import org.projectfloodlight.openflow.protocol.action.OFActionSetDlSrc; @@ -333,6 +334,10 @@ public class FlowEntryBuilder { OFActionGroup group = (OFActionGroup) act; builder.group(new DefaultGroupId(group.getGroup().getGroupNumber())); break; + case SET_QUEUE: + OFActionSetQueue setQueue = (OFActionSetQueue) act; + builder.setQueue(setQueue.getQueueId()); + break; case STRIP_VLAN: case POP_VLAN: builder.popVlan(); @@ -350,7 +355,6 @@ public class FlowEntryBuilder { case SET_NW_ECN: case SET_NW_TOS: case SET_NW_TTL: - case SET_QUEUE: case ENQUEUE: default: diff --git a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer13.java b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer13.java index cc265758..64b4360a 100644 --- a/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer13.java +++ b/framework/src/onos/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer13.java @@ -26,6 +26,7 @@ import org.onosproject.net.flow.instructions.Instruction; import org.onosproject.net.flow.instructions.Instructions; import org.onosproject.net.flow.instructions.Instructions.GroupInstruction; import org.onosproject.net.flow.instructions.Instructions.OutputInstruction; +import org.onosproject.net.flow.instructions.Instructions.SetQueueInstruction; import org.onosproject.net.flow.instructions.L0ModificationInstruction; import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction; import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModOchSignalInstruction; @@ -50,6 +51,7 @@ import org.projectfloodlight.openflow.protocol.OFFlowModFlags; import org.projectfloodlight.openflow.protocol.action.OFAction; import org.projectfloodlight.openflow.protocol.action.OFActionGroup; import org.projectfloodlight.openflow.protocol.action.OFActionOutput; +import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; import org.projectfloodlight.openflow.protocol.instruction.OFInstruction; import org.projectfloodlight.openflow.protocol.match.Match; import org.projectfloodlight.openflow.protocol.oxm.OFOxm; @@ -244,6 +246,12 @@ public class FlowModBuilderVer13 extends FlowModBuilder { .setGroup(OFGroup.of(group.groupId().id())); actions.add(groupBuilder.build()); break; + case QUEUE: + SetQueueInstruction queue = (SetQueueInstruction) i; + OFActionSetQueue.Builder queueBuilder = factory().actions().buildSetQueue() + .setQueueId(queue.queueId()); + actions.add(queueBuilder.build()); + break; case TABLE: //FIXME: should not occur here. tableFound = true; |