blob: 487cb6ef41c87ec5c003c099384fede968fd2030 [file] [log] [blame]
yoonseon322c9c32016-12-07 16:47:02 -08001/*
2 * Copyright 2017-present Open Networking Laboratory
3 *
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
42 /**
43 * Method to create the virtual network for further testing.
44 *
45 * @return virtual network
46 */
47 public static VirtualNetwork setupVirtualNetworkTopology(VirtualNetworkManager manager,
48 TenantId tenantId) {
49 manager.registerTenantId(tenantId);
50 VirtualNetwork virtualNetwork = manager.createVirtualNetwork(tenantId);
51
52 VirtualDevice virtualDevice1 =
53 manager.createVirtualDevice(virtualNetwork.id(), VDID1);
54 VirtualDevice virtualDevice2 =
55 manager.createVirtualDevice(virtualNetwork.id(), VDID2);
56 VirtualDevice virtualDevice3 =
57 manager.createVirtualDevice(virtualNetwork.id(), VDID3);
58 VirtualDevice virtualDevice4 =
59 manager.createVirtualDevice(virtualNetwork.id(), VDID4);
60
61 ConnectPoint vcp1 = new ConnectPoint(virtualDevice1.id(), PortNumber.portNumber(1));
62 ConnectPoint cp1 = new ConnectPoint(DID1, PortNumber.portNumber(1));
63 manager.createVirtualPort(virtualNetwork.id(), vcp1.deviceId(), vcp1.port(), cp1);
64
65 ConnectPoint vcp2 = new ConnectPoint(virtualDevice1.id(), PortNumber.portNumber(2));
66 ConnectPoint cp2 = new ConnectPoint(DID1, PortNumber.portNumber(2));
67 manager.createVirtualPort(virtualNetwork.id(), vcp2.deviceId(), vcp2.port(), cp2);
68
69 ConnectPoint vcp3 = new ConnectPoint(virtualDevice2.id(), PortNumber.portNumber(3));
70 ConnectPoint cp3 = new ConnectPoint(DID2, PortNumber.portNumber(1));
71 manager.createVirtualPort(virtualNetwork.id(), vcp3.deviceId(), vcp3.port(), cp3);
72
73 ConnectPoint vcp4 = new ConnectPoint(virtualDevice2.id(), PortNumber.portNumber(4));
74 ConnectPoint cp4 = new ConnectPoint(DID2, PortNumber.portNumber(2));
75 manager.createVirtualPort(virtualNetwork.id(), vcp4.deviceId(), vcp4.port(), cp4);
76
77 ConnectPoint vcp5 = new ConnectPoint(virtualDevice3.id(), PortNumber.portNumber(5));
78 ConnectPoint cp5 = new ConnectPoint(DID3, PortNumber.portNumber(1));
79 manager.createVirtualPort(virtualNetwork.id(), vcp5.deviceId(), vcp5.port(), cp5);
80
81 ConnectPoint vcp6 = new ConnectPoint(virtualDevice3.id(), PortNumber.portNumber(6));
82 ConnectPoint cp6 = new ConnectPoint(DID3, PortNumber.portNumber(2));
83 manager.createVirtualPort(virtualNetwork.id(), vcp6.deviceId(), vcp6.port(), cp6);
84
85 DistributedVirtualNetworkStore virtualNetworkManagerStore =
86 (DistributedVirtualNetworkStore) manager.store;
87 VirtualLink link1 = manager.createVirtualLink(virtualNetwork.id(), vcp1, vcp3);
88 virtualNetworkManagerStore.updateLink(link1, link1.tunnelId(), Link.State.ACTIVE);
89 VirtualLink link2 = manager.createVirtualLink(virtualNetwork.id(), vcp3, vcp1);
90 virtualNetworkManagerStore.updateLink(link2, link2.tunnelId(), Link.State.ACTIVE);
91 VirtualLink link3 = manager.createVirtualLink(virtualNetwork.id(), vcp4, vcp5);
92 virtualNetworkManagerStore.updateLink(link3, link3.tunnelId(), Link.State.ACTIVE);
93 VirtualLink link4 = manager.createVirtualLink(virtualNetwork.id(), vcp5, vcp4);
94 virtualNetworkManagerStore.updateLink(link4, link4.tunnelId(), Link.State.ACTIVE);
95 VirtualLink link5 = manager.createVirtualLink(virtualNetwork.id(), vcp2, vcp6);
96 virtualNetworkManagerStore.updateLink(link5, link5.tunnelId(), Link.State.ACTIVE);
97 VirtualLink link6 = manager.createVirtualLink(virtualNetwork.id(), vcp6, vcp2);
98 virtualNetworkManagerStore.updateLink(link6, link6.tunnelId(), Link.State.ACTIVE);
99
100 return virtualNetwork;
101 }
102}