Bandwidth update to NetworkConfig
Change-Id: I26117bcbe57ec3b6c016ddaac1b9c075ff739199
diff --git a/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpTopologyProviderTest.java b/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpTopologyProviderTest.java
index 9e1992e..babe926 100644
--- a/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpTopologyProviderTest.java
+++ b/providers/bgp/topology/src/test/java/org/onosproject/provider/bgp/topology/impl/BgpTopologyProviderTest.java
@@ -12,22 +12,10 @@
*/
package org.onosproject.provider.bgp.topology.impl;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNot.not;
-import static org.onosproject.net.Link.State.ACTIVE;
-import static org.onosproject.net.MastershipRole.MASTER;
-import static org.hamcrest.Matchers.nullValue;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -35,7 +23,6 @@
import org.onlab.junit.TestUtils.TestUtilsException;
import org.onlab.packet.ChassisId;
import org.onlab.packet.Ip4Address;
-import org.onlab.util.Bandwidth;
import org.onosproject.bgp.controller.BgpLinkListener;
import org.onosproject.bgp.controller.BgpNodeListener;
import org.onosproject.bgpio.exceptions.BgpParseException;
@@ -49,13 +36,8 @@
import org.onosproject.bgpio.types.AutonomousSystemTlv;
import org.onosproject.bgpio.types.BgpValueType;
import org.onosproject.bgpio.types.IsIsNonPseudonode;
-import org.onosproject.bgpio.types.LinkStateAttributes;
-import org.onosproject.incubator.net.resource.label.LabelResourceAdminService;
-import org.onosproject.incubator.net.resource.label.LabelResourceId;
-import org.onosproject.incubator.net.resource.label.LabelResourcePool;
-import org.onosproject.mastership.MastershipServiceAdapter;
-import org.onosproject.net.link.LinkServiceAdapter;
import org.onosproject.bgpio.types.LinkLocalRemoteIdentifiersTlv;
+import org.onosproject.bgpio.types.LinkStateAttributes;
import org.onosproject.bgpio.types.RouteDistinguisher;
import org.onosproject.bgpio.types.attr.BgpAttrNodeFlagBitTlv;
import org.onosproject.bgpio.types.attr.BgpAttrNodeIsIsAreaId;
@@ -65,6 +47,10 @@
import org.onosproject.bgpio.types.attr.BgpLinkAttrTeDefaultMetric;
import org.onosproject.bgpio.util.Constants;
import org.onosproject.cluster.NodeId;
+import org.onosproject.incubator.net.resource.label.LabelResourceAdminService;
+import org.onosproject.incubator.net.resource.label.LabelResourceId;
+import org.onosproject.incubator.net.resource.label.LabelResourcePool;
+import org.onosproject.mastership.MastershipServiceAdapter;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DefaultAnnotations;
import org.onosproject.net.DefaultDevice;
@@ -72,12 +58,14 @@
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Link;
+import org.onosproject.net.LinkKey;
import org.onosproject.net.MastershipRole;
import org.onosproject.net.PortNumber;
import org.onosproject.net.config.Config;
import org.onosproject.net.config.ConfigApplyDelegate;
import org.onosproject.net.config.ConfigFactory;
import org.onosproject.net.config.NetworkConfigRegistryAdapter;
+import org.onosproject.net.config.basics.BandwidthCapacity;
import org.onosproject.net.device.DeviceDescription;
import org.onosproject.net.device.DeviceEvent;
import org.onosproject.net.device.DeviceListener;
@@ -91,16 +79,28 @@
import org.onosproject.net.link.LinkProvider;
import org.onosproject.net.link.LinkProviderRegistry;
import org.onosproject.net.link.LinkProviderService;
+import org.onosproject.net.link.LinkServiceAdapter;
import org.onosproject.net.provider.ProviderId;
-import org.onosproject.net.config.basics.BandwidthCapacity;
import org.onosproject.net.resource.Resource;
import org.onosproject.net.resource.ResourceAdminService;
import org.onosproject.net.resource.ResourceId;
+import org.onosproject.pcep.api.TeLinkConfig;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsNot.not;
+import static org.onosproject.net.Link.State.ACTIVE;
+import static org.onosproject.net.MastershipRole.MASTER;
/**
* Test for BGP topology provider.
@@ -201,6 +201,11 @@
private class MockNetConfigRegistryAdapter extends NetworkConfigRegistryAdapter {
private ConfigFactory cfgFactory;
private Map<ConnectPoint, BandwidthCapacity> classConfig = new HashMap<>();
+ private Map<LinkKey, TeLinkConfig> teLinkConfig = new HashMap<>();
+
+ public Map<LinkKey, TeLinkConfig> getTeLinkConfig() {
+ return teLinkConfig;
+ }
@Override
public void registerConfigFactory(ConfigFactory configFactory) {
@@ -223,6 +228,15 @@
ConfigApplyDelegate delegate = new InternalApplyDelegate();
devCap.init((ConnectPoint) subject, null, node, mapper, delegate);
return (C) devCap;
+ } else if (configClass == TeLinkConfig.class) {
+ TeLinkConfig linkConfig = new TeLinkConfig();
+ teLinkConfig.put((LinkKey) subject, linkConfig);
+
+ JsonNode node = new ObjectNode(new MockJsonNode());
+ ObjectMapper mapper = new ObjectMapper();
+ ConfigApplyDelegate delegate = new InternalApplyDelegate();
+ linkConfig.init((LinkKey) subject, null, node, mapper, delegate);
+ return (C) linkConfig;
}
return null;
@@ -230,13 +244,19 @@
@Override
public <S, C extends Config<S>> void removeConfig(S subject, Class<C> configClass) {
- classConfig.remove(subject);
+ if (configClass == BandwidthCapacity.class) {
+ classConfig.remove(subject);
+ } else if (configClass == TeLinkConfig.class) {
+ teLinkConfig.remove(subject);
+ }
}
@Override
public <S, C extends Config<S>> C getConfig(S subject, Class<C> configClass) {
if (configClass == BandwidthCapacity.class) {
return (C) classConfig.get(subject);
+ } else if (configClass == TeLinkConfig.class) {
+ return (C) teLinkConfig.get(subject);
}
return null;
}
@@ -387,7 +407,7 @@
/* Class implement device test registry */
private class TestLinkRegistry implements LinkProviderRegistry {
LinkProvider linkProvider;
- Set<Link> links = new HashSet<>();
+ LinkedList<Link> links = new LinkedList<>();
@Override
public LinkProviderService register(LinkProvider provider) {
@@ -790,10 +810,11 @@
for (BgpLinkListener l : controller.linkListener) {
l.addLink(linkNlri, details);
assertThat(linkRegistry.links.size(), is(1));
- assertThat(linkRegistry.links.iterator().next().annotations().value(BgpTopologyProvider.COST),
- is("10"));
- assertThat(linkRegistry.links.iterator().next().annotations().value(BgpTopologyProvider.TE_COST),
- is("20"));
+ TeLinkConfig config = networkConfigService.getTeLinkConfig().get(LinkKey.linkKey(linkRegistry.links
+ .getFirst().src(), linkRegistry.links.getLast().dst()));
+
+ assertThat(config.igpCost(), is(10));
+ assertThat(config.teCost(), is(20));
l.deleteLink(linkNlri);
assertThat(linkRegistry.links.size(), is(0));
@@ -1030,11 +1051,13 @@
for (BgpLinkListener l : controller.linkListener) {
l.addLink(linkNlri, details);
+ LinkKey linkKey = LinkKey.linkKey(linkRegistry.links.getFirst().src(),
+ linkRegistry.links.getLast().dst());
assertThat(linkRegistry.links.size(), is(1));
- assertThat(linkRegistry.links.iterator().next().annotations().value(BgpTopologyProvider.COST),
- is("10"));
- assertThat(linkRegistry.links.iterator().next().annotations().value(BgpTopologyProvider.TE_COST),
- is("20"));
+ TeLinkConfig config = networkConfigService.getTeLinkConfig().get(linkKey);
+
+ assertThat(config.igpCost(), is(10));
+ assertThat(config.teCost(), is(20));
ConnectPoint src = new ConnectPoint(
DeviceId.deviceId("l3:rd=0::routinguniverse=0:asn=10:isoid=1414.1414.0014"),
@@ -1042,18 +1065,13 @@
ConnectPoint dst = new ConnectPoint(
DeviceId.deviceId("l3:rd=0::routinguniverse=0:asn=10:isoid=1e1e.1e1e.001e"),
PortNumber.portNumber(4294967396L));
- BandwidthCapacity bandwidth = networkConfigService.getConfig(src, BandwidthCapacity.class);
- assertThat(bandwidth.capacity().bps(), is(70.0 * 1_000_000L));
- bandwidth = networkConfigService.getConfig(dst, BandwidthCapacity.class);
- assertThat(bandwidth.capacity(), is(Bandwidth.bps(70.0 * 1_000_000L)));
+ assertThat(config.maxResvBandwidth(), is(70.0));
l.deleteLink(linkNlri);
assertThat(linkRegistry.links.size(), is(0));
- bandwidth = networkConfigService.getConfig(src, BandwidthCapacity.class);
- assertThat(bandwidth, is(nullValue()));
- bandwidth = networkConfigService.getConfig(dst, BandwidthCapacity.class);
- assertThat(bandwidth, is(nullValue()));
+ config = networkConfigService.getTeLinkConfig().get(linkKey);
+ assertThat(config, is(nullValue()));
}
}
}