| package net.onrc.onos.intent; |
| |
| import net.onrc.onos.ofcontroller.networkgraph.AbstractNetworkGraph; |
| import net.onrc.onos.ofcontroller.networkgraph.Link; |
| import net.onrc.onos.ofcontroller.networkgraph.LinkImpl; |
| import net.onrc.onos.ofcontroller.networkgraph.Switch; |
| import net.onrc.onos.ofcontroller.networkgraph.SwitchImpl; |
| |
| public class MockNetworkGraph extends AbstractNetworkGraph { |
| public Switch addSwitch(Long switchId) { |
| SwitchImpl sw = new SwitchImpl(this, switchId); |
| switches.put(sw.getDpid(), sw); |
| return sw; |
| |
| } |
| |
| public Link addLink(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) { |
| return new LinkImpl( |
| this, |
| getSwitch(srcDpid).getPort(srcPortNo), |
| getSwitch(dstDpid).getPort(dstPortNo)); |
| } |
| |
| public Link[] addBidirectionalLinks(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) { |
| Link[] links = new Link[2]; |
| links[0] = addLink(srcDpid, srcPortNo, dstDpid, dstPortNo); |
| links[1] = addLink(dstDpid, dstPortNo, srcDpid, srcPortNo); |
| |
| return links; |
| } |
| |
| public void createSampleTopology() { |
| // add 10 switches (24 ports switch) |
| for (Long dpid=1L; dpid<10L; dpid++) { |
| SwitchImpl sw = (SwitchImpl) addSwitch(dpid); |
| for (Long j=1L; j<=24L; j++) { |
| sw.addPort(j); |
| } |
| } |
| |
| // add loop path |
| addBidirectionalLinks(1L, 1L, 2L, 2L); |
| addBidirectionalLinks(2L, 1L, 3L, 2L); |
| addBidirectionalLinks(3L, 1L, 4L, 2L); |
| addBidirectionalLinks(4L, 1L, 5L, 2L); |
| addBidirectionalLinks(5L, 1L, 6L, 2L); |
| addBidirectionalLinks(6L, 1L, 7L, 2L); |
| addBidirectionalLinks(7L, 1L, 8L, 2L); |
| addBidirectionalLinks(8L, 1L, 9L, 2L); |
| addBidirectionalLinks(9L, 1L, 1L, 2L); |
| |
| // add other links |
| addBidirectionalLinks(1L, 3L, 5L, 3L); |
| addBidirectionalLinks(2L, 4L, 5L, 4L); |
| addBidirectionalLinks(2L, 5L, 7L, 5L); |
| addBidirectionalLinks(3L, 6L, 7L, 6L); |
| addBidirectionalLinks(3L, 7L, 8L, 7L); |
| addBidirectionalLinks(3L, 8L, 9L, 8L); |
| addBidirectionalLinks(4L, 9l, 9L, 9L); |
| |
| // set capacity of all links to 1000Mbps |
| for (Link link: getLinks()) { |
| ((LinkImpl)link).setCapacity(1000.0); |
| } |
| } |
| } |