Carry next hop VLAN in the resolved route
Also improve routes command to better display IPv6 routes
Change-Id: I72e78fc2a7ed19322c3b4281c7b93e19484f551e
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/ResolvedRoute.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/ResolvedRoute.java
index d6cb4b4..02d4e95 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/ResolvedRoute.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/ResolvedRoute.java
@@ -19,6 +19,7 @@
import org.onlab.packet.IpAddress;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
+import org.onlab.packet.VlanId;
import org.onosproject.net.ConnectPoint;
import java.util.Objects;
@@ -33,6 +34,7 @@
private final IpPrefix prefix;
private final IpAddress nextHop;
private final MacAddress nextHopMac;
+ private final VlanId nextHopVlan;
private final ConnectPoint location;
/**
@@ -43,10 +45,7 @@
* @param location connect point where the next hop connects to
*/
public ResolvedRoute(Route route, MacAddress nextHopMac, ConnectPoint location) {
- this.prefix = route.prefix();
- this.nextHop = route.nextHop();
- this.nextHopMac = nextHopMac;
- this.location = location;
+ this(route, nextHopMac, VlanId.NONE, location);
}
/**
@@ -59,9 +58,41 @@
*/
public ResolvedRoute(IpPrefix prefix, IpAddress nextHop, MacAddress nextHopMac,
ConnectPoint location) {
+ this(prefix, nextHop, nextHopMac, VlanId.NONE, location);
+ }
+
+ /**
+ * Creates a new resolved route.
+ *
+ * @param route input route
+ * @param nextHopMac next hop MAC address
+ * @param nextHopVlan next hop VLAN ID
+ * @param location connect point where the next hop connects to
+ */
+ public ResolvedRoute(Route route, MacAddress nextHopMac, VlanId nextHopVlan,
+ ConnectPoint location) {
+ this.prefix = route.prefix();
+ this.nextHop = route.nextHop();
+ this.nextHopMac = nextHopMac;
+ this.nextHopVlan = nextHopVlan;
+ this.location = location;
+ }
+
+ /**
+ * Creates a new resolved route.
+ *
+ * @param prefix route prefix
+ * @param nextHop route next hop IP address
+ * @param nextHopMac next hop MAC address
+ * @param nextHopVlan next hop VLAN address
+ * @param location connect point where the next hop connects to
+ */
+ public ResolvedRoute(IpPrefix prefix, IpAddress nextHop, MacAddress nextHopMac,
+ VlanId nextHopVlan, ConnectPoint location) {
this.prefix = prefix;
this.nextHop = nextHop;
this.nextHopMac = nextHopMac;
+ this.nextHopVlan = nextHopVlan;
this.location = location;
}
@@ -93,6 +124,15 @@
}
/**
+ * Returns the next hop VLAN ID.
+ *
+ * @return VLAN ID
+ */
+ public VlanId nextHopVlan() {
+ return nextHopVlan;
+ }
+
+ /**
* Returns the next hop location.
*
* @return connect point where the next hop attaches to
@@ -103,7 +143,7 @@
@Override
public int hashCode() {
- return Objects.hash(prefix, nextHop, nextHopMac, location);
+ return Objects.hash(prefix, nextHop, nextHopMac, nextHopVlan, location);
}
@Override
@@ -121,6 +161,7 @@
return Objects.equals(this.prefix, that.prefix) &&
Objects.equals(this.nextHop, that.nextHop) &&
Objects.equals(this.nextHopMac, that.nextHopMac) &&
+ Objects.equals(this.nextHopVlan, that.nextHopVlan) &&
Objects.equals(this.location, that.location);
}
@@ -130,6 +171,7 @@
.add("prefix", prefix)
.add("nextHop", nextHop)
.add("nextHopMac", nextHopMac)
+ .add("nextHopVlan", nextHopVlan)
.add("location", location)
.toString();
}