blob: 339b2c82042baf05ecefc4e006989dc9b47eb95e [file] [log] [blame]
/*
* Copyright 2019-present Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.segmentrouting;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
import org.onosproject.net.host.InterfaceIpAddress;
import org.onosproject.net.intf.Interface;
import org.onosproject.routeservice.ResolvedRoute;
import org.onosproject.routeservice.Route;
import org.onlab.packet.Ethernet;
import org.onlab.packet.ICMP;
import org.onlab.packet.ICMP6;
import org.onlab.packet.IPv4;
import org.onlab.packet.IPv6;
import org.onlab.packet.Ip4Address;
import org.onlab.packet.Ip6Address;
import org.onlab.packet.IpAddress;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
import org.onlab.packet.VlanId;
import org.onlab.packet.ICMPEcho;
import java.util.Map;
import java.util.Set;
import static org.onlab.packet.ICMP.TYPE_ECHO_REQUEST;
import static org.onlab.packet.ICMP6.ECHO_REQUEST;
import static org.onlab.packet.IPv4.PROTOCOL_ICMP;
import static org.onosproject.routeservice.Route.Source.STATIC;
/**
* Utilities class for unit tests.
*/
public final class TestUtils {
private TestUtils() {
}
// Device configuration section
static final DeviceId REMOTE_LEAF = DeviceId.deviceId("of:0000000000000001");
static final int REMOTE_LEAF_SID4 = 1;
static final String REMOTE_LEAF_LB4 = "192.168.0.1";
static final int REMOTE_LEAF_SID6 = 10;
static final String REMOTE_LEAF_LB6 = "2000::c0a8:1";
private static final PortNumber P1 = PortNumber.portNumber(1);
static final MacAddress REMOTE_MAC = MacAddress.valueOf("00:00:00:00:00:02");
static final DeviceId LOCAL_LEAF = DeviceId.deviceId("of:0000000000000101");
static final int LOCAL_LEAF_SID4 = 101;
static final String LOCAL_LEAF_LB4 = "192.168.0.101";
static final int LOCAL_LEAF_SID6 = 111;
static final String LOCAL_LEAF_LB6 = "2000::c0a8:101";
static final MacAddress LOCAL_MAC = MacAddress.valueOf("00:00:00:00:01:01");
// Configure a pair
static final DeviceId LOCAL_LEAF1 = DeviceId.deviceId("of:0000000000000201");
static final int LOCAL_LEAF1_SID4 = 201;
static final String LOCAL_LEAF1_LB4 = "192.168.0.201";
static final int LOCAL_LEAF1_SID6 = 211;
static final String LOCAL_LEAF1_LB6 = "2000::c0a8:201";
static final MacAddress LOCAL_MAC1 = MacAddress.valueOf("00:00:00:00:02:01");
static final DeviceId LOCAL_LEAF2 = DeviceId.deviceId("of:0000000000000202");
static final int LOCAL_LEAF2_SID4 = 202;
static final String LOCAL_LEAF2_LB4 = "192.168.0.202";
static final int LOCAL_LEAF2_SID6 = 212;
static final String LOCAL_LEAF2_LB6 = "2000::c0a8:202";
static final MacAddress LOCAL_MAC2 = MacAddress.valueOf("00:00:00:00:02:02");
// Pair port
static final PortNumber P3 = PortNumber.portNumber(3);
// Ports configuration section
static final ConnectPoint CP11 = new ConnectPoint(REMOTE_LEAF, P1);
private static final PortNumber P2 = PortNumber.portNumber(2);
static final ConnectPoint CP12 = new ConnectPoint(REMOTE_LEAF, P2);
private static final IpAddress IP4_1 = IpAddress.valueOf("10.0.0.254");
private static final IpPrefix PREFIX4_1 = IpPrefix.valueOf("10.0.0.254/24");
private static final IpAddress IP6_1 = IpAddress.valueOf("2000::ff");
private static final IpPrefix PREFIX6_1 = IpPrefix.valueOf("2000::ff/120");
private static final InterfaceIpAddress INTF_IP4_1 = new InterfaceIpAddress(
IP4_1, PREFIX4_1);
private static final InterfaceIpAddress INTF_IP6_1 = new InterfaceIpAddress(
IP6_1, PREFIX6_1);
private static final VlanId INTF_VLAN_UNTAGGED = VlanId.vlanId((short) 10);
static final Interface INTF1 = new Interface(
"INTF1", CP12, Lists.newArrayList(INTF_IP4_1, INTF_IP6_1), MacAddress.NONE,
null, INTF_VLAN_UNTAGGED, null, null);
static final ConnectPoint CP13 = new ConnectPoint(REMOTE_LEAF, P3);
private static final IpAddress IP4_2 = IpAddress.valueOf("10.0.3.254");
private static final IpPrefix PREFIX4_2 = IpPrefix.valueOf("10.0.3.254/24");
private static final IpAddress IP6_2 = IpAddress.valueOf("2000::3ff");
private static final IpPrefix PREFIX6_2 = IpPrefix.valueOf("2000::3ff/120");
private static final InterfaceIpAddress INTF_IP4_2 = new InterfaceIpAddress(
IP4_2, PREFIX4_2);
private static final InterfaceIpAddress INTF_IP6_2 = new InterfaceIpAddress(
IP6_2, PREFIX6_2);
static final Interface INTF2 = new Interface(
"INTF2", CP13, Lists.newArrayList(INTF_IP4_2, INTF_IP6_2), MacAddress.NONE,
null, INTF_VLAN_UNTAGGED, null, null);
static final ConnectPoint CP1011 = new ConnectPoint(LOCAL_LEAF, P1);
private static final IpAddress IP4_11 = IpAddress.valueOf("10.0.1.254");
private static final IpPrefix PREFIX4_11 = IpPrefix.valueOf("10.0.1.254/24");
private static final InterfaceIpAddress INTF_IP4_11 = new InterfaceIpAddress(
IP4_11, PREFIX4_11);
private static final IpAddress IP6_11 = IpAddress.valueOf("2000::1ff");
private static final IpPrefix PREFIX6_11 = IpPrefix.valueOf("2000::1ff/120");
private static final InterfaceIpAddress INTF_IP6_11 = new InterfaceIpAddress(
IP6_11, PREFIX6_11);
static final Interface INTF111 = new Interface(
"INTF111", CP1011, Lists.newArrayList(INTF_IP4_11, INTF_IP6_11), MacAddress.NONE, null,
INTF_VLAN_UNTAGGED, null, null);
static final ConnectPoint CP2011 = new ConnectPoint(LOCAL_LEAF1, P1);
private static final IpAddress IP4_21 = IpAddress.valueOf("10.0.2.254");
private static final IpPrefix PREFIX4_21 = IpPrefix.valueOf("10.0.2.254/24");
private static final InterfaceIpAddress INTF_IP4_21 = new InterfaceIpAddress(
IP4_21, PREFIX4_21);
private static final IpAddress IP6_21 = IpAddress.valueOf("2000::2ff");
private static final IpPrefix PREFIX6_21 = IpPrefix.valueOf("2000::2ff/120");
private static final InterfaceIpAddress INTF_IP6_21 = new InterfaceIpAddress(
IP6_21, PREFIX6_21);
static final Interface INTF211 = new Interface(
"INTF211", CP2011, Lists.newArrayList(INTF_IP4_21, INTF_IP6_21), MacAddress.NONE, null,
INTF_VLAN_UNTAGGED, null, null);
static final ConnectPoint CP2021 = new ConnectPoint(LOCAL_LEAF2, P1);
private static final IpAddress IP4_22 = IpAddress.valueOf("10.0.2.254");
private static final IpPrefix PREFIX4_22 = IpPrefix.valueOf("10.0.2.254/24");
private static final InterfaceIpAddress INTF_IP4_22 = new InterfaceIpAddress(
IP4_22, PREFIX4_22);
private static final IpAddress IP6_22 = IpAddress.valueOf("2000::2ff");
private static final IpPrefix PREFIX6_22 = IpPrefix.valueOf("2000::2ff/120");
private static final InterfaceIpAddress INTF_IP6_22 = new InterfaceIpAddress(
IP6_22, PREFIX6_22);
static final Interface INTF212 = new Interface(
"INTF212", CP2021, Lists.newArrayList(INTF_IP4_22, INTF_IP6_22), MacAddress.NONE, null,
INTF_VLAN_UNTAGGED, null, null);
private static final PortNumber P4 = PortNumber.portNumber(4);
static final ConnectPoint CP2024 = new ConnectPoint(LOCAL_LEAF2, P4);
private static final PortNumber P5 = PortNumber.portNumber(5);
static final ConnectPoint CP2025 = new ConnectPoint(LOCAL_LEAF2, P5);
private static final IpAddress IP4_23 = IpAddress.valueOf("10.0.4.254");
private static final IpPrefix PREFIX4_23 = IpPrefix.valueOf("10.0.4.254/24");
private static final InterfaceIpAddress INTF_IP4_23 = new InterfaceIpAddress(
IP4_23, PREFIX4_23);
private static final IpAddress IP6_23 = IpAddress.valueOf("2000::4ff");
private static final IpPrefix PREFIX6_23 = IpPrefix.valueOf("2000::4ff/120");
private static final InterfaceIpAddress INTF_IP6_23 = new InterfaceIpAddress(
IP6_23, PREFIX6_23);
static final Interface INTF213 = new Interface(
"INTF212", CP2024, Lists.newArrayList(INTF_IP4_23, INTF_IP6_23), MacAddress.NONE, null,
INTF_VLAN_UNTAGGED, null, null);
// Packet-ins section
private static final MacAddress SRC_MAC = MacAddress.valueOf("00:00:00:00:00:01");
private static final ICMPEcho ICMP_ECHO = new ICMPEcho()
.setIdentifier((short) 0)
.setSequenceNum((short) 0);
private static final ICMP ICMP_REQUEST = (ICMP) new ICMP()
.setIcmpType(TYPE_ECHO_REQUEST)
.setPayload(ICMP_ECHO);
private static final Ip4Address SRC_IPV4 = Ip4Address.valueOf("10.0.1.1");
static final Ip4Address DST_IPV4 = Ip4Address.valueOf("10.0.0.254");
private static final IPv4 IPV4_REQUEST = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4.toInt())
.setSourceAddress(SRC_IPV4.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4 = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV4_REQUEST);
private static final ICMP6 ICMP6_REQUEST = new ICMP6()
.setIcmpType(ECHO_REQUEST);
private static final Ip6Address SRC_IPV6 = Ip6Address.valueOf("2000::101");
static final Ip6Address DST_IPV6 = Ip6Address.valueOf("2000::ff");
private static final IPv6 IPV6_REQUEST = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6.toOctets())
.setSourceAddress(SRC_IPV6.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6 = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV6_REQUEST);
static final Ip4Address SRC_IPV41 = Ip4Address.valueOf("10.0.2.1");
private static final IPv4 IPV41_REQUEST = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4.toInt())
.setSourceAddress(SRC_IPV41.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV41 = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV41_REQUEST);
static final Ip6Address SRC_IPV61 = Ip6Address.valueOf("2000::201");
private static final IPv6 IPV61_REQUEST = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6.toOctets())
.setSourceAddress(SRC_IPV61.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV61 = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV61_REQUEST);
private static final MacAddress SRC_MAC_MY = MacAddress.valueOf("00:01:00:00:00:01");
static final Ip4Address SRC_IPV4_MY = Ip4Address.valueOf("10.0.0.1");
private static final IPv4 IPV4_REQUEST_MY = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4.toInt())
.setSourceAddress(SRC_IPV4_MY.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_MY = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV4_REQUEST_MY);
static final Ip6Address SRC_IPV6_MY = Ip6Address.valueOf("2000::1");
private static final IPv6 IPV6_REQUEST_MY = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6.toOctets())
.setSourceAddress(SRC_IPV6_MY.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_MY = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV6_REQUEST_MY);
static final Ip4Address DST_IPV4_LOCAL = Ip4Address.valueOf("10.0.3.254");
private static final IPv4 IPV4_REQUEST_LOCAL = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4_LOCAL.toInt())
.setSourceAddress(SRC_IPV4_MY.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_LOCAL = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV4_REQUEST_LOCAL);
static final Ip6Address DST_IPV6_LOCAL = Ip6Address.valueOf("2000::3ff");
private static final IPv6 IPV6_REQUEST_LOCAL = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_LOCAL.toOctets())
.setSourceAddress(SRC_IPV6_MY.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_LOCAL = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV6_REQUEST_LOCAL);
static final Ip4Address DST_IPV4_SAME = Ip4Address.valueOf("10.0.4.254");
private static final IPv4 IPV4_REQUEST_SAME = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4_SAME.toInt())
.setSourceAddress(SRC_IPV41.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_SAME = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(LOCAL_MAC2)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV4_REQUEST_SAME);
static final Ip6Address DST_IPV6_SAME = Ip6Address.valueOf("2000::4ff");
private static final IPv6 IPV6_REQUEST_SAME = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_SAME.toOctets())
.setSourceAddress(SRC_IPV61.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_SAME = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(LOCAL_MAC2)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV6_REQUEST_SAME);
static final Ip6Address DST_IPV6_LL = Ip6Address.valueOf(
IPv6.getLinkLocalAddress(MacAddress.NONE.toBytes()));
static final Ip6Address SRC_IPV6_LL = Ip6Address.valueOf(
IPv6.getLinkLocalAddress(SRC_MAC_MY.toBytes()));
private static final IPv6 IPV6_REQUEST_LL = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_LL.toOctets())
.setSourceAddress(SRC_IPV6_LL.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_LL = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(MacAddress.NONE)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV6_REQUEST_LL);
static final Ip4Address DST_IPV4_LOOPBACK = Ip4Address.valueOf(REMOTE_LEAF_LB4);
private static final IPv4 IPV4_REQUEST_LOOPBACK = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4_LOOPBACK.toInt())
.setSourceAddress(SRC_IPV4_MY.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_LOOPBACK = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV4_REQUEST_LOOPBACK);
static final Ip6Address DST_IPV6_LOOPBACK = Ip6Address.valueOf(REMOTE_LEAF_LB6);
private static final IPv6 IPV6_REQUEST_LOOPBACK = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_LOOPBACK.toOctets())
.setSourceAddress(SRC_IPV6_MY.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_LOOPBACK = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(REMOTE_MAC)
.setSourceMACAddress(SRC_MAC_MY)
.setPayload(IPV6_REQUEST_LOOPBACK);
static final Ip4Address DST_IPV4_LOOPBACK_PAIR = Ip4Address.valueOf(LOCAL_LEAF1_LB4);
private static final IPv4 IPV4_REQUEST_LOOPBACK_PAIR = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4_LOOPBACK_PAIR.toInt())
.setSourceAddress(SRC_IPV41.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_LOOPBACK_PAIR = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(LOCAL_MAC1)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV4_REQUEST_LOOPBACK_PAIR);
static final Ip6Address DST_IPV6_LOOPBACK_PAIR = Ip6Address.valueOf(LOCAL_LEAF2_LB6);
private static final IPv6 IPV6_REQUEST_LOOPBACK_PAIR = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_LOOPBACK_PAIR.toOctets())
.setSourceAddress(SRC_IPV61.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_LOOPBACK_PAIR = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(LOCAL_MAC2)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV6_REQUEST_LOOPBACK_PAIR);
static final Ip4Address DST_IPV4_GATEWAY_PAIR = Ip4Address.valueOf("10.0.2.254");
private static final IPv4 IPV4_REQUEST_GATEWAY_PAIR = (IPv4) new IPv4()
.setDestinationAddress(DST_IPV4_GATEWAY_PAIR.toInt())
.setSourceAddress(SRC_IPV41.toInt())
.setTtl((byte) 64)
.setProtocol(PROTOCOL_ICMP)
.setPayload(ICMP_REQUEST);
static final Ethernet ETH_REQ_IPV4_GATEWAY_PAIR = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV4)
.setDestinationMACAddress(LOCAL_MAC1)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV4_REQUEST_GATEWAY_PAIR);
static final Ip6Address DST_IPV6_GATEWAY_PAIR = Ip6Address.valueOf("2000::2ff");
private static final IPv6 IPV6_REQUEST_GATEWAY_PAIR = (IPv6) new IPv6()
.setDestinationAddress(DST_IPV6_GATEWAY_PAIR.toOctets())
.setSourceAddress(SRC_IPV61.toOctets())
.setHopLimit((byte) 255)
.setNextHeader(IPv6.PROTOCOL_ICMP6)
.setPayload(ICMP6_REQUEST);
static final Ethernet ETH_REQ_IPV6_GATEWAY_PAIR = (Ethernet) new Ethernet()
.setEtherType(Ethernet.TYPE_IPV6)
.setDestinationMACAddress(LOCAL_MAC2)
.setSourceMACAddress(SRC_MAC)
.setPayload(IPV6_REQUEST_GATEWAY_PAIR);
// Resolved route
private static final ResolvedRoute IPV4_ROUTE = new ResolvedRoute(
new Route(STATIC, SRC_IPV4.toIpPrefix(), SRC_IPV4), MacAddress.NONE);
private static final ResolvedRoute IPV6_ROUTE = new ResolvedRoute(
new Route(STATIC, SRC_IPV6.toIpPrefix(), SRC_IPV6), MacAddress.NONE);
static final Map<IpPrefix, Set<ResolvedRoute>> ROUTE_STORE = ImmutableMap.of(SRC_IPV4.toIpPrefix(),
Sets.newHashSet(IPV4_ROUTE),
SRC_IPV6.toIpPrefix(),
Sets.newHashSet(IPV6_ROUTE));
}