mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 12:16:13 +02:00
Fixed to add gateway node from ICMP handler also
And made the gateway store or group update synchronized Change-Id: I10fc391e9059772e5da8322997a994db26a096b3
This commit is contained in:
parent
bd09d6e07e
commit
5aa480be45
@ -309,13 +309,15 @@ public class OpenstackFloatingIpManager implements OpenstackFloatingIpService {
|
||||
case COMPLETE:
|
||||
if (node.type() == GATEWAY) {
|
||||
log.info("GATEWAY node {} detected", node.hostname());
|
||||
GatewayNode gnode = GatewayNode.builder()
|
||||
.gatewayDeviceId(node.intBridge())
|
||||
.dataIpAddress(node.dataIp().getIp4Address())
|
||||
.uplinkIntf(node.externalPortName().get())
|
||||
.build();
|
||||
gatewayService.addGatewayNode(gnode);
|
||||
eventExecutor.execute(OpenstackFloatingIpManager.this::reloadFloatingIpRules);
|
||||
eventExecutor.execute(() -> {
|
||||
GatewayNode gnode = GatewayNode.builder()
|
||||
.gatewayDeviceId(node.intBridge())
|
||||
.dataIpAddress(node.dataIp().getIp4Address())
|
||||
.uplinkIntf(node.externalPortName().get())
|
||||
.build();
|
||||
gatewayService.addGatewayNode(gnode);
|
||||
reloadFloatingIpRules();
|
||||
});
|
||||
}
|
||||
break;
|
||||
case INIT:
|
||||
|
||||
@ -49,6 +49,7 @@ import org.onosproject.openstacknode.OpenstackNode;
|
||||
import org.onosproject.openstacknode.OpenstackNodeEvent;
|
||||
import org.onosproject.openstacknode.OpenstackNodeListener;
|
||||
import org.onosproject.openstacknode.OpenstackNodeService;
|
||||
import org.onosproject.scalablegateway.api.GatewayNode;
|
||||
import org.onosproject.scalablegateway.api.ScalableGatewayService;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
@ -322,7 +323,15 @@ public class OpenstackIcmpHandler {
|
||||
case COMPLETE:
|
||||
if (node.type() == GATEWAY) {
|
||||
log.info("GATEWAY node {} detected", node.hostname());
|
||||
eventExecutor.execute(() -> requestPacket(appId));
|
||||
eventExecutor.execute(() -> {
|
||||
GatewayNode gnode = GatewayNode.builder()
|
||||
.gatewayDeviceId(node.intBridge())
|
||||
.dataIpAddress(node.dataIp().getIp4Address())
|
||||
.uplinkIntf(node.externalPortName().get())
|
||||
.build();
|
||||
gatewayService.addGatewayNode(gnode);
|
||||
requestPacket(appId);
|
||||
});
|
||||
}
|
||||
break;
|
||||
case INIT:
|
||||
|
||||
@ -481,15 +481,17 @@ public class OpenstackRoutingManager extends AbstractVmHandler implements Openst
|
||||
switch (event.type()) {
|
||||
case COMPLETE:
|
||||
log.info("COMPLETE node {} detected", node.hostname());
|
||||
if (node.type() == GATEWAY) {
|
||||
GatewayNode gnode = GatewayNode.builder()
|
||||
.gatewayDeviceId(node.intBridge())
|
||||
.dataIpAddress(node.dataIp().getIp4Address())
|
||||
.uplinkIntf(node.externalPortName().get())
|
||||
.build();
|
||||
gatewayService.addGatewayNode(gnode);
|
||||
}
|
||||
eventExecutor.execute(OpenstackRoutingManager.this::reloadRoutingRules);
|
||||
eventExecutor.execute(() -> {
|
||||
if (node.type() == GATEWAY) {
|
||||
GatewayNode gnode = GatewayNode.builder()
|
||||
.gatewayDeviceId(node.intBridge())
|
||||
.dataIpAddress(node.dataIp().getIp4Address())
|
||||
.uplinkIntf(node.externalPortName().get())
|
||||
.build();
|
||||
gatewayService.addGatewayNode(gnode);
|
||||
}
|
||||
reloadRoutingRules();
|
||||
});
|
||||
break;
|
||||
case INIT:
|
||||
case DEVICE_CREATED:
|
||||
|
||||
@ -208,7 +208,7 @@ public class ScalableGatewayManager implements ScalableGatewayService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addGatewayNode(GatewayNode gatewayNode) {
|
||||
public synchronized boolean addGatewayNode(GatewayNode gatewayNode) {
|
||||
Versioned<GatewayNode> existingNode = gatewayNodeMap.putIfAbsent(
|
||||
gatewayNode.getGatewayDeviceId(), gatewayNode);
|
||||
if (existingNode == null) {
|
||||
@ -221,7 +221,7 @@ public class ScalableGatewayManager implements ScalableGatewayService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteGatewayNode(GatewayNode gatewayNode) {
|
||||
public synchronized boolean deleteGatewayNode(GatewayNode gatewayNode) {
|
||||
boolean result = gatewayNodeMap.remove(gatewayNode.getGatewayDeviceId(), gatewayNode);
|
||||
if (result) {
|
||||
updateGatewayGroup(gatewayNode, false);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user