ONOS-1521 : Supports Leaf-Spine topology (tested with 4 x 4 )
- Supports ECMPNotSupportedInTransitRouter option
- Adds Leaf-Spine config file
- Removes the temporary NetworkConfigHanlder class
- Removes the grouphandler dependency
- Removes the grouphandler app
Change-Id: I8c70e81bfb4062e251b25c0fa23ef2c92419a75c
diff --git a/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
index 3f333a4..b3da8dc 100644
--- a/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
+++ b/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
@@ -39,7 +39,7 @@
private static Logger log = LoggerFactory.getLogger(IcmpHandler.class);
private SegmentRoutingManager srManager;
- private NetworkConfigHandler config;
+ private DeviceConfiguration config;
/**
* Creates an IcmpHandler object.
@@ -48,7 +48,7 @@
*/
public IcmpHandler(SegmentRoutingManager srManager) {
this.srManager = srManager;
- this.config = checkNotNull(srManager.networkConfigHandler);
+ this.config = checkNotNull(srManager.deviceConfiguration);
}
/**
@@ -69,8 +69,9 @@
DeviceId deviceId = connectPoint.deviceId();
Ip4Address destinationAddress =
Ip4Address.valueOf(ipv4.getDestinationAddress());
- List<Ip4Address> gatewayIpAddresses = config.getGatewayIpAddress(deviceId);
- IpPrefix routerIpPrefix = config.getRouterIpAddress(deviceId);
+ List<Ip4Address> gatewayIpAddresses = config.getSubnetGatewayIps(deviceId);
+ Ip4Address routerIp = config.getRouterIp(deviceId);
+ IpPrefix routerIpPrefix = IpPrefix.valueOf(routerIp, IpPrefix.MAX_INET_MASK_LENGTH);
Ip4Address routerIpAddress = routerIpPrefix.getIp4Prefix().address();
// ICMP to the router IP or gateway IP
@@ -122,8 +123,8 @@
icmpReplyEth.setVlanID(icmpRequest.getVlanID());
Ip4Address destIpAddress = Ip4Address.valueOf(icmpReplyIpv4.getDestinationAddress());
- Ip4Address destRouterAddress = config.getDestinationRouterAddress(destIpAddress);
- int sid = config.getMplsId(destRouterAddress);
+ Ip4Address destRouterAddress = config.getRouterIpAddressForASubnetHost(destIpAddress);
+ int sid = config.getSegmentId(destRouterAddress);
if (sid < 0) {
log.warn("Cannot find the Segment ID for {}", destAddress);
return;
@@ -138,7 +139,7 @@
IPv4 ipPacket = (IPv4) payload.getPayload();
Ip4Address destIpAddress = Ip4Address.valueOf(ipPacket.getDestinationAddress());
- if (sid == -1 || config.getMplsId(payload.getDestinationMAC()) == sid ||
+ if (sid == -1 || config.getSegmentId(payload.getDestinationMAC()) == sid ||
config.inSameSubnet(outport.deviceId(), destIpAddress)) {
TrafficTreatment treatment = DefaultTrafficTreatment.builder().
setOutput(outport.port()).build();
@@ -164,4 +165,6 @@
srManager.packetService.emit(packet);
}
}
+
+
}