blob: ec0d54f3f7f1ae49d0b12a164b7c74e38a96585f [file] [log] [blame]
Toshio Koideebdbb622014-02-12 20:28:38 -08001package net.onrc.onos.intent;
2
3import net.onrc.onos.ofcontroller.networkgraph.AbstractNetworkGraph;
4import net.onrc.onos.ofcontroller.networkgraph.Link;
5import net.onrc.onos.ofcontroller.networkgraph.LinkImpl;
6import net.onrc.onos.ofcontroller.networkgraph.Switch;
7import net.onrc.onos.ofcontroller.networkgraph.SwitchImpl;
8
9public class MockNetworkGraph extends AbstractNetworkGraph {
10 public Switch addSwitch(Long switchId) {
11 SwitchImpl sw = new SwitchImpl(this, switchId);
12 switches.put(sw.getDpid(), sw);
13 return sw;
14
15 }
16
17 public Link addLink(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) {
18 return new LinkImpl(
19 this,
20 getSwitch(srcDpid).getPort(srcPortNo),
21 getSwitch(dstDpid).getPort(dstPortNo));
22 }
23
24 public Link[] addBidirectionalLinks(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) {
25 Link[] links = new Link[2];
26 links[0] = addLink(srcDpid, srcPortNo, dstDpid, dstPortNo);
27 links[1] = addLink(dstDpid, dstPortNo, srcDpid, srcPortNo);
28
29 return links;
30 }
31
32 public void createSampleTopology() {
33 // add 10 switches (24 ports switch)
34 for (Long dpid=1L; dpid<10L; dpid++) {
35 SwitchImpl sw = (SwitchImpl) addSwitch(dpid);
36 for (Long j=1L; j<=24L; j++) {
37 sw.addPort(j);
38 }
39 }
40
41 // add loop path
42 addBidirectionalLinks(1L, 1L, 2L, 2L);
43 addBidirectionalLinks(2L, 1L, 3L, 2L);
44 addBidirectionalLinks(3L, 1L, 4L, 2L);
45 addBidirectionalLinks(4L, 1L, 5L, 2L);
46 addBidirectionalLinks(5L, 1L, 6L, 2L);
47 addBidirectionalLinks(6L, 1L, 7L, 2L);
48 addBidirectionalLinks(7L, 1L, 8L, 2L);
49 addBidirectionalLinks(8L, 1L, 9L, 2L);
50 addBidirectionalLinks(9L, 1L, 1L, 2L);
51
52 // add other links
53 addBidirectionalLinks(1L, 3L, 5L, 3L);
54 addBidirectionalLinks(2L, 4L, 5L, 4L);
55 addBidirectionalLinks(2L, 5L, 7L, 5L);
56 addBidirectionalLinks(3L, 6L, 7L, 6L);
57 addBidirectionalLinks(3L, 7L, 8L, 7L);
58 addBidirectionalLinks(3L, 8L, 9L, 8L);
59 addBidirectionalLinks(4L, 9l, 9L, 9L);
60
61 // set capacity of all links to 1000Mbps
62 for (Link link: getLinks()) {
63 ((LinkImpl)link).setCapacity(1000.0);
64 }
65 }
66}