[CORD-630] IPv6 filtering rules
Changes:
- Udpates TMAC table in order to handle IPv6 protocol;
- Updates ACL table in order to handle ICMPv6 traffic and traffic for the router;
- Udpates UNICAST table in order to handle the traffic towards the other routers;
- Updates the router ip in the netcfg in order to handle IPv6 address;
- Substitutes IpAddress and IpPrefix in many parts;
- Updates cpqd and ofdpa drivers to handle the above cases;
- Fixes the interaction with NRM when neighbordiscovery is activated;
- Introduces the IPv6 loopback and IPv6 node sid;
Change-Id: I0a3003be6f2f4b581cabe224c47a0cfbf51e8f9c
diff --git a/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java b/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
index 5ad9cdc..565dbe1 100644
--- a/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
+++ b/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
@@ -15,15 +15,15 @@
*/
package org.onosproject.segmentrouting.config;
-import java.util.List;
-import java.util.Map;
-
-import org.onlab.packet.Ip4Address;
import org.onlab.packet.Ip4Prefix;
+import org.onlab.packet.IpAddress;
import org.onlab.packet.MacAddress;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
+import java.util.List;
+import java.util.Map;
+
/**
* Mechanism through which group handler module retrieves
* the device specific attributes such as segment ID,
@@ -39,13 +39,22 @@
boolean isConfigured(DeviceId deviceId);
/**
- * Returns the segment id of a device to be used in group creation.
+ * Returns the IPv4 segment id of a device to be used in group creation.
*
* @param deviceId device identifier
* @throws DeviceConfigNotFoundException if the device configuration is not found
* @return segment id of a device
*/
- int getSegmentId(DeviceId deviceId) throws DeviceConfigNotFoundException;
+ int getIPv4SegmentId(DeviceId deviceId) throws DeviceConfigNotFoundException;
+
+ /**
+ * Returns the IPv6 segment id of a device to be used in group creation.
+ *
+ * @param deviceId device identifier
+ * @throws DeviceConfigNotFoundException if the device configuration is not found
+ * @return segment id of a device
+ */
+ int getIPv6SegmentId(DeviceId deviceId) throws DeviceConfigNotFoundException;
/**
* Returns the Mac address of a device to be used in group creation.
@@ -57,13 +66,22 @@
MacAddress getDeviceMac(DeviceId deviceId) throws DeviceConfigNotFoundException;
/**
- * Returns the router ip address of a segment router.
+ * Returns the router ipv4 address of a segment router.
*
* @param deviceId device identifier
* @throws DeviceConfigNotFoundException if the device configuration is not found
* @return router ip address
*/
- Ip4Address getRouterIp(DeviceId deviceId) throws DeviceConfigNotFoundException;
+ IpAddress getRouterIpv4(DeviceId deviceId) throws DeviceConfigNotFoundException;
+
+ /**
+ * Returns the router ipv6 address of a segment router.
+ *
+ * @param deviceId device identifier
+ * @throws DeviceConfigNotFoundException if the device configuration is not found
+ * @return router ip address
+ */
+ IpAddress getRouterIpv6(DeviceId deviceId) throws DeviceConfigNotFoundException;
/**
* Indicates whether a device is edge device or transit/core device.