Search in sources :

Example 1 with NxMatchRegister

use of org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister in project netvirt by opendaylight.

the class ElanNodeListener method addSmacLearnedTableFlow.

private void addSmacLearnedTableFlow(BigInteger dpId) {
    // T50 - match on Reg4 and goto T51
    List<MatchInfoBase> mkMatches = new ArrayList<>();
    mkMatches.add(new NxMatchRegister(NxmNxReg4.class, LEARN_MATCH_REG4_VALUE));
    List<InstructionInfo> mkInstructions = new ArrayList<>();
    mkInstructions.add(new InstructionGotoTable(NwConstants.ELAN_DMAC_TABLE));
    String flowRef = new StringBuffer().append(NwConstants.ELAN_SMAC_TABLE).append(NwConstants.FLOWID_SEPARATOR).append(LEARN_MATCH_REG4_VALUE).toString();
    FlowEntity flowEntity = MDSALUtil.buildFlowEntity(dpId, NwConstants.ELAN_SMAC_TABLE, flowRef, 10, "ELAN sMac Table Reg4 Flow", 0, 0, ElanConstants.COOKIE_ELAN_KNOWN_SMAC.add(BigInteger.valueOf(LEARN_MATCH_REG4_VALUE)), mkMatches, mkInstructions);
    mdsalManager.installFlow(flowEntity);
}
Also used : NxmNxReg4(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg4) InstructionGotoTable(org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable) InstructionInfo(org.opendaylight.genius.mdsalutil.InstructionInfo) ArrayList(java.util.ArrayList) NxMatchRegister(org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister) MatchInfoBase(org.opendaylight.genius.mdsalutil.MatchInfoBase) FlowEntity(org.opendaylight.genius.mdsalutil.FlowEntity)

Example 2 with NxMatchRegister

use of org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister in project genius by opendaylight.

the class FlowBasedServicesUtils method getMatchInfoForEgressDispatcherTable.

public static List<MatchInfoBase> getMatchInfoForEgressDispatcherTable(int interfaceTag, short serviceIndex) {
    List<MatchInfoBase> matches = new ArrayList<>();
    matches.add(new NxMatchRegister(NxmNxReg6.class, MetaDataUtil.getReg6ValueForLPortDispatcher(interfaceTag, serviceIndex)));
    return matches;
}
Also used : NxmNxReg6(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6) ArrayList(java.util.ArrayList) NxMatchRegister(org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister) MatchInfoBase(org.opendaylight.genius.mdsalutil.MatchInfoBase)

Example 3 with NxMatchRegister

use of org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister in project netvirt by opendaylight.

the class ElanServiceProvider method getEgressMatchesForElanInstance.

@Override
public List<MatchInfoBase> getEgressMatchesForElanInstance(String elanInstanceName) {
    ElanInstance elanInstance = getElanInstance(elanInstanceName);
    if (elanInstance == null) {
        LOG.debug("No ELAN instance found for {}", elanInstanceName);
        return Collections.emptyList();
    }
    Long elanTag = elanInstance.getElanTag();
    if (elanTag == null) {
        LOG.debug("No ELAN tag found for {}", elanInstanceName);
        return Collections.emptyList();
    }
    return Collections.singletonList(new NxMatchRegister(ElanConstants.ELAN_REG_ID, elanTag, MetaDataUtil.getElanMaskForReg()));
}
Also used : ElanInstance(org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance) NxMatchRegister(org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister)

Example 4 with NxMatchRegister

use of org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister in project netvirt by opendaylight.

the class PolicyServiceFlowUtil method getPolicyRouteMatches.

public List<MatchInfoBase> getPolicyRouteMatches(long policyClassifierId, int lportTag) {
    List<MatchInfoBase> matches = new ArrayList<>();
    matches.add(new NxMatchRegister(NxmNxReg6.class, lportTag, MetaDataUtil.getLportTagMaskForReg6()));
    matches.add(new MatchMetadata(MetaDataUtil.getPolicyClassifierMetaData(policyClassifierId), MetaDataUtil.METADATA_MASK_POLICY_CLASSIFER_ID));
    return matches;
}
Also used : MatchMetadata(org.opendaylight.genius.mdsalutil.matches.MatchMetadata) NxmNxReg6(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6) ArrayList(java.util.ArrayList) NxMatchRegister(org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister) MatchInfoBase(org.opendaylight.genius.mdsalutil.MatchInfoBase)

Aggregations

NxMatchRegister (org.opendaylight.genius.mdsalutil.nxmatches.NxMatchRegister)4 ArrayList (java.util.ArrayList)3 MatchInfoBase (org.opendaylight.genius.mdsalutil.MatchInfoBase)3 NxmNxReg6 (org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6)2 FlowEntity (org.opendaylight.genius.mdsalutil.FlowEntity)1 InstructionInfo (org.opendaylight.genius.mdsalutil.InstructionInfo)1 InstructionGotoTable (org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable)1 MatchMetadata (org.opendaylight.genius.mdsalutil.matches.MatchMetadata)1 ElanInstance (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance)1 NxmNxReg4 (org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg4)1