Doh! Forgot to ignite SimpleFlowRuleStore as a component. Pingall now works again!
Showing
8 changed files
with
281 additions
and
59 deletions
1 | +package org.onlab.onos.cluster; | ||
2 | + | ||
3 | +/** | ||
4 | + * Service responsible for determining the controller instance mastership of | ||
5 | + * a device in a clustered environment. This is the central authority for | ||
6 | + * determining mastership, but is not responsible for actually applying it | ||
7 | + * to the devices; this falls on the device service. | ||
8 | + */ | ||
9 | +public interface MastershipService { | ||
10 | + | ||
11 | + // InstanceId getMasterFor(DeviceId deviceId) | ||
12 | + // Set<DeviceId> getDevicesOf(InstanceId instanceId); | ||
13 | + | ||
14 | + // MastershipRole requestRoleFor(DeviceId deviceId); | ||
15 | + | ||
16 | + // addListener/removeLister(MastershipListener listener); | ||
17 | + // types of events would be MASTER_CHANGED (subject ==> deviceId; master ==> instanceId) | ||
18 | + | ||
19 | +} |
1 | +package org.onlab.onos.net; | ||
2 | + | ||
3 | +import org.onlab.onos.net.provider.ProviderId; | ||
4 | +import org.onlab.packet.IpPrefix; | ||
5 | + | ||
6 | +import java.util.ArrayList; | ||
7 | +import java.util.HashSet; | ||
8 | +import java.util.List; | ||
9 | + | ||
10 | +import static org.onlab.onos.net.DeviceId.deviceId; | ||
11 | +import static org.onlab.onos.net.HostId.hostId; | ||
12 | +import static org.onlab.onos.net.PortNumber.portNumber; | ||
13 | +import static org.onlab.packet.MacAddress.valueOf; | ||
14 | +import static org.onlab.packet.VlanId.vlanId; | ||
15 | + | ||
16 | +/** | ||
17 | + * Miscellaneous tools for testing core related to the network model. | ||
18 | + */ | ||
19 | +public final class NetTestTools { | ||
20 | + | ||
21 | + private NetTestTools() { | ||
22 | + } | ||
23 | + | ||
24 | + public static final ProviderId PID = new ProviderId("of", "foo"); | ||
25 | + | ||
26 | + // Short-hand for producing a device id from a string | ||
27 | + public static DeviceId did(String id) { | ||
28 | + return deviceId("of:" + id); | ||
29 | + } | ||
30 | + | ||
31 | + | ||
32 | + // Short-hand for producing a host id from a string | ||
33 | + public static HostId hid(String id) { | ||
34 | + return hostId("nic:" + id); | ||
35 | + } | ||
36 | + | ||
37 | + // Crates a new device with the specified id | ||
38 | + public static Device device(String id) { | ||
39 | + return new DefaultDevice(PID, did(id), Device.Type.SWITCH, | ||
40 | + "mfg", "1.0", "1.1", "1234"); | ||
41 | + } | ||
42 | + | ||
43 | + // Crates a new host with the specified id | ||
44 | + public static Host host(String id, String did) { | ||
45 | + return new DefaultHost(PID, hid(id), valueOf(1234), vlanId((short) 2), | ||
46 | + new HostLocation(did(did), portNumber(1), 321), | ||
47 | + new HashSet<IpPrefix>()); | ||
48 | + } | ||
49 | + | ||
50 | + // Short-hand for creating a link. | ||
51 | + public static Link link(String src, int sp, String dst, int dp) { | ||
52 | + return new DefaultLink(PID, new ConnectPoint(did(src), portNumber(sp)), | ||
53 | + new ConnectPoint(did(dst), portNumber(dp)), | ||
54 | + Link.Type.DIRECT); | ||
55 | + } | ||
56 | + | ||
57 | + // Creates a path that leads through the given devices. | ||
58 | + public static Path createPath(String... ids) { | ||
59 | + List<Link> links = new ArrayList<>(); | ||
60 | + for (int i = 0; i < ids.length - 1; i++) { | ||
61 | + links.add(link(ids[i], i, ids[i + 1], i)); | ||
62 | + } | ||
63 | + return new DefaultPath(PID, links, ids.length); | ||
64 | + } | ||
65 | + | ||
66 | +} |
... | @@ -24,14 +24,16 @@ | ... | @@ -24,14 +24,16 @@ |
24 | 24 | ||
25 | <dependency> | 25 | <dependency> |
26 | <groupId>org.onlab.onos</groupId> | 26 | <groupId>org.onlab.onos</groupId> |
27 | - <artifactId>onos-core-trivial</artifactId> | 27 | + <artifactId>onos-api</artifactId> |
28 | - <version>${project.version}</version> | 28 | + <classifier>tests</classifier> |
29 | <scope>test</scope> | 29 | <scope>test</scope> |
30 | </dependency> | 30 | </dependency> |
31 | 31 | ||
32 | <dependency> | 32 | <dependency> |
33 | - <groupId>org.apache.felix</groupId> | 33 | + <groupId>org.onlab.onos</groupId> |
34 | - <artifactId>org.apache.felix.scr.annotations</artifactId> | 34 | + <artifactId>onos-core-trivial</artifactId> |
35 | + <version>${project.version}</version> | ||
36 | + <scope>test</scope> | ||
35 | </dependency> | 37 | </dependency> |
36 | 38 | ||
37 | <!-- TODO Consider removing store dependency. | 39 | <!-- TODO Consider removing store dependency. |
... | @@ -42,6 +44,11 @@ | ... | @@ -42,6 +44,11 @@ |
42 | <version>${project.version}</version> | 44 | <version>${project.version}</version> |
43 | <scope>test</scope> | 45 | <scope>test</scope> |
44 | </dependency> | 46 | </dependency> |
47 | + | ||
48 | + <dependency> | ||
49 | + <groupId>org.apache.felix</groupId> | ||
50 | + <artifactId>org.apache.felix.scr.annotations</artifactId> | ||
51 | + </dependency> | ||
45 | </dependencies> | 52 | </dependencies> |
46 | 53 | ||
47 | <build> | 54 | <build> | ... | ... |
1 | package org.onlab.onos.net.topology.impl; | 1 | package org.onlab.onos.net.topology.impl; |
2 | 2 | ||
3 | +import com.google.common.collect.ImmutableSet; | ||
3 | import com.google.common.collect.Lists; | 4 | import com.google.common.collect.Lists; |
4 | import com.google.common.collect.Sets; | 5 | import com.google.common.collect.Sets; |
5 | import org.apache.felix.scr.annotations.Activate; | 6 | import org.apache.felix.scr.annotations.Activate; |
... | @@ -59,12 +60,12 @@ public class PathManager implements PathService { | ... | @@ -59,12 +60,12 @@ public class PathManager implements PathService { |
59 | protected HostService hostService; | 60 | protected HostService hostService; |
60 | 61 | ||
61 | @Activate | 62 | @Activate |
62 | - public void setUp() { | 63 | + public void activate() { |
63 | log.info("Started"); | 64 | log.info("Started"); |
64 | } | 65 | } |
65 | 66 | ||
66 | @Deactivate | 67 | @Deactivate |
67 | - public void tearDown() { | 68 | + public void deactivate() { |
68 | log.info("Stopped"); | 69 | log.info("Stopped"); |
69 | } | 70 | } |
70 | 71 | ||
... | @@ -82,6 +83,11 @@ public class PathManager implements PathService { | ... | @@ -82,6 +83,11 @@ public class PathManager implements PathService { |
82 | EdgeLink srcEdge = getEdgeLink(src, true); | 83 | EdgeLink srcEdge = getEdgeLink(src, true); |
83 | EdgeLink dstEdge = getEdgeLink(dst, false); | 84 | EdgeLink dstEdge = getEdgeLink(dst, false); |
84 | 85 | ||
86 | + // If either edge is null, bail with no paths. | ||
87 | + if (srcEdge == null || dstEdge == null) { | ||
88 | + return ImmutableSet.of(); | ||
89 | + } | ||
90 | + | ||
85 | DeviceId srcDevice = srcEdge != NOT_HOST ? srcEdge.dst().deviceId() : (DeviceId) src; | 91 | DeviceId srcDevice = srcEdge != NOT_HOST ? srcEdge.dst().deviceId() : (DeviceId) src; |
86 | DeviceId dstDevice = dstEdge != NOT_HOST ? dstEdge.src().deviceId() : (DeviceId) dst; | 92 | DeviceId dstDevice = dstEdge != NOT_HOST ? dstEdge.src().deviceId() : (DeviceId) dst; |
87 | 93 | ||
... | @@ -117,28 +123,14 @@ public class PathManager implements PathService { | ... | @@ -117,28 +123,14 @@ public class PathManager implements PathService { |
117 | return NOT_HOST; | 123 | return NOT_HOST; |
118 | } | 124 | } |
119 | 125 | ||
120 | - // Produces a set of direct edge-to-edge paths. | 126 | + // Produces a set of edge-to-edge paths using the set of infrastructure |
127 | + // paths and the given edge links. | ||
121 | private Set<Path> edgeToEdgePaths(EdgeLink srcLink, EdgeLink dstLink) { | 128 | private Set<Path> edgeToEdgePaths(EdgeLink srcLink, EdgeLink dstLink) { |
122 | Set<Path> endToEndPaths = Sets.newHashSetWithExpectedSize(1); | 129 | Set<Path> endToEndPaths = Sets.newHashSetWithExpectedSize(1); |
123 | - if (srcLink != NOT_HOST || dstLink != NOT_HOST) { | 130 | + endToEndPaths.add(edgeToEdgePath(srcLink, dstLink, null)); |
124 | - endToEndPaths.add(edgeToEdgePath(srcLink, dstLink)); | ||
125 | - } | ||
126 | return endToEndPaths; | 131 | return endToEndPaths; |
127 | } | 132 | } |
128 | 133 | ||
129 | - // Produces a direct edge-to-edge path. | ||
130 | - private Path edgeToEdgePath(EdgeLink srcLink, EdgeLink dstLink) { | ||
131 | - List<Link> links = Lists.newArrayListWithCapacity(2); | ||
132 | - // Add source and destination edge links only if they are real. | ||
133 | - if (srcLink != NOT_HOST) { | ||
134 | - links.add(srcLink); | ||
135 | - } | ||
136 | - if (dstLink != NOT_HOST) { | ||
137 | - links.add(dstLink); | ||
138 | - } | ||
139 | - return new DefaultPath(PID, links, 2); | ||
140 | - } | ||
141 | - | ||
142 | // Produces a set of edge-to-edge paths using the set of infrastructure | 134 | // Produces a set of edge-to-edge paths using the set of infrastructure |
143 | // paths and the given edge links. | 135 | // paths and the given edge links. |
144 | private Set<Path> edgeToEdgePaths(EdgeLink srcLink, EdgeLink dstLink, Set<Path> paths) { | 136 | private Set<Path> edgeToEdgePaths(EdgeLink srcLink, EdgeLink dstLink, Set<Path> paths) { |
... | @@ -149,14 +141,21 @@ public class PathManager implements PathService { | ... | @@ -149,14 +141,21 @@ public class PathManager implements PathService { |
149 | return endToEndPaths; | 141 | return endToEndPaths; |
150 | } | 142 | } |
151 | 143 | ||
152 | - // Produces an edge-to-edge path using the specified infrastructure path | 144 | + // Produces a direct edge-to-edge path. |
153 | - // and edge links. | ||
154 | private Path edgeToEdgePath(EdgeLink srcLink, EdgeLink dstLink, Path path) { | 145 | private Path edgeToEdgePath(EdgeLink srcLink, EdgeLink dstLink, Path path) { |
155 | - List<Link> links = Lists.newArrayListWithCapacity(path.links().size() + 2); | 146 | + List<Link> links = Lists.newArrayListWithCapacity(2); |
147 | + // Add source and destination edge links only if they are real and | ||
148 | + // add the infrastructure path only if it is not null. | ||
149 | + if (srcLink != NOT_HOST) { | ||
156 | links.add(srcLink); | 150 | links.add(srcLink); |
151 | + } | ||
152 | + if (path != null) { | ||
157 | links.addAll(path.links()); | 153 | links.addAll(path.links()); |
154 | + } | ||
155 | + if (dstLink != NOT_HOST) { | ||
158 | links.add(dstLink); | 156 | links.add(dstLink); |
159 | - return new DefaultPath(path.providerId(), links, path.cost() + 2); | 157 | + } |
158 | + return new DefaultPath(PID, links, 2); | ||
160 | } | 159 | } |
161 | 160 | ||
162 | // Special value for edge link to represent that this is really not an | 161 | // Special value for edge link to represent that this is really not an | ... | ... |
... | @@ -25,6 +25,8 @@ import java.util.Set; | ... | @@ -25,6 +25,8 @@ import java.util.Set; |
25 | import static org.junit.Assert.assertEquals; | 25 | import static org.junit.Assert.assertEquals; |
26 | import static org.junit.Assert.assertNotNull; | 26 | import static org.junit.Assert.assertNotNull; |
27 | import static org.onlab.junit.TestTools.assertAfter; | 27 | import static org.onlab.junit.TestTools.assertAfter; |
28 | +import static org.onlab.onos.net.NetTestTools.device; | ||
29 | +import static org.onlab.onos.net.NetTestTools.link; | ||
28 | import static org.onlab.onos.net.device.DeviceEvent.Type.DEVICE_ADDED; | 30 | import static org.onlab.onos.net.device.DeviceEvent.Type.DEVICE_ADDED; |
29 | import static org.onlab.onos.net.link.LinkEvent.Type.LINK_ADDED; | 31 | import static org.onlab.onos.net.link.LinkEvent.Type.LINK_ADDED; |
30 | 32 | ||
... | @@ -79,8 +81,8 @@ public class DefaultTopologyProviderTest { | ... | @@ -79,8 +81,8 @@ public class DefaultTopologyProviderTest { |
79 | @Override | 81 | @Override |
80 | public void run() { | 82 | public void run() { |
81 | validateSubmission(); | 83 | validateSubmission(); |
82 | - deviceService.post(new DeviceEvent(DEVICE_ADDED, TopologyManagerTest.device("z"), null)); | 84 | + deviceService.post(new DeviceEvent(DEVICE_ADDED, device("z"), null)); |
83 | - linkService.post(new LinkEvent(LINK_ADDED, TopologyManagerTest.link("z", 1, "a", 4))); | 85 | + linkService.post(new LinkEvent(LINK_ADDED, link("z", 1, "a", 4))); |
84 | validateSubmission(); | 86 | validateSubmission(); |
85 | } | 87 | } |
86 | }); | 88 | }); |
... | @@ -128,9 +130,9 @@ public class DefaultTopologyProviderTest { | ... | @@ -128,9 +130,9 @@ public class DefaultTopologyProviderTest { |
128 | 130 | ||
129 | @Override | 131 | @Override |
130 | public Iterable<Device> getDevices() { | 132 | public Iterable<Device> getDevices() { |
131 | - return ImmutableSet.of(TopologyManagerTest.device("a"), TopologyManagerTest.device("b"), | 133 | + return ImmutableSet.of(device("a"), device("b"), |
132 | - TopologyManagerTest.device("c"), TopologyManagerTest.device("d"), | 134 | + device("c"), device("d"), |
133 | - TopologyManagerTest.device("e"), TopologyManagerTest.device("f")); | 135 | + device("e"), device("f")); |
134 | } | 136 | } |
135 | 137 | ||
136 | void post(DeviceEvent event) { | 138 | void post(DeviceEvent event) { |
... | @@ -146,11 +148,11 @@ public class DefaultTopologyProviderTest { | ... | @@ -146,11 +148,11 @@ public class DefaultTopologyProviderTest { |
146 | 148 | ||
147 | @Override | 149 | @Override |
148 | public Iterable<Link> getLinks() { | 150 | public Iterable<Link> getLinks() { |
149 | - return ImmutableSet.of(TopologyManagerTest.link("a", 1, "b", 1), TopologyManagerTest.link("b", 1, "a", 1), | 151 | + return ImmutableSet.of(link("a", 1, "b", 1), link("b", 1, "a", 1), |
150 | - TopologyManagerTest.link("b", 2, "c", 1), TopologyManagerTest.link("c", 1, "b", 2), | 152 | + link("b", 2, "c", 1), link("c", 1, "b", 2), |
151 | - TopologyManagerTest.link("c", 2, "d", 1), TopologyManagerTest.link("d", 1, "c", 2), | 153 | + link("c", 2, "d", 1), link("d", 1, "c", 2), |
152 | - TopologyManagerTest.link("d", 2, "a", 2), TopologyManagerTest.link("a", 2, "d", 2), | 154 | + link("d", 2, "a", 2), link("a", 2, "d", 2), |
153 | - TopologyManagerTest.link("e", 1, "f", 1), TopologyManagerTest.link("f", 1, "e", 1)); | 155 | + link("e", 1, "f", 1), link("f", 1, "e", 1)); |
154 | } | 156 | } |
155 | 157 | ||
156 | void post(LinkEvent event) { | 158 | void post(LinkEvent event) { | ... | ... |
1 | +package org.onlab.onos.net.topology.impl; | ||
2 | + | ||
3 | +import org.junit.After; | ||
4 | +import org.junit.Before; | ||
5 | +import org.junit.Test; | ||
6 | +import org.onlab.onos.net.DeviceId; | ||
7 | +import org.onlab.onos.net.ElementId; | ||
8 | +import org.onlab.onos.net.Host; | ||
9 | +import org.onlab.onos.net.HostId; | ||
10 | +import org.onlab.onos.net.Path; | ||
11 | +import org.onlab.onos.net.host.HostService; | ||
12 | +import org.onlab.onos.net.host.HostServiceAdapter; | ||
13 | +import org.onlab.onos.net.provider.ProviderId; | ||
14 | +import org.onlab.onos.net.topology.LinkWeight; | ||
15 | +import org.onlab.onos.net.topology.PathService; | ||
16 | +import org.onlab.onos.net.topology.Topology; | ||
17 | +import org.onlab.onos.net.topology.TopologyService; | ||
18 | +import org.onlab.onos.net.topology.TopologyServiceAdapter; | ||
19 | + | ||
20 | +import java.util.HashMap; | ||
21 | +import java.util.HashSet; | ||
22 | +import java.util.Map; | ||
23 | +import java.util.Set; | ||
24 | + | ||
25 | +import static org.junit.Assert.assertEquals; | ||
26 | +import static org.junit.Assert.assertTrue; | ||
27 | +import static org.onlab.onos.net.NetTestTools.*; | ||
28 | + | ||
29 | +/** | ||
30 | + * Test of the path selection subsystem. | ||
31 | + */ | ||
32 | +public class PathManagerTest { | ||
33 | + | ||
34 | + private static final ProviderId PID = new ProviderId("of", "foo"); | ||
35 | + | ||
36 | + private PathManager mgr; | ||
37 | + private PathService service; | ||
38 | + | ||
39 | + private FakeTopoMgr fakeTopoMgr = new FakeTopoMgr(); | ||
40 | + private FakeHostMgr fakeHostMgr = new FakeHostMgr(); | ||
41 | + | ||
42 | + @Before | ||
43 | + public void setUp() { | ||
44 | + mgr = new PathManager(); | ||
45 | + service = mgr; | ||
46 | + mgr.topologyService = fakeTopoMgr; | ||
47 | + mgr.hostService = fakeHostMgr; | ||
48 | + mgr.activate(); | ||
49 | + } | ||
50 | + | ||
51 | + @After | ||
52 | + public void tearDown() { | ||
53 | + mgr.deactivate(); | ||
54 | + } | ||
55 | + | ||
56 | + @Test | ||
57 | + public void infraToInfra() { | ||
58 | + DeviceId src = did("src"); | ||
59 | + DeviceId dst = did("dst"); | ||
60 | + fakeTopoMgr.paths.add(createPath("src", "middle", "dst")); | ||
61 | + Set<Path> paths = service.getPaths(src, dst); | ||
62 | + validatePaths(paths, 1, 2, src, dst); | ||
63 | + } | ||
64 | + | ||
65 | + @Test | ||
66 | + public void infraToEdge() { | ||
67 | + DeviceId src = did("src"); | ||
68 | + HostId dst = hid("dst"); | ||
69 | + fakeTopoMgr.paths.add(createPath("src", "middle", "edge")); | ||
70 | + fakeHostMgr.hosts.put(dst, host("dst", "edge")); | ||
71 | + Set<Path> paths = service.getPaths(src, dst); | ||
72 | + validatePaths(paths, 1, 3, src, dst); | ||
73 | + } | ||
74 | + | ||
75 | + @Test | ||
76 | + public void edgeToInfra() { | ||
77 | + HostId src = hid("src"); | ||
78 | + DeviceId dst = did("dst"); | ||
79 | + fakeTopoMgr.paths.add(createPath("edge", "middle", "dst")); | ||
80 | + fakeHostMgr.hosts.put(src, host("src", "edge")); | ||
81 | + Set<Path> paths = service.getPaths(src, dst); | ||
82 | + validatePaths(paths, 1, 3, src, dst); | ||
83 | + } | ||
84 | + | ||
85 | + @Test | ||
86 | + public void edgeToEdge() { | ||
87 | + HostId src = hid("src"); | ||
88 | + HostId dst = hid("dst"); | ||
89 | + fakeTopoMgr.paths.add(createPath("srcEdge", "middle", "dstEdge")); | ||
90 | + fakeHostMgr.hosts.put(src, host("src", "srcEdge")); | ||
91 | + fakeHostMgr.hosts.put(dst, host("dst", "dstEdge")); | ||
92 | + Set<Path> paths = service.getPaths(src, dst); | ||
93 | + validatePaths(paths, 1, 4, src, dst); | ||
94 | + } | ||
95 | + | ||
96 | + @Test | ||
97 | + public void edgeToEdgeDirect() { | ||
98 | + HostId src = hid("src"); | ||
99 | + HostId dst = hid("dst"); | ||
100 | + fakeHostMgr.hosts.put(src, host("src", "edge")); | ||
101 | + fakeHostMgr.hosts.put(dst, host("dst", "edge")); | ||
102 | + Set<Path> paths = service.getPaths(src, dst); | ||
103 | + validatePaths(paths, 1, 2, src, dst); | ||
104 | + } | ||
105 | + | ||
106 | + @Test | ||
107 | + public void noEdge() { | ||
108 | + Set<Path> paths = service.getPaths(hid("src"), hid("dst")); | ||
109 | + assertTrue("there should be no paths", paths.isEmpty()); | ||
110 | + } | ||
111 | + | ||
112 | + // Makes sure the set of paths meets basic expectations. | ||
113 | + private void validatePaths(Set<Path> paths, int count, int length, | ||
114 | + ElementId src, ElementId dst) { | ||
115 | + assertEquals("incorrect path count", count, paths.size()); | ||
116 | + for (Path path : paths) { | ||
117 | + assertEquals("incorrect length", length, path.links().size()); | ||
118 | + assertEquals("incorrect source", src, path.src().elementId()); | ||
119 | + assertEquals("incorrect destination", dst, path.dst().elementId()); | ||
120 | + } | ||
121 | + } | ||
122 | + | ||
123 | + // Fake entity to give out paths. | ||
124 | + private class FakeTopoMgr extends TopologyServiceAdapter implements TopologyService { | ||
125 | + Set<Path> paths = new HashSet<>(); | ||
126 | + | ||
127 | + @Override | ||
128 | + public Set<Path> getPaths(Topology topology, DeviceId src, DeviceId dst) { | ||
129 | + return paths; | ||
130 | + } | ||
131 | + | ||
132 | + @Override | ||
133 | + public Set<Path> getPaths(Topology topology, DeviceId src, DeviceId dst, LinkWeight weight) { | ||
134 | + return paths; | ||
135 | + } | ||
136 | + } | ||
137 | + | ||
138 | + // Fake entity to give out hosts. | ||
139 | + private class FakeHostMgr extends HostServiceAdapter implements HostService { | ||
140 | + private Map<HostId, Host> hosts = new HashMap<>(); | ||
141 | + | ||
142 | + @Override | ||
143 | + public Host getHost(HostId hostId) { | ||
144 | + return hosts.get(hostId); | ||
145 | + } | ||
146 | + } | ||
147 | + | ||
148 | +} |
... | @@ -6,10 +6,7 @@ import org.junit.Test; | ... | @@ -6,10 +6,7 @@ import org.junit.Test; |
6 | import org.onlab.onos.event.Event; | 6 | import org.onlab.onos.event.Event; |
7 | import org.onlab.onos.event.impl.TestEventDispatcher; | 7 | import org.onlab.onos.event.impl.TestEventDispatcher; |
8 | import org.onlab.onos.net.ConnectPoint; | 8 | import org.onlab.onos.net.ConnectPoint; |
9 | -import org.onlab.onos.net.DefaultDevice; | ||
10 | -import org.onlab.onos.net.DefaultLink; | ||
11 | import org.onlab.onos.net.Device; | 9 | import org.onlab.onos.net.Device; |
12 | -import org.onlab.onos.net.DeviceId; | ||
13 | import org.onlab.onos.net.Link; | 10 | import org.onlab.onos.net.Link; |
14 | import org.onlab.onos.net.Path; | 11 | import org.onlab.onos.net.Path; |
15 | import org.onlab.onos.net.provider.AbstractProvider; | 12 | import org.onlab.onos.net.provider.AbstractProvider; |
... | @@ -35,7 +32,7 @@ import java.util.Set; | ... | @@ -35,7 +32,7 @@ import java.util.Set; |
35 | 32 | ||
36 | import static com.google.common.collect.ImmutableSet.of; | 33 | import static com.google.common.collect.ImmutableSet.of; |
37 | import static org.junit.Assert.*; | 34 | import static org.junit.Assert.*; |
38 | -import static org.onlab.onos.net.DeviceId.deviceId; | 35 | +import static org.onlab.onos.net.NetTestTools.*; |
39 | import static org.onlab.onos.net.PortNumber.portNumber; | 36 | import static org.onlab.onos.net.PortNumber.portNumber; |
40 | import static org.onlab.onos.net.topology.ClusterId.clusterId; | 37 | import static org.onlab.onos.net.topology.ClusterId.clusterId; |
41 | import static org.onlab.onos.net.topology.TopologyEvent.Type.TOPOLOGY_CHANGED; | 38 | import static org.onlab.onos.net.topology.TopologyEvent.Type.TOPOLOGY_CHANGED; |
... | @@ -184,24 +181,6 @@ public class TopologyManagerTest { | ... | @@ -184,24 +181,6 @@ public class TopologyManagerTest { |
184 | assertEquals("wrong path cost", 6.6, path.cost(), 0.01); | 181 | assertEquals("wrong path cost", 6.6, path.cost(), 0.01); |
185 | } | 182 | } |
186 | 183 | ||
187 | - // Short-hand for creating a link. | ||
188 | - public static Link link(String src, int sp, String dst, int dp) { | ||
189 | - return new DefaultLink(PID, new ConnectPoint(did(src), portNumber(sp)), | ||
190 | - new ConnectPoint(did(dst), portNumber(dp)), | ||
191 | - Link.Type.DIRECT); | ||
192 | - } | ||
193 | - | ||
194 | - // Crates a new device with the specified id | ||
195 | - public static Device device(String id) { | ||
196 | - return new DefaultDevice(PID, did(id), Device.Type.SWITCH, | ||
197 | - "mfg", "1.0", "1.1", "1234"); | ||
198 | - } | ||
199 | - | ||
200 | - // Short-hand for producing a device id from a string | ||
201 | - public static DeviceId did(String id) { | ||
202 | - return deviceId("of:" + id); | ||
203 | - } | ||
204 | - | ||
205 | protected void validateEvents(Enum... types) { | 184 | protected void validateEvents(Enum... types) { |
206 | int i = 0; | 185 | int i = 0; |
207 | assertEquals("wrong events received", types.length, listener.events.size()); | 186 | assertEquals("wrong events received", types.length, listener.events.size()); | ... | ... |
... | @@ -8,6 +8,8 @@ | ... | @@ -8,6 +8,8 @@ |
8 | <bundle>mvn:commons-lang/commons-lang/2.6</bundle> | 8 | <bundle>mvn:commons-lang/commons-lang/2.6</bundle> |
9 | <bundle>mvn:com.google.guava/guava/18.0</bundle> | 9 | <bundle>mvn:com.google.guava/guava/18.0</bundle> |
10 | <bundle>mvn:io.netty/netty/3.9.2.Final</bundle> | 10 | <bundle>mvn:io.netty/netty/3.9.2.Final</bundle> |
11 | + <bundle>mvn:com.esotericsoftware.kryo/kryo/2.24.0</bundle> | ||
12 | + <bundle>mvn:com.esotericsoftware.minlog/minlog/1.3</bundle> | ||
11 | </feature> | 13 | </feature> |
12 | 14 | ||
13 | <feature name="onos-thirdparty-web" version="1.0.0" | 15 | <feature name="onos-thirdparty-web" version="1.0.0" | ... | ... |
-
Please register or login to post a comment