Remove old config classes from routing bundle.
Change-Id: Ifc8ff03674c1cfb9e3cde86b9994b8362744840d
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpPeer.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpPeer.java
deleted file mode 100644
index e08177f..0000000
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpPeer.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * 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.routing.config;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
-import org.onlab.packet.IpAddress;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.NetTools;
-import org.onosproject.net.PortNumber;
-
-import java.util.Objects;
-
-/**
- * Configuration details for a BGP peer.
- */
-public class BgpPeer {
- private final ConnectPoint connectPoint;
- private final IpAddress ipAddress;
-
- /**
- * Creates a new BgpPeer.
- *
- * @param dpid the DPID of the switch the peer is attached at, as a String
- * @param port the port the peer is attached at
- * @param ipAddress the IP address of the peer as a String
- */
- public BgpPeer(@JsonProperty("attachmentDpid") String dpid,
- @JsonProperty("attachmentPort") long port,
- @JsonProperty("ipAddress") String ipAddress) {
- this.connectPoint = new ConnectPoint(
- DeviceId.deviceId(NetTools.dpidToUri(dpid)),
- PortNumber.portNumber(port));
- this.ipAddress = IpAddress.valueOf(ipAddress);
- }
-
- /**
- * Gets the connection point of the peer.
- *
- * @return the connection point
- */
- public ConnectPoint connectPoint() {
- return connectPoint;
- }
-
- /**
- * Gets the IP address of the peer.
- *
- * @return the IP address
- */
- public IpAddress ipAddress() {
- return ipAddress;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(connectPoint, ipAddress);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- }
-
- if (!(obj instanceof BgpPeer)) {
- return false;
- }
-
- BgpPeer that = (BgpPeer) obj;
- return Objects.equals(this.connectPoint, that.connectPoint)
- && Objects.equals(this.ipAddress, that.ipAddress);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("connectPoint", connectPoint)
- .add("ipAddress", ipAddress)
- .toString();
- }
-}
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpSpeaker.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpSpeaker.java
deleted file mode 100644
index 8b53880..0000000
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpSpeaker.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * 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.routing.config;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
-import org.onlab.packet.MacAddress;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.NetTools;
-import org.onosproject.net.PortNumber;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * Represents a BGP daemon in SDN network.
- * <p>
- * Each BGP speaker has a attachment point, which includes a switch DPID and a
- * switch port. Each BGP speaker has one MAC address and several IP addresses,
- * which are used to peer with BGP peers outside the SDN network. For each
- * peer outside the SDN network, we configure a different IP address to BGP
- * speaker inside the SDN network.
- * </p>
- * <p>
- * Each BGP speaker has a name, which is a unique identifying String that is
- * used to reference this speaker in the configuration.
- * </p>
- */
-public class BgpSpeaker {
- private final String name;
- private final ConnectPoint connectPoint;
- private final MacAddress macAddress;
- private List<InterfaceAddress> interfaceAddresses;
-
- /**
- * Class constructor used by the JSON library to create an object.
- *
- * @param name the name of the BGP speaker inside SDN network
- * @param attachmentDpid the DPID where the BGP speaker is attached to
- * @param attachmentPort the port where the BGP speaker is attached to
- * @param macAddress the MAC address of the BGP speaker
- */
- @JsonCreator
- public BgpSpeaker(@JsonProperty("name") String name,
- @JsonProperty("attachmentDpid") String attachmentDpid,
- @JsonProperty("attachmentPort") long attachmentPort,
- @JsonProperty("macAddress") String macAddress) {
-
- this.name = name;
- this.macAddress = MacAddress.valueOf(macAddress);
- this.connectPoint = new ConnectPoint(
- DeviceId.deviceId(NetTools.dpidToUri(attachmentDpid)),
- PortNumber.portNumber(attachmentPort));
- }
-
- /**
- * Sets the addresses we configured for the BGP speaker on all virtual
- * {@link Interface}s.
- *
- * @param interfaceAddresses a list of IP addresses of the BGP speaker
- * configured on all virtual interfaces
- */
- @JsonProperty("interfaceAddresses")
- public void setInterfaceAddresses(
- List<InterfaceAddress> interfaceAddresses) {
- this.interfaceAddresses = interfaceAddresses;
- }
-
- /**
- * Gets the BGP speaker name.
- *
- * @return the BGP speaker name
- */
- public String name() {
- return name;
- }
-
- /**
- * Gets the connect point where the BGP speaker is attached.
- *
- * @return the connect point
- */
- public ConnectPoint connectPoint() {
- return connectPoint;
- }
-
- /**
- * Gets the MAC address of the BGP speaker.
- *
- * @return the MAC address
- */
- public MacAddress macAddress() {
- return macAddress;
- }
-
- /**
- * Gets all IP addresses configured on all {@link Interface}s of the
- * BGP speaker.
- *
- * @return a list of IP addresses of the BGP speaker configured on all
- * virtual interfaces
- */
- public List<InterfaceAddress> interfaceAddresses() {
- return interfaceAddresses;
- }
-
- @Override
- public boolean equals(Object other) {
- if (!(other instanceof BgpSpeaker)) {
- return false;
- }
-
- BgpSpeaker otherBgpSpeaker = (BgpSpeaker) other;
-
- return name.equals(otherBgpSpeaker.name) &&
- connectPoint.equals(
- otherBgpSpeaker.connectPoint) &&
- macAddress.equals(otherBgpSpeaker.macAddress) &&
- interfaceAddresses.equals(otherBgpSpeaker.interfaceAddresses);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(name, connectPoint, macAddress,
- interfaceAddresses);
-
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("speakerName", name)
- .add("connectPoint", connectPoint)
- .add("macAddress", macAddress)
- .add("interfaceAddresses", interfaceAddresses)
- .toString();
- }
-}
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/Interface.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/Interface.java
deleted file mode 100644
index 347847a..0000000
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/Interface.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * 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.routing.config;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.collect.Sets;
-import org.onlab.packet.MacAddress;
-import org.onlab.packet.VlanId;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.host.InterfaceIpAddress;
-
-import java.util.Objects;
-import java.util.Set;
-
-/**
- * An Interface is a set of addresses that are logically mapped to a switch
- * port in the network.
- */
-public class Interface {
- private final ConnectPoint connectPoint;
- private final Set<InterfaceIpAddress> ipAddresses;
- private final MacAddress macAddress;
- private final VlanId vlan;
-
- /**
- * Creates an Interface based on a connection point, a set of interface
- * IP addresses, and a MAC address.
- *
- * @param connectPoint the connect point this interface is mapped to
- * @param ipAddresses the IP addresses for the interface
- * @param macAddress the MAC address of the interface
- * @param vlan VLAN identifier
- */
- public Interface(ConnectPoint connectPoint,
- Set<InterfaceIpAddress> ipAddresses,
- MacAddress macAddress, VlanId vlan) {
- this.connectPoint = connectPoint;
- this.ipAddresses = Sets.newHashSet(ipAddresses);
- this.macAddress = macAddress;
- this.vlan = vlan;
- }
-
- /**
- * Retrieves the connection point that this interface maps to.
- *
- * @return the connection point
- */
- public ConnectPoint connectPoint() {
- return connectPoint;
- }
-
- /**
- * Retrieves the set of IP addresses that are assigned to the interface.
- *
- * @return the set of interface IP addresses
- */
- public Set<InterfaceIpAddress> ipAddresses() {
- return ipAddresses;
- }
-
- /**
- * Retrieves the MAC address that is assigned to the interface.
- *
- * @return the MAC address
- */
- public MacAddress mac() {
- return macAddress;
- }
-
- /**
- * Retrieves the VLAN ID that is assigned to the interface.
- *
- * @return the VLAN ID
- */
- public VlanId vlan() {
- return vlan;
- }
-
- @Override
- public boolean equals(Object other) {
- if (!(other instanceof Interface)) {
- return false;
- }
-
- Interface otherInterface = (Interface) other;
-
- return connectPoint.equals(otherInterface.connectPoint) &&
- ipAddresses.equals(otherInterface.ipAddresses) &&
- macAddress.equals(otherInterface.macAddress) &&
- vlan.equals(otherInterface.vlan);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(connectPoint, ipAddresses, macAddress, vlan);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("connectPoint", connectPoint)
- .add("ipAddresses", ipAddresses)
- .add("macAddress", macAddress)
- .add("vlan", vlan)
- .toString();
- }
-}
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/InterfaceAddress.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/InterfaceAddress.java
deleted file mode 100644
index a210957..0000000
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/InterfaceAddress.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * 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.routing.config;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.MoreObjects;
-import org.onlab.packet.IpAddress;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.NetTools;
-import org.onosproject.net.PortNumber;
-
-import java.util.Objects;
-
-/**
- * Represents an address of a {@link BgpSpeaker} configured on an
- * {@link Interface}.
- * <p>
- * Each InterfaceAddress includes the interface name and an IP address.
- * </p>
- */
-public class InterfaceAddress {
- private final ConnectPoint connectPoint;
- private final IpAddress ipAddress;
-
- /**
- * Creates an InterfaceAddress object.
- *
- * @param dpid the DPID of the interface as a String
- * @param port the port of the interface
- * @param ipAddress the IP address of a {@link BgpSpeaker} configured on
- * the interface
- */
- public InterfaceAddress(@JsonProperty("interfaceDpid") String dpid,
- @JsonProperty("interfacePort") int port,
- @JsonProperty("ipAddress") String ipAddress) {
- this.connectPoint = new ConnectPoint(
- DeviceId.deviceId(NetTools.dpidToUri(dpid)),
- PortNumber.portNumber(port));
- this.ipAddress = IpAddress.valueOf(ipAddress);
- }
-
- /**
- * Gets the connection point of the peer.
- *
- * @return the connection point
- */
- public ConnectPoint connectPoint() {
- return connectPoint;
- }
-
- /**
- * Gets the IP address of a BGP speaker configured on an {@link Interface}.
- *
- * @return the IP address
- */
- public IpAddress ipAddress() {
- return ipAddress;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(connectPoint, ipAddress);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- }
-
- if (!(obj instanceof InterfaceAddress)) {
- return false;
- }
-
- InterfaceAddress that = (InterfaceAddress) obj;
- return Objects.equals(this.connectPoint, that.connectPoint)
- && Objects.equals(this.ipAddress, that.ipAddress);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("connectPoint", connectPoint)
- .add("ipAddress", ipAddress)
- .toString();
- }
-}
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java
deleted file mode 100644
index dd1ffe3..0000000
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/Configuration.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * 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.routing.config.impl;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import org.onlab.packet.MacAddress;
-import org.onosproject.routing.config.BgpPeer;
-import org.onosproject.routing.config.BgpSpeaker;
-import org.onosproject.routing.config.LocalIpPrefixEntry;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Contains the configuration data for SDN-IP that has been read from a
- * JSON-formatted configuration file.
- */
-public class Configuration {
- // We call the BGP routers in our SDN network the BGP speakers, and call
- // the BGP routers outside our SDN network the BGP peers.
- private List<BgpSpeaker> bgpSpeakers = Collections.emptyList();
- private List<BgpPeer> peers = Collections.emptyList();
- private MacAddress virtualGatewayMacAddress;
-
- // All IP prefixes from the configuration are local
- private List<LocalIpPrefixEntry> localIp4PrefixEntries =
- Collections.emptyList();
- private List<LocalIpPrefixEntry> localIp6PrefixEntries =
- Collections.emptyList();
-
- /**
- * Default constructor.
- */
- public Configuration() {
- }
-
- /**
- * Gets a list of bgpSpeakers in the system, represented by
- * {@link BgpSpeaker} objects.
- *
- * @return the list of BGP speakers
- */
- public List<BgpSpeaker> getBgpSpeakers() {
- return Collections.unmodifiableList(bgpSpeakers);
- }
-
- /**
- * Sets a list of bgpSpeakers in the system.
- *
- * @param bgpSpeakers the list of BGP speakers
- */
- @JsonProperty("bgpSpeakers")
- public void setBgpSpeakers(List<BgpSpeaker> bgpSpeakers) {
- this.bgpSpeakers = bgpSpeakers;
- }
-
- /**
- * Gets a list of BGP peers we are configured to peer with. Peers are
- * represented by {@link BgpPeer} objects.
- *
- * @return the list of BGP peers
- */
- public List<BgpPeer> getPeers() {
- return Collections.unmodifiableList(peers);
- }
-
- /**
- * Sets a list of BGP peers we configured to peer with.
- *
- * @param peers the list of BGP peers
- */
- @JsonProperty("bgpPeers")
- public void setPeers(List<BgpPeer> peers) {
- this.peers = peers;
- }
-
- /**
- * Gets the MAC address we configured for virtual gateway
- * in SDN network.
- *
- * @return the MAC address of virtual gateway
- */
- public MacAddress getVirtualGatewayMacAddress() {
- return virtualGatewayMacAddress;
- }
-
- /**
- * Sets the MAC address for virtual gateway in SDN network.
- *
- * @param virtualGatewayMacAddress the MAC address of virtual gateway
- */
- @JsonProperty("virtualGatewayMacAddress")
- public void setVirtualGatewayMacAddress(MacAddress virtualGatewayMacAddress) {
- this.virtualGatewayMacAddress = virtualGatewayMacAddress;
- }
-
- /**
- * Gets a list of local IPv4 prefix entries configured for local
- * SDN network.
- * <p>
- * IP prefix entries are represented by {@link LocalIpPrefixEntry}
- * objects.
- * </p>
- *
- * @return the list of local IPv4 prefix entries
- */
- public List<LocalIpPrefixEntry> getLocalIp4PrefixEntries() {
- return Collections.unmodifiableList(localIp4PrefixEntries);
- }
-
- /**
- * Sets a list of IPv4 prefix entries configured for local SDN network.
- *
- * @param ip4PrefixEntries the list of Ipv4 prefix entries
- */
- @JsonProperty("ip4LocalPrefixes")
- public void setLocalIp4PrefixEntries(List<LocalIpPrefixEntry> ip4PrefixEntries) {
- this.localIp4PrefixEntries = ip4PrefixEntries;
- }
-
- /**
- * Gets a list of IPv6 prefix entries configured for local SDN network.
- * <p>
- * IP prefix entries are represented by {@link LocalIpPrefixEntry}
- * objects.
- * </p>
- *
- * @return the list of IPv6 prefix entries
- */
- public List<LocalIpPrefixEntry> getLocalIp6PrefixEntries() {
- return Collections.unmodifiableList(localIp6PrefixEntries);
- }
-
- /**
- * Sets a list of IPv6 prefix entries configured for local SDN network.
- *
- * @param ip6PrefixEntries the list of Ipv6 prefix entries
- */
- @JsonProperty("ip6LocalPrefixes")
- public void setLocalIp6PrefixEntries(List<LocalIpPrefixEntry> ip6PrefixEntries) {
- this.localIp6PrefixEntries = ip6PrefixEntries;
- }
-
-}
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
index 31b16c6..f3533a5 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
@@ -58,7 +58,7 @@
/**
* Implementation of RoutingConfigurationService which reads routing
- * configuration from a file.
+ * configuration from the network configuration service.
*/
@Component(immediate = true)
@Service
diff --git a/apps/routing/src/test/java/org/onosproject/routing/impl/IntentSynchronizerTest.java b/apps/routing/src/test/java/org/onosproject/routing/impl/IntentSynchronizerTest.java
index 0172dc7..4b7110a 100644
--- a/apps/routing/src/test/java/org/onosproject/routing/impl/IntentSynchronizerTest.java
+++ b/apps/routing/src/test/java/org/onosproject/routing/impl/IntentSynchronizerTest.java
@@ -15,20 +15,14 @@
*/
package org.onosproject.routing.impl;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
import org.junit.Test;
-import org.onlab.junit.TestUtils;
-import org.onlab.junit.TestUtils.TestUtilsException;
import org.onlab.packet.Ethernet;
-import org.onlab.packet.Ip4Address;
import org.onlab.packet.Ip4Prefix;
import org.onlab.packet.IpAddress;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
-import org.onlab.packet.VlanId;
import org.onosproject.TestApplicationId;
import org.onosproject.cluster.ClusterServiceAdapter;
import org.onosproject.cluster.ControllerNode;
@@ -37,7 +31,6 @@
import org.onosproject.cluster.NodeId;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreServiceAdapter;
-import org.onosproject.incubator.net.intf.Interface;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
@@ -45,19 +38,15 @@
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
-import org.onosproject.net.host.InterfaceIpAddress;
import org.onosproject.net.intent.AbstractIntentTest;
import org.onosproject.net.intent.Intent;
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.IntentState;
-import org.onosproject.net.intent.IntentUtils;
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.MultiPointToSinglePointIntent;
-import org.onosproject.routing.RouteEntry;
import java.util.Collections;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutorService;
@@ -66,9 +55,6 @@
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
/**
* This class tests the intent synchronization function in the
@@ -95,7 +81,7 @@
PortNumber.portNumber(1));
private IntentSynchronizer intentSynchronizer;
- private final Set<Interface> interfaces = Sets.newHashSet();
+ private final Set<ConnectPoint> connectPoints = new HashSet<>();
private static final ApplicationId APPID =
TestApplicationId.create("intent-sync-test");
@@ -107,7 +93,7 @@
public void setUp() throws Exception {
super.setUp();
- setUpInterfaceService();
+ setUpConnectPoints();
intentService = createMock(IntentService.class);
@@ -115,131 +101,58 @@
intentSynchronizer.coreService = new TestCoreService();
intentSynchronizer.clusterService = new TestClusterService();
- intentSynchronizer.leadershipService = new TestLeadershipService();
+ intentSynchronizer.leadershipService = new LeadershipServiceAdapter();
intentSynchronizer.intentService = intentService;
intentSynchronizer.activate();
}
/**
- * Sets up InterfaceService.
+ * Sets up connect points.
*/
- private void setUpInterfaceService() {
- List<InterfaceIpAddress> interfaceIpAddresses1 = Lists.newArrayList();
- interfaceIpAddresses1.add(new InterfaceIpAddress(
- IpAddress.valueOf("192.168.10.101"),
- IpPrefix.valueOf("192.168.10.0/24")));
- Interface sw1Eth1 = new Interface(SW1_ETH1,
- interfaceIpAddresses1, MacAddress.valueOf("00:00:00:00:00:01"),
- VlanId.NONE);
- interfaces.add(sw1Eth1);
-
- List<InterfaceIpAddress> interfaceIpAddresses2 = Lists.newArrayList();
- interfaceIpAddresses2.add(
- new InterfaceIpAddress(IpAddress.valueOf("192.168.20.101"),
- IpPrefix.valueOf("192.168.20.0/24")));
- Interface sw2Eth1 = new Interface(SW2_ETH1,
- interfaceIpAddresses2, MacAddress.valueOf("00:00:00:00:00:02"),
- VlanId.NONE);
- interfaces.add(sw2Eth1);
-
- List<InterfaceIpAddress> interfaceIpAddresses3 = Lists.newArrayList();
- interfaceIpAddresses3.add(
- new InterfaceIpAddress(IpAddress.valueOf("192.168.30.101"),
- IpPrefix.valueOf("192.168.30.0/24")));
- Interface sw3Eth1 = new Interface(SW3_ETH1,
- interfaceIpAddresses3, MacAddress.valueOf("00:00:00:00:00:03"),
- VlanId.NONE);
- interfaces.add(sw3Eth1);
-
- InterfaceIpAddress interfaceIpAddress4 =
- new InterfaceIpAddress(IpAddress.valueOf("192.168.40.101"),
- IpPrefix.valueOf("192.168.40.0/24"));
- Interface sw4Eth1 = new Interface(SW4_ETH1,
- Lists.newArrayList(interfaceIpAddress4),
- MacAddress.valueOf("00:00:00:00:00:04"),
- VlanId.vlanId((short) 1));
-
- interfaces.add(sw4Eth1);
+ private void setUpConnectPoints() {
+ connectPoints.add(SW1_ETH1);
+ connectPoints.add(SW2_ETH1);
+ connectPoints.add(SW3_ETH1);
+ connectPoints.add(SW4_ETH1);
}
/**
* Tests the synchronization behavior of intent synchronizer. We set up
* a discrepancy between the intent service state and the intent
* synchronizer's state and ensure that this is reconciled correctly.
- *
- * @throws TestUtilsException
*/
@Test
- public void testIntentSync() throws TestUtilsException {
+ public void testIntentSync() {
- //
// Construct routes and intents.
// This test simulates the following cases during the master change
// time interval:
- // 1. RouteEntry1 did not change and the intent also did not change.
- // 2. RouteEntry2 was deleted, but the intent was not deleted.
- // 3. RouteEntry3 was newly added, and the intent was also submitted.
- // 4. RouteEntry4 was updated to RouteEntry4Update, and the intent was
+ // 1. intent1 did not change and the intent also did not change.
+ // 2. intent2 was deleted, but the intent was not deleted.
+ // 3. intent3 was newly added, and the intent was also submitted.
+ // 4. intent4 was updated to RouteEntry4Update, and the intent was
// also updated to a new one.
- // 5. RouteEntry5 did not change, but its intent id changed.
- // 6. RouteEntry6 was newly added, but the intent was not submitted.
- //
- RouteEntry routeEntry1 = new RouteEntry(
- Ip4Prefix.valueOf("1.1.1.0/24"),
- Ip4Address.valueOf("192.168.10.1"));
-
- RouteEntry routeEntry2 = new RouteEntry(
- Ip4Prefix.valueOf("2.2.2.0/24"),
- Ip4Address.valueOf("192.168.20.1"));
-
- RouteEntry routeEntry3 = new RouteEntry(
- Ip4Prefix.valueOf("3.3.3.0/24"),
- Ip4Address.valueOf("192.168.30.1"));
-
- RouteEntry routeEntry4 = new RouteEntry(
- Ip4Prefix.valueOf("4.4.4.0/24"),
- Ip4Address.valueOf("192.168.30.1"));
-
- RouteEntry routeEntry4Update = new RouteEntry(
- Ip4Prefix.valueOf("4.4.4.0/24"),
- Ip4Address.valueOf("192.168.20.1"));
-
- RouteEntry routeEntry5 = new RouteEntry(
- Ip4Prefix.valueOf("5.5.5.0/24"),
- Ip4Address.valueOf("192.168.10.1"));
-
- RouteEntry routeEntry6 = new RouteEntry(
- Ip4Prefix.valueOf("6.6.6.0/24"),
- Ip4Address.valueOf("192.168.10.1"));
-
- RouteEntry routeEntry7 = new RouteEntry(
- Ip4Prefix.valueOf("7.7.7.0/24"),
- Ip4Address.valueOf("192.168.10.1"));
+ // 5. intent5 did not change, but its intent id changed.
+ // 6. intent6 was newly added, but the intent was not submitted.
MultiPointToSinglePointIntent intent1 = intentBuilder(
- routeEntry1.prefix(), "00:00:00:00:00:01", SW1_ETH1);
+ Ip4Prefix.valueOf("1.1.1.0/24"), "00:00:00:00:00:01", SW1_ETH1);
MultiPointToSinglePointIntent intent2 = intentBuilder(
- routeEntry2.prefix(), "00:00:00:00:00:02", SW2_ETH1);
+ Ip4Prefix.valueOf("2.2.2.0/24"), "00:00:00:00:00:02", SW2_ETH1);
MultiPointToSinglePointIntent intent3 = intentBuilder(
- routeEntry3.prefix(), "00:00:00:00:00:03", SW3_ETH1);
+ Ip4Prefix.valueOf("3.3.3.0/24"), "00:00:00:00:00:03", SW3_ETH1);
MultiPointToSinglePointIntent intent4 = intentBuilder(
- routeEntry4.prefix(), "00:00:00:00:00:03", SW3_ETH1);
+ Ip4Prefix.valueOf("4.4.4.0/24"), "00:00:00:00:00:03", SW3_ETH1);
MultiPointToSinglePointIntent intent4Update = intentBuilder(
- routeEntry4Update.prefix(), "00:00:00:00:00:02", SW2_ETH1);
+ Ip4Prefix.valueOf("4.4.4.0/24"), "00:00:00:00:00:02", SW2_ETH1);
MultiPointToSinglePointIntent intent5 = intentBuilder(
- routeEntry5.prefix(), "00:00:00:00:00:01", SW1_ETH1);
+ Ip4Prefix.valueOf("5.5.5.0/24"), "00:00:00:00:00:01", SW1_ETH1);
MultiPointToSinglePointIntent intent7 = intentBuilder(
- routeEntry7.prefix(), "00:00:00:00:00:01", SW1_ETH1);
-
- // Compose a intent, which is equal to intent5 but the id is different.
- MultiPointToSinglePointIntent intent5New =
- staticIntentBuilder(intent5, routeEntry5, "00:00:00:00:00:01");
- assertThat(IntentUtils.intentsAreEqual(intent5, intent5New), is(true));
- assertFalse(intent5.equals(intent5New));
+ Ip4Prefix.valueOf("7.7.7.0/24"), "00:00:00:00:00:01", SW1_ETH1);
MultiPointToSinglePointIntent intent6 = intentBuilder(
- routeEntry6.prefix(), "00:00:00:00:00:01", SW1_ETH1);
+ Ip4Prefix.valueOf("6.6.6.0/24"), "00:00:00:00:00:01", SW1_ETH1);
// Set up expectation
Set<Intent> intents = new HashSet<>();
@@ -395,13 +308,9 @@
DefaultTrafficTreatment.builder();
treatmentBuilder.setEthDst(MacAddress.valueOf(nextHopMacAddress));
- Set<ConnectPoint> ingressPoints = new HashSet<>();
- for (Interface intf : interfaces) {
- if (!intf.connectPoint().equals(egressPoint)) {
- ConnectPoint srcPort = intf.connectPoint();
- ingressPoints.add(srcPort);
- }
- }
+ Set<ConnectPoint> ingressPoints = new HashSet<>(connectPoints);
+ ingressPoints.remove(egressPoint);
+
MultiPointToSinglePointIntent intent =
MultiPointToSinglePointIntent.builder()
.appId(APPID)
@@ -414,29 +323,6 @@
return intent;
}
- /**
- * A static MultiPointToSinglePointIntent builder, the returned intent is
- * equal to the input intent except that the id is different.
- *
- * @param intent the intent to be used for building a new intent
- * @param routeEntry the relative routeEntry of the intent
- * @return the newly constructed MultiPointToSinglePointIntent
- * @throws TestUtilsException
- */
- private MultiPointToSinglePointIntent staticIntentBuilder(
- MultiPointToSinglePointIntent intent, RouteEntry routeEntry,
- String nextHopMacAddress) throws TestUtilsException {
-
- // Use a different egress ConnectPoint with that in intent
- // to generate a different id
- MultiPointToSinglePointIntent intentNew = intentBuilder(
- routeEntry.prefix(), nextHopMacAddress, SW2_ETH1);
- TestUtils.setField(intentNew, "egressPoint", intent.egressPoint());
- TestUtils.setField(intentNew,
- "ingressPoints", intent.ingressPoints());
- return intentNew;
- }
-
private class TestIntentSynchronizer extends IntentSynchronizer {
@Override
protected ExecutorService createExecutor() {
@@ -457,8 +343,4 @@
return LOCAL_NODE;
}
}
-
- private class TestLeadershipService extends LeadershipServiceAdapter {
-
- }
}
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
index bf2ba88..1799155 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
@@ -18,7 +18,6 @@
import com.google.common.collect.Sets;
import org.junit.Before;
import org.junit.Test;
-import org.onlab.junit.TestUtils.TestUtilsException;
import org.onlab.packet.Ethernet;
import org.onlab.packet.IPv4;
import org.onlab.packet.IpAddress;
@@ -47,7 +46,6 @@
import org.onosproject.net.intent.PointToPointIntent;
import org.onosproject.routing.IntentSynchronizationService;
import org.onosproject.routing.config.BgpConfig;
-import org.onosproject.routing.config.BgpPeer;
import java.util.ArrayList;
import java.util.Collections;
@@ -82,7 +80,6 @@
private Set<BgpConfig.BgpSpeakerConfig> bgpSpeakers;
private Map<String, Interface> interfaces;
- private Map<IpAddress, BgpPeer> peers;
private BgpConfig bgpConfig;
@@ -135,7 +132,6 @@
// These will set expectations on routingConfig and interfaceService
bgpSpeakers = setUpBgpSpeakers();
interfaces = Collections.unmodifiableMap(setUpInterfaces());
- peers = setUpPeers();
initPeerConnectivity();
intentList = setUpIntentList();
@@ -280,39 +276,6 @@
}
/**
- * Sets up BGP daemon peers.
- *
- * @return configured BGP peers as a MAP from peer IP address to BgpPeer
- */
- private Map<IpAddress, BgpPeer> setUpPeers() {
-
- Map<IpAddress, BgpPeer> configuredPeers = new HashMap<>();
-
- String peerSw1Eth1 = "192.168.10.1";
- configuredPeers.put(IpAddress.valueOf(peerSw1Eth1),
- new BgpPeer(dpid1, 1, peerSw1Eth1));
-
- // Two BGP peers are connected to switch 2 port 1.
- String peer1Sw2Eth1 = "192.168.20.1";
- configuredPeers.put(IpAddress.valueOf(peer1Sw2Eth1),
- new BgpPeer(dpid2, 1, peer1Sw2Eth1));
-
- String peer2Sw2Eth1 = "192.168.30.1";
- configuredPeers.put(IpAddress.valueOf(peer2Sw2Eth1),
- new BgpPeer(dpid2, 1, peer2Sw2Eth1));
-
- String peer3Sw3Eth1 = "192.168.40.1";
- configuredPeers.put(IpAddress.valueOf(peer3Sw3Eth1),
- new BgpPeer(dpid3, 1, peer3Sw3Eth1));
-
- String peer4Sw3Eth1 = "192.168.50.1";
- configuredPeers.put(IpAddress.valueOf(peer4Sw3Eth1),
- new BgpPeer(dpid3, 1, peer4Sw3Eth1));
-
- return configuredPeers;
- }
-
- /**
* Sets up expected point to point intent list.
*
* @return point to point intent list
@@ -613,10 +576,8 @@
/**
* Initializes peer connectivity testing environment.
- *
- * @throws TestUtilsException if exceptions when using TestUtils
*/
- private void initPeerConnectivity() throws TestUtilsException {
+ private void initPeerConnectivity() {
expect(bgpConfig.bgpSpeakers()).andReturn(bgpSpeakers).anyTimes();
replay(bgpConfig);
expect(networkConfigService.getConfig(APPID, BgpConfig.class))
@@ -710,6 +671,7 @@
expect(bgpConfig.bgpSpeakers()).andReturn(Collections.emptySet()).anyTimes();
replay(bgpConfig);
+ // We don't expect any intents in this case
reset(intentSynchronizer);
replay(intentSynchronizer);
peerConnectivityManager.start();
@@ -722,10 +684,20 @@
*/
@Test
public void testNoPeerInterface() {
- String peerSw100Eth1 = "192.168.200.1";
- peers.put(IpAddress.valueOf(peerSw100Eth1),
- new BgpPeer("00:00:00:00:00:00:01:00", 1, peerSw100Eth1));
- testConnectionSetup();
+ IpAddress ip = IpAddress.valueOf("1.1.1.1");
+ bgpSpeakers.clear();
+ bgpSpeakers.add(new BgpConfig.BgpSpeakerConfig(Optional.of("foo"),
+ VlanId.NONE, s1Eth100, Collections.singleton(ip)));
+ reset(interfaceService);
+ interfaceService.addListener(anyObject(InterfaceListener.class));
+ expect(interfaceService.getMatchingInterface(ip)).andReturn(null).anyTimes();
+ replay(interfaceService);
+
+ // We don't expect any intents in this case
+ reset(intentSynchronizer);
+ replay(intentSynchronizer);
+ peerConnectivityManager.start();
+ verify(intentSynchronizer);
}
}