blob: a6ff9c966f9e86dafe7feb9e6e8b867b22ac42d2 [file] [log] [blame]
yoonseon322c9c32016-12-07 16:47:02 -08001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2017-present Open Networking Foundation
yoonseon322c9c32016-12-07 16:47:02 -08003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.incubator.net.virtual.impl;
18
19import org.onosproject.incubator.net.virtual.TenantId;
20import org.onosproject.incubator.net.virtual.VirtualDevice;
21import org.onosproject.incubator.net.virtual.VirtualLink;
22import org.onosproject.incubator.net.virtual.VirtualNetwork;
23import org.onosproject.incubator.store.virtual.impl.DistributedVirtualNetworkStore;
24import org.onosproject.net.ConnectPoint;
25import org.onosproject.net.DeviceId;
26import org.onosproject.net.Link;
27import org.onosproject.net.PortNumber;
28import org.onosproject.net.TestDeviceParams;
29
30import static org.onosproject.net.DeviceId.deviceId;
31
32public class VirtualNetworkTestUtil extends TestDeviceParams {
33
34 protected static final TenantId TID1 = TenantId.tenantId("tid1");
35 protected static final TenantId TID2 = TenantId.tenantId("tid2");
36
37 protected static final DeviceId VDID1 = deviceId("of:foo_v");
38 protected static final DeviceId VDID2 = deviceId("of:bar_v");
39 protected static final DeviceId VDID3 = deviceId("of:who_v");
40 protected static final DeviceId VDID4 = deviceId("of:what_v");
41
sangyun-han3c3e99e2017-02-08 15:30:53 +090042 protected static final DeviceId PHYDID1 = deviceId("physical:1");
43 protected static final DeviceId PHYDID2 = deviceId("physical:2");
44 protected static final DeviceId PHYDID3 = deviceId("physical:3");
45 protected static final DeviceId PHYDID4 = deviceId("physical:4");
46
yoonseon322c9c32016-12-07 16:47:02 -080047 /**
48 * Method to create the virtual network for further testing.
49 *
50 * @return virtual network
51 */
52 public static VirtualNetwork setupVirtualNetworkTopology(VirtualNetworkManager manager,
53 TenantId tenantId) {
54 manager.registerTenantId(tenantId);
55 VirtualNetwork virtualNetwork = manager.createVirtualNetwork(tenantId);
56
57 VirtualDevice virtualDevice1 =
58 manager.createVirtualDevice(virtualNetwork.id(), VDID1);
59 VirtualDevice virtualDevice2 =
60 manager.createVirtualDevice(virtualNetwork.id(), VDID2);
61 VirtualDevice virtualDevice3 =
62 manager.createVirtualDevice(virtualNetwork.id(), VDID3);
63 VirtualDevice virtualDevice4 =
64 manager.createVirtualDevice(virtualNetwork.id(), VDID4);
65
66 ConnectPoint vcp1 = new ConnectPoint(virtualDevice1.id(), PortNumber.portNumber(1));
67 ConnectPoint cp1 = new ConnectPoint(DID1, PortNumber.portNumber(1));
68 manager.createVirtualPort(virtualNetwork.id(), vcp1.deviceId(), vcp1.port(), cp1);
69
70 ConnectPoint vcp2 = new ConnectPoint(virtualDevice1.id(), PortNumber.portNumber(2));
71 ConnectPoint cp2 = new ConnectPoint(DID1, PortNumber.portNumber(2));
72 manager.createVirtualPort(virtualNetwork.id(), vcp2.deviceId(), vcp2.port(), cp2);
73
74 ConnectPoint vcp3 = new ConnectPoint(virtualDevice2.id(), PortNumber.portNumber(3));
75 ConnectPoint cp3 = new ConnectPoint(DID2, PortNumber.portNumber(1));
76 manager.createVirtualPort(virtualNetwork.id(), vcp3.deviceId(), vcp3.port(), cp3);
77
78 ConnectPoint vcp4 = new ConnectPoint(virtualDevice2.id(), PortNumber.portNumber(4));
79 ConnectPoint cp4 = new ConnectPoint(DID2, PortNumber.portNumber(2));
80 manager.createVirtualPort(virtualNetwork.id(), vcp4.deviceId(), vcp4.port(), cp4);
81
82 ConnectPoint vcp5 = new ConnectPoint(virtualDevice3.id(), PortNumber.portNumber(5));
83 ConnectPoint cp5 = new ConnectPoint(DID3, PortNumber.portNumber(1));
84 manager.createVirtualPort(virtualNetwork.id(), vcp5.deviceId(), vcp5.port(), cp5);
85
86 ConnectPoint vcp6 = new ConnectPoint(virtualDevice3.id(), PortNumber.portNumber(6));
87 ConnectPoint cp6 = new ConnectPoint(DID3, PortNumber.portNumber(2));
88 manager.createVirtualPort(virtualNetwork.id(), vcp6.deviceId(), vcp6.port(), cp6);
89
90 DistributedVirtualNetworkStore virtualNetworkManagerStore =
91 (DistributedVirtualNetworkStore) manager.store;
92 VirtualLink link1 = manager.createVirtualLink(virtualNetwork.id(), vcp1, vcp3);
93 virtualNetworkManagerStore.updateLink(link1, link1.tunnelId(), Link.State.ACTIVE);
94 VirtualLink link2 = manager.createVirtualLink(virtualNetwork.id(), vcp3, vcp1);
95 virtualNetworkManagerStore.updateLink(link2, link2.tunnelId(), Link.State.ACTIVE);
96 VirtualLink link3 = manager.createVirtualLink(virtualNetwork.id(), vcp4, vcp5);
97 virtualNetworkManagerStore.updateLink(link3, link3.tunnelId(), Link.State.ACTIVE);
98 VirtualLink link4 = manager.createVirtualLink(virtualNetwork.id(), vcp5, vcp4);
99 virtualNetworkManagerStore.updateLink(link4, link4.tunnelId(), Link.State.ACTIVE);
100 VirtualLink link5 = manager.createVirtualLink(virtualNetwork.id(), vcp2, vcp6);
101 virtualNetworkManagerStore.updateLink(link5, link5.tunnelId(), Link.State.ACTIVE);
102 VirtualLink link6 = manager.createVirtualLink(virtualNetwork.id(), vcp6, vcp2);
103 virtualNetworkManagerStore.updateLink(link6, link6.tunnelId(), Link.State.ACTIVE);
104
105 return virtualNetwork;
106 }
107}