LOG.trace("Interface operstatus is same orig {} updated {}", original, update);
return;
}
-
- if (original.getOperStatus().equals(OperStatus.Unknown) || update.getOperStatus().equals(OperStatus.Unknown)) {
- LOG.trace("New/old interface state is unknown not handling orig {} updated {}", original, update);
- return;
- }
-
List<String> ofportIds = update.getLowerLayerIf();
if (ofportIds == null || ofportIds.isEmpty()) {
return;
NodeConnectorId nodeConnectorId = new NodeConnectorId(ofportIds.get(0));
BigInteger dpnId = BigInteger.valueOf(MDSALUtil.getDpnIdFromPortName(nodeConnectorId));
String interfaceName = update.getName();
+ OperStatus updatedOperStatus = update.getOperStatus();
+ if (original.getOperStatus().equals(OperStatus.Up) && updatedOperStatus.equals(OperStatus.Unknown)) {
+ updatedOperStatus = OperStatus.Down;
+ }
DhcpInterfaceUpdateJob job = new DhcpInterfaceUpdateJob(dhcpExternalTunnelManager, dataBroker,
- interfaceName, dpnId, update.getOperStatus(), interfaceManager);
+ interfaceName, dpnId, updatedOperStatus, interfaceManager);
jobCoordinator.enqueueJob(DhcpServiceUtils.getJobKey(interfaceName), job, DhcpMConstants.RETRY_COUNT);
}
package org.opendaylight.netvirt.dhcpservice;
import java.math.BigInteger;
-import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import org.opendaylight.genius.infra.Datastore;
import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl;
-import org.opendaylight.genius.mdsalutil.MDSALUtil;
import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
-import org.opendaylight.netvirt.dhcpservice.api.DhcpMConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@Override
protected void remove(InstanceIdentifier<Node> identifier, Node del) {
- NodeId nodeId = del.getId();
- BigInteger dpnId = MDSALUtil.getDpnIdFromNodeName(nodeId);
- List<BigInteger> listOfDpns = DhcpServiceUtils.getListOfDpns(broker);
- dhcpExternalTunnelManager.handleDesignatedDpnDown(dpnId, listOfDpns);
}
@Override
ListenableFutures.addErrorLogging(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
tx -> dhcpManager.setupDefaultDhcpFlows(tx, dpId)), LOG, "Error handling node addition for {}", add);
dhcpExternalTunnelManager.installDhcpDropActionOnDpn(dpId);
- List<BigInteger> listOfDpns = DhcpServiceUtils.getListOfDpns(broker);
- dhcpExternalTunnelManager.handleDesignatedDpnDown(DhcpMConstants.INVALID_DPID, listOfDpns);
}
@Override
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
import org.opendaylight.netvirt.dhcpservice.DhcpExternalTunnelManager;
-import org.opendaylight.netvirt.dhcpservice.DhcpServiceUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.Tunnel;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus;
IfTunnel tunnelInterface = iface.augmentation(IfTunnel.class);
if (tunnelInterface != null && !tunnelInterface.isInternal()) {
IpAddress tunnelIp = tunnelInterface.getTunnelDestination();
- List<BigInteger> dpns = DhcpServiceUtils.getListOfDpns(dataBroker);
- if (dpns.contains(dpnId)) {
- if (operStatus == OperStatus.Down) {
- return dhcpExternalTunnelManager.handleTunnelStateDown(tunnelIp, dpnId);
- } else if (operStatus == OperStatus.Up) {
- return dhcpExternalTunnelManager.handleTunnelStateUp(tunnelIp, dpnId);
- }
+ if (operStatus == OperStatus.Down) {
+ return dhcpExternalTunnelManager.handleTunnelStateDown(tunnelIp, dpnId);
+ } else if (operStatus == OperStatus.Up) {
+ return dhcpExternalTunnelManager.handleTunnelStateUp(tunnelIp, dpnId);
}
}
}