@Singleton public class ElanL2GatewayUtils extends Object
It makes use of HwvtepUtils class located under ovsdb/hwvtepsouthbound project for low-level mdsal operations
Constructor and Description |
---|
ElanL2GatewayUtils(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
ElanDmacUtils elanDmacUtils,
ElanItmUtils elanItmUtils,
org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService entityOwnershipService,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService interfaceManagerRpcService) |
Modifier and Type | Method and Description |
---|---|
static boolean |
areMLAGDevices(L2GatewayDevice l2GatewayDevice,
L2GatewayDevice otherL2GatewayDevice)
Are MLAG devices.
|
void |
cancelDeleteLogicalSwitch(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId,
String lsName) |
static boolean |
checkIfPhyLocatorAlreadyExistsInRemoteMcastEntry(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId,
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs remoteMcastMac,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress expectedPhyLocatorIp)
Check if phy locator already exists in remote mcast entry.
|
void |
close() |
static void |
createItmTunnels(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmRpcService,
String hwvtepId,
String psName,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress tunnelIp) |
void |
deleteElanL2GwDevicesUcastLocalMacsFromDpn(String elanName,
BigInteger dpnId)
Delete elan l2 gateway devices ucast local macs from dpn.
|
com.google.common.util.concurrent.ListenableFuture<Void> |
deleteElanMacsFromL2GatewayDevice(String hwvtepNodeId,
String elanName)
Delete elan macs from L2 gateway device.
This includes deleting ELAN mac table entries plus external device UcastLocalMacs which are part of the same ELAN. |
List<com.google.common.util.concurrent.ListenableFuture<Void>> |
deleteL2GwDeviceUcastLocalMacsFromElan(L2GatewayDevice l2GatewayDevice,
String elanName)
Delete l2 gateway device ucast local macs from elan.
Deletes macs from internal ELAN nodes and also on rest of external l2 gateway devices which are part of the ELAN. |
com.google.common.util.concurrent.ListenableFuture<Void> |
deleteVlanBindingsFromL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId,
org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.attributes.Devices hwVtepDevice,
Integer defaultVlanId)
Delete vlan bindings from l2 gateway device.
|
BigInteger |
getDpidFromInterface(String interfaceName)
Gets the dpid from interface.
|
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> |
getElanDpnMacsFromInterfaces(Set<String> lstElanInterfaceNames)
gets the macs addresses for elan interfaces.
|
List<DpnInterfaces> |
getElanDpns(String elanName) |
static String |
getElanFromLogicalSwitch(String logicalSwitchName)
Gets the elan name from logical switch name.
|
ElanInstance |
getElanInstanceForUcastLocalMac(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs localUcastMac) |
List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs> |
getElanMacTableEntriesMacs(String elanName,
L2GatewayDevice l2GatewayDeviceToBeConfigured,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwVtepNodeId,
String logicalSwitchName)
Gets the elan mac table entries as remote ucast macs.
|
static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface |
getInterfaceFromConfigDS(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey interfaceKey,
org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> |
getInterfaceIdentifier(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey interfaceKey) |
static String |
getL2GatewayConnectionJobKey(String nodeId,
String logicalSwitchName)
Gets the l2 gateway connection job key.
|
static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> |
getL2GwDeviceLocalMacs(L2GatewayDevice l2gwDevice)
Gets the l2 gw device local macs.
|
static String |
getLogicalSwitchFromElan(String elanName)
Gets the logical switch name from elan name.
|
static String |
getNodeIdFromDpnId(BigInteger dpnId) |
static List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs> |
getOtherDevicesMacs(String elanName,
L2GatewayDevice l2GatewayDeviceToBeConfigured,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwVtepNodeId,
String logicalSwitchName)
Gets the l2 gateway devices ucast local macs as remote ucast macs.
|
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> |
getRemoteUcastMacs(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId,
String logicalSwitch,
org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType)
Gets the remote ucast macs from hwvtep node filtering based on logical
switch.
|
void |
installDmacFlowsOnDpn(BigInteger dpnId,
L2GatewayDevice l2gwDevice,
ElanInstance elan,
String interfaceName)
Install dmac flows on dpn.
|
void |
installElanL2gwDevicesLocalMacsInDpn(BigInteger dpnId,
ElanInstance elan,
String interfaceName)
Install elan l2gw devices local macs in dpn.
|
com.google.common.util.concurrent.ListenableFuture<Void> |
installElanMacsInL2GatewayDevice(String elanName,
L2GatewayDevice l2GatewayDevice)
Install ELAN macs in L2 Gateway device.
This includes installing ELAN mac table entries plus external device UcastLocalMacs which are part of the same ELAN. |
void |
installL2gwDeviceMacsInDpn(BigInteger dpnId,
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId l2gwDeviceNodeId,
ElanInstance elan,
String interfaceName)
Install external device local macs in dpn.
|
void |
installL2GwUcastMacInElan(ElanInstance elan,
L2GatewayDevice extL2GwDevice,
String macToBeAdded,
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs localUcastMacs,
String interfaceName) |
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs |
readRemoteMcastMac(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId,
String logicalSwitchName,
org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType)
Gets the remote mcast mac.
|
void |
removeMacsFromElanExternalDevices(ElanInstance elanInstance,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> macAddresses)
Removes the given MAC Addresses from all the External Devices belonging
to the specified ELAN.
|
void |
scheduleAddDpnMacInExtDevices(String elanName,
BigInteger dpId,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> staticMacAddresses) |
void |
scheduleAddDpnMacsInExtDevice(String elanName,
BigInteger dpId,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> staticMacAddresses,
L2GatewayDevice externalDevice) |
void |
scheduleDeleteLogicalSwitch(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId,
String lsName) |
void |
unInstallL2GwUcastMacFromElan(ElanInstance elan,
L2GatewayDevice l2GwDevice,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> macAddresses)
Un install l2 gw ucast mac from elan.
|
com.google.common.util.concurrent.ListenableFuture<Void> |
updateVlanBindingsInL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId,
String logicalSwitchName,
org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.attributes.Devices hwVtepDevice,
Integer defaultVlanId)
Update vlan bindings in l2 gateway device.
|
com.google.common.util.concurrent.ListenableFuture<Void> |
updateVlanBindingsInL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId,
String psName,
String interfaceName,
List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.VlanBindings> vlanBindings)
Update vlan bindings in l2 gateway device.
|
@Inject public ElanL2GatewayUtils(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, ElanDmacUtils elanDmacUtils, ElanItmUtils elanItmUtils, org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService entityOwnershipService, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService interfaceManagerRpcService)
@PreDestroy public void close()
public List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> getElanDpnMacsFromInterfaces(Set<String> lstElanInterfaceNames)
lstElanInterfaceNames
- the lst elan interface namespublic static boolean checkIfPhyLocatorAlreadyExistsInRemoteMcastEntry(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs remoteMcastMac, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress expectedPhyLocatorIp)
nodeId
- the node idremoteMcastMac
- the remote mcast macexpectedPhyLocatorIp
- the expected phy locator ippublic org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs readRemoteMcastMac(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId, String logicalSwitchName, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType)
nodeId
- the node idlogicalSwitchName
- the logical switch namedatastoreType
- the datastore typepublic void removeMacsFromElanExternalDevices(ElanInstance elanInstance, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> macAddresses)
elanInstance
- the elan instancemacAddresses
- the mac addressespublic ElanInstance getElanInstanceForUcastLocalMac(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs localUcastMac)
public void installL2gwDeviceMacsInDpn(BigInteger dpnId, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId l2gwDeviceNodeId, ElanInstance elan, String interfaceName) throws ElanException
dpnId
- the dpn idl2gwDeviceNodeId
- the l2gw device node idelan
- the elaninterfaceName
- the interface nameElanException
- in case of issues creating the flow objectspublic void installDmacFlowsOnDpn(BigInteger dpnId, L2GatewayDevice l2gwDevice, ElanInstance elan, String interfaceName) throws ElanException
dpnId
- the dpn idl2gwDevice
- the l2gw deviceelan
- the elaninterfaceName
- the interface nameElanException
- in case of issues creating the flow objectspublic void installElanL2gwDevicesLocalMacsInDpn(BigInteger dpnId, ElanInstance elan, String interfaceName) throws ElanException
dpnId
- the dpn idelan
- the elaninterfaceName
- the interface nameElanException
- in case of issues creating the flow objectspublic void installL2GwUcastMacInElan(ElanInstance elan, L2GatewayDevice extL2GwDevice, String macToBeAdded, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs localUcastMacs, String interfaceName)
public void unInstallL2GwUcastMacFromElan(ElanInstance elan, L2GatewayDevice l2GwDevice, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> macAddresses)
elan
- the elanl2GwDevice
- the l2 gw devicemacAddresses
- the mac addressespublic void deleteElanL2GwDevicesUcastLocalMacsFromDpn(String elanName, BigInteger dpnId)
elanName
- the elan namedpnId
- the dpn idpublic static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> getL2GwDeviceLocalMacs(L2GatewayDevice l2gwDevice)
l2gwDevice
- the l2gw devicepublic com.google.common.util.concurrent.ListenableFuture<Void> deleteElanMacsFromL2GatewayDevice(String hwvtepNodeId, String elanName)
hwvtepNodeId
- the hwvtepNodeIdelanName
- the elan namepublic List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress> getRemoteUcastMacs(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId, String logicalSwitch, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType)
hwvtepNodeId
- the hwvtep node idlogicalSwitch
- the logical switchdatastoreType
- the datastore typepublic com.google.common.util.concurrent.ListenableFuture<Void> installElanMacsInL2GatewayDevice(String elanName, L2GatewayDevice l2GatewayDevice)
elanName
- the elan namel2GatewayDevice
- the l2 gateway device which has to be configuredpublic static List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs> getOtherDevicesMacs(String elanName, L2GatewayDevice l2GatewayDeviceToBeConfigured, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwVtepNodeId, String logicalSwitchName)
elanName
- the elan namel2GatewayDeviceToBeConfigured
- the l2 gateway device to be configuredhwVtepNodeId
- the hw vtep node Id to be configuredlogicalSwitchName
- the logical switch namepublic static boolean areMLAGDevices(L2GatewayDevice l2GatewayDevice, L2GatewayDevice otherL2GatewayDevice)
l2GatewayDevice
- the l2 gateway deviceotherL2GatewayDevice
- the other l2 gateway devicepublic List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs> getElanMacTableEntriesMacs(String elanName, L2GatewayDevice l2GatewayDeviceToBeConfigured, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwVtepNodeId, String logicalSwitchName)
elanName
- the elan namel2GatewayDeviceToBeConfigured
- the l2 gateway device to be configuredhwVtepNodeId
- the hw vtep node idlogicalSwitchName
- the logical switch namepublic BigInteger getDpidFromInterface(String interfaceName)
interfaceName
- the interface namepublic com.google.common.util.concurrent.ListenableFuture<Void> updateVlanBindingsInL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId, String logicalSwitchName, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.attributes.Devices hwVtepDevice, Integer defaultVlanId)
nodeId
- the node idlogicalSwitchName
- the logical switch namehwVtepDevice
- the hardware devicedefaultVlanId
- the default vlan idpublic com.google.common.util.concurrent.ListenableFuture<Void> updateVlanBindingsInL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId, String psName, String interfaceName, List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.VlanBindings> vlanBindings)
nodeId
- the node idpsName
- the physical switch nameinterfaceName
- the interface in physical switchvlanBindings
- the vlan bindings to be configuredpublic com.google.common.util.concurrent.ListenableFuture<Void> deleteVlanBindingsFromL2GatewayDevice(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.attributes.Devices hwVtepDevice, Integer defaultVlanId)
nodeId
- the node idhwVtepDevice
- the hw vtep devicedefaultVlanId
- the default vlan idpublic static String getElanFromLogicalSwitch(String logicalSwitchName)
logicalSwitchName
- the logical switch namepublic static String getLogicalSwitchFromElan(String elanName)
elanName
- the elan namepublic static String getL2GatewayConnectionJobKey(String nodeId, String logicalSwitchName)
nodeId
- the node idlogicalSwitchName
- the logical switch namepublic static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> getInterfaceIdentifier(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey interfaceKey)
public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface getInterfaceFromConfigDS(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey interfaceKey, org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker)
public List<com.google.common.util.concurrent.ListenableFuture<Void>> deleteL2GwDeviceUcastLocalMacsFromElan(L2GatewayDevice l2GatewayDevice, String elanName)
l2GatewayDevice
- the l2 gateway device whose ucast local macs to be deleted
from elanelanName
- the elan namepublic static void createItmTunnels(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmRpcService, String hwvtepId, String psName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress tunnelIp)
public static String getNodeIdFromDpnId(BigInteger dpnId)
public void scheduleAddDpnMacInExtDevices(String elanName, BigInteger dpId, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> staticMacAddresses)
public void scheduleAddDpnMacsInExtDevice(String elanName, BigInteger dpId, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress> staticMacAddresses, L2GatewayDevice externalDevice)
public void scheduleDeleteLogicalSwitch(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId, String lsName)
public void cancelDeleteLogicalSwitch(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId hwvtepNodeId, String lsName)
public List<DpnInterfaces> getElanDpns(String elanName)
Copyright © 2018 OpenDaylight. All rights reserved.