Search in sources :

Example 51 with Match

use of org.projectfloodlight.openflow.protocol.match.Match in project open-kilda by telstra.

the class ArpPostIngressOneSwitchFlowGenerator method getArpFlowMod.

@Override
OFFlowMod getArpFlowMod(IOFSwitch sw, OFInstructionMeter meter, List<OFAction> actionList) {
    OFFactory ofFactory = sw.getOFFactory();
    RoutingMetadata metadata = makeMetadataMatch(sw);
    Match match = ofFactory.buildMatch().setMasked(MatchField.METADATA, OFMetadata.of(metadata.getValue()), OFMetadata.of(metadata.getMask())).build();
    actionList.add(actionSendToController(sw.getOFFactory()));
    OFInstructionApplyActions actions = ofFactory.instructions().applyActions(actionList).createBuilder().build();
    return prepareFlowModBuilder(ofFactory, ARP_POST_INGRESS_ONE_SWITCH_COOKIE, ARP_POST_INGRESS_ONE_SWITCH_PRIORITY, POST_INGRESS_TABLE_ID).setMatch(match).setInstructions(meter != null ? ImmutableList.of(meter, actions) : ImmutableList.of(actions)).build();
}
Also used : OFInstructionApplyActions(org.projectfloodlight.openflow.protocol.instruction.OFInstructionApplyActions) OFFactory(org.projectfloodlight.openflow.protocol.OFFactory) RoutingMetadata(org.openkilda.floodlight.utils.metadata.RoutingMetadata) Match(org.projectfloodlight.openflow.protocol.match.Match)

Aggregations

Match (org.projectfloodlight.openflow.protocol.match.Match)51 OFFactory (org.projectfloodlight.openflow.protocol.OFFactory)28 OFVlanVidMatch (org.projectfloodlight.openflow.types.OFVlanVidMatch)28 OFInstructionApplyActions (org.projectfloodlight.openflow.protocol.instruction.OFInstructionApplyActions)18 OFFlowMod (org.projectfloodlight.openflow.protocol.OFFlowMod)14 OFAction (org.projectfloodlight.openflow.protocol.action.OFAction)11 RoutingMetadata (org.openkilda.floodlight.utils.metadata.RoutingMetadata)10 IOFSwitch (net.floodlightcontroller.core.IOFSwitch)8 OFInstructionGotoTable (org.projectfloodlight.openflow.protocol.instruction.OFInstructionGotoTable)7 ArrayList (java.util.ArrayList)5 SwitchFeature (org.openkilda.model.SwitchFeature)5 OFFlowDelete (org.projectfloodlight.openflow.protocol.OFFlowDelete)5 OFFactoryVer13 (org.projectfloodlight.openflow.protocol.ver13.OFFactoryVer13)5 HashSet (java.util.HashSet)4 Test (org.junit.Test)4 FieldMatch (org.openkilda.rulemanager.match.FieldMatch)4 Builder (org.projectfloodlight.openflow.protocol.match.Match.Builder)4 MacAddress (org.projectfloodlight.openflow.types.MacAddress)3 U64 (org.projectfloodlight.openflow.types.U64)3 Builder (org.projectfloodlight.openflow.protocol.OFFlowMod.Builder)2