public class ElanServiceChainUtils extends Object
Constructor and Description |
---|
ElanServiceChainUtils() |
Modifier and Type | Method and Description |
---|---|
static List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> |
buildSetLportTagAndGotoLportDispInstructions(int lportTag)
Builds a List of Instructions that set the ElanPseudoPort Tag in
metadata and sends to LPortDispatcher table (via Table 80).
|
static Collection<BigInteger> |
getElanDpnsByName(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String elanInstanceName) |
static com.google.common.base.Optional<ElanInstance> |
getElanInstanceByName(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String elanName) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInstance> |
getElanInstanceConfigDataPath(String elanInstanceName) |
static BigInteger |
getElanMetadataLabel(long elanTag) |
static com.google.common.base.Optional<ElanServiceChainState> |
getElanServiceChainState(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String elanInstanceName)
Read from ElanToLportTagMap the PsuedoLogicalPort related with a given elan.
|
static void |
programExternalTunnelTable(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
BigInteger dpnId,
int elanLportTag,
long vni,
int elanTag,
int addOrRemove)
This flow is in charge of receiving packets from the TOR and sending
them to the SCF Pipeline by setting the LportTag of ElanPseudoPort.
|
static void |
programLPortDispatcherFromScf(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
BigInteger dpnId,
int elanLportTag,
long elanTag,
int addOrRemove)
This flow is in charge of handling packets coming from the SCF Pipeline
when there is no matching ServiceChain.
|
static void |
programLPortDispatcherToScf(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
BigInteger dpnId,
long elanTag,
int elanLportTag,
short tableId,
long scfTag,
int addOrRemove)
This flow is in charge of handling packets coming from ExtTunnelTable
that must be redirected to the SCF Pipeline.
|
static void |
updateElanToLportTagMap(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String elanInstanceName,
int lportTag,
long scfTag,
int addOrRemove)
Stores the relation between ElanLport and scfTag.
|
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInstance> getElanInstanceConfigDataPath(String elanInstanceName)
public static com.google.common.base.Optional<ElanInstance> getElanInstanceByName(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String elanName)
public static Collection<BigInteger> getElanDpnsByName(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String elanInstanceName)
public static BigInteger getElanMetadataLabel(long elanTag)
public static void programLPortDispatcherToScf(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, BigInteger dpnId, long elanTag, int elanLportTag, short tableId, long scfTag, int addOrRemove)
dpnId
- Dpn Id where the flow must be installedelanLportTag
- the Elan Pseudo Lport Id in DataplaneelanTag
- the Elan Id in the DataplaneaddOrRemove
- States if the flow must be added or removedpublic static void programLPortDispatcherFromScf(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, BigInteger dpnId, int elanLportTag, long elanTag, int addOrRemove)
dpnId
- Dpn Id where the flow must be installedelanLportTag
- the Elan Pseudo Lport Id to be used in the DataplaneelanTag
- the Elan Id to be used in the DataplaneaddOrRemove
- States if the flow must be added or removedpublic static void programExternalTunnelTable(org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, BigInteger dpnId, int elanLportTag, long vni, int elanTag, int addOrRemove)
dpnId
- Dpn Id where the flow must be installedelanLportTag
- the Elan Pseudo Lport Id to be used in the Dataplanevni
- the VNI to which the Elan is relatedelanTag
- the Elan Id to be used in the DataplaneaddOrRemove
- States if the flow must be added or removedpublic static List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> buildSetLportTagAndGotoLportDispInstructions(int lportTag)
lportTag
- Dataplane identifier of the ElanPseudoPortpublic static void updateElanToLportTagMap(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String elanInstanceName, int lportTag, long scfTag, int addOrRemove)
broker
- dataBroker service referenceelanInstanceName
- Name of the ELAN. Typically its UUIDlportTag
- Dataplane identifier of the ElanPseudoPortscfTag
- Dataplane identifier of the SCFaddOrRemove
- States if flows must be added or removedpublic static com.google.common.base.Optional<ElanServiceChainState> getElanServiceChainState(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String elanInstanceName)
broker
- dataBroker service referenceelanInstanceName
- the name of the ElanCopyright © 2018 OpenDaylight. All rights reserved.