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);
}
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;
}
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()));
}
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;
}
Aggregations