ONOS-5629: Enable encapsulation in SDN-IP
Change-Id: I4c3dbe877fd009302938b228fc9af40225d75329
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 b8e4e1b..c261f15 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
@@ -33,6 +33,7 @@
import org.onosproject.incubator.net.intf.InterfaceService;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.EncapsulationType;
import org.onosproject.net.PortNumber;
import org.onosproject.net.config.NetworkConfigListener;
import org.onosproject.net.config.NetworkConfigService;
@@ -47,6 +48,7 @@
import org.onosproject.net.intent.PointToPointIntent;
import org.onosproject.routing.IntentSynchronizationService;
import org.onosproject.routing.config.BgpConfig;
+import org.onosproject.sdnip.config.SdnIpConfig;
import java.util.ArrayList;
import java.util.Collections;
@@ -84,6 +86,8 @@
private BgpConfig bgpConfig;
+ private SdnIpConfig sdnIpConfig;
+
private List<PointToPointIntent> intentList;
private final DeviceId deviceId1 =
@@ -125,6 +129,7 @@
networkConfigService.addListener(anyObject(NetworkConfigListener.class));
expectLastCall().anyTimes();
bgpConfig = createMock(BgpConfig.class);
+ sdnIpConfig = createMock(SdnIpConfig.class);
// These will set expectations on routingConfig and interfaceService
bgpSpeakers = setUpBgpSpeakers();
@@ -168,7 +173,7 @@
/**
* Sets up logical interfaces, which emulate the configured interfaces
- * in SDN-IP application.
+ * in the SDN-IP application.
*
* @return configured interfaces as a map from interface name to Interface
*/
@@ -581,6 +586,12 @@
replay(bgpConfig);
expect(networkConfigService.getConfig(APPID, BgpConfig.class))
.andReturn(bgpConfig).anyTimes();
+
+ expect(sdnIpConfig.encap()).andReturn(EncapsulationType.NONE).anyTimes();
+ replay(sdnIpConfig);
+ expect(networkConfigService.getConfig(APPID, SdnIpConfig.class))
+ .andReturn(sdnIpConfig).anyTimes();
+
replay(networkConfigService);
replay(interfaceService);
@@ -670,6 +681,10 @@
expect(bgpConfig.bgpSpeakers()).andReturn(Collections.emptySet()).anyTimes();
replay(bgpConfig);
+ reset(sdnIpConfig);
+ expect(sdnIpConfig.encap()).andReturn(EncapsulationType.NONE).anyTimes();
+ replay(sdnIpConfig);
+
// We don't expect any intents in this case
reset(intentSynchronizer);
replay(intentSynchronizer);
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
index 31e1cde..9af9c76 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
@@ -16,6 +16,8 @@
package org.onosproject.sdnip;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.junit.Before;
@@ -41,8 +43,13 @@
import org.onosproject.incubator.net.routing.RouteServiceAdapter;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.EncapsulationType;
import org.onosproject.net.FilteredConnectPoint;
import org.onosproject.net.PortNumber;
+import org.onosproject.net.config.Config;
+import org.onosproject.net.config.ConfigApplyDelegate;
+import org.onosproject.net.config.NetworkConfigListener;
+import org.onosproject.net.config.NetworkConfigServiceAdapter;
import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
@@ -52,6 +59,9 @@
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.MultiPointToSinglePointIntent;
import org.onosproject.routing.IntentSynchronizationService;
+import org.onosproject.routing.RoutingService;
+import org.onosproject.routing.config.BgpConfig;
+import org.onosproject.sdnip.config.SdnIpConfig;
import java.util.Collections;
import java.util.List;
@@ -142,6 +152,7 @@
sdnipFib = new SdnIpFib();
sdnipFib.routeService = new TestRouteService();
sdnipFib.coreService = new TestCoreService();
+ sdnipFib.networkConfigService = new TestNetworkConfigService();
sdnipFib.interfaceService = interfaceService;
sdnipFib.intentSynchronizer = intentSynchronizer;
@@ -636,10 +647,41 @@
}
}
+ private class TestNetworkConfigService extends NetworkConfigServiceAdapter {
+ /**
+ * Returns an empty BGP network configuration to be able to correctly
+ * return the encapsulation parameter when needed.
+ *
+ * @return an empty BGP network configuration object
+ */
+ @Override
+ public <S, C extends Config<S>> C getConfig(S subject, Class<C> configClass) {
+ ApplicationId appId =
+ new TestApplicationId(SdnIp.SDN_IP_APP);
+
+ ObjectMapper mapper = new ObjectMapper();
+ ConfigApplyDelegate delegate = new MockCfgDelegate();
+ JsonNode emptyTree = new ObjectMapper().createObjectNode();
+
+ SdnIpConfig sdnIpConfig = new SdnIpConfig();
+
+ sdnIpConfig.init(appId, "sdnip-test", emptyTree, mapper, delegate);
+
+ return (C) sdnIpConfig;
+ }
+ }
+
private class InterfaceServiceDelegate extends InterfaceServiceAdapter {
@Override
public void addListener(InterfaceListener listener) {
SdnIpFibTest.this.interfaceListener = listener;
}
}
+
+ private class MockCfgDelegate implements ConfigApplyDelegate {
+ @Override
+ public void onApply(@SuppressWarnings("rawtypes") Config config) {
+ config.apply();
+ }
+ }
}