2 * Copyright © 2015 Red Hat, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.ovsdb.openstack.netvirt.sfc.it.utils;
11 import java.util.ArrayList;
12 import java.util.List;
14 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfDataPlaneLocatorName;
15 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfName;
16 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SffDataPlaneLocatorName;
17 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SffName;
18 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SnName;
19 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsBridgeAugmentation;
20 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsBridgeAugmentationBuilder;
21 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsLocatorOptionsAugmentation;
22 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsLocatorOptionsAugmentationBuilder;
23 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsNodeAugmentation;
24 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsNodeAugmentationBuilder;
25 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.bridge.OvsBridgeBuilder;
26 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.node.OvsNodeBuilder;
27 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.options.OvsOptionsBuilder;
28 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.ServiceFunctionForwardersBuilder;
29 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder;
30 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarderBuilder;
31 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.ServiceFunctionDictionary;
32 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.ServiceFunctionDictionaryBuilder;
33 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocator;
34 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocatorBuilder;
35 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.service.function.dictionary.SffSfDataPlaneLocatorBuilder;
36 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.sff.data.plane.locator.DataPlaneLocatorBuilder;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef;
38 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
39 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
41 public class ServiceFunctionForwarderUtils extends AbstractUtils {
42 public OvsOptionsBuilder ovsOptionsBuilder(OvsOptionsBuilder ovsOptionsBuilder, int port) {
44 return ovsOptionsBuilder
45 .setDstPort(String.valueOf(port))
56 public SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder(SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder,
57 DataPlaneLocatorBuilder dataPlaneLocatorBuilder,
59 SffOvsLocatorOptionsAugmentationBuilder sffOvsLocatorOptionsAugmentationBuilder =
60 new SffOvsLocatorOptionsAugmentationBuilder();
61 sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(
62 ovsOptionsBuilder(new OvsOptionsBuilder(), 6633).build());
64 return sffDataPlaneLocatorBuilder
65 .setName(new SffDataPlaneLocatorName(dplName))
66 .setDataPlaneLocator(dataPlaneLocatorBuilder.build())
67 .addAugmentation(SffOvsLocatorOptionsAugmentation.class,
68 sffOvsLocatorOptionsAugmentationBuilder.build());
71 public SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder(
72 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder, String sffDplName, String sfDplName) {
73 return sffSfDataPlaneLocatorBuilder
74 .setSfDplName(SfDataPlaneLocatorName.getDefaultInstance(sfDplName))
75 .setSffDplName(SffDataPlaneLocatorName.getDefaultInstance(sffDplName));
78 public ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder(
79 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder,
80 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder,
83 return serviceFunctionDictionaryBuilder
84 .setName(SfName.getDefaultInstance(sfName))
85 .setSffSfDataPlaneLocator(sffSfDataPlaneLocatorBuilder.build());
88 public OvsBridgeBuilder ovsBridgeBuilder(OvsBridgeBuilder ovsBridgeBuilder, String bridgeName) {
89 return ovsBridgeBuilder.setBridgeName(bridgeName);
92 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
93 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder,
94 String sffName, String serviceNodeName, String bridgeName,
95 List<SffDataPlaneLocator> sffDataPlaneLocatorList,
96 List<ServiceFunctionDictionary> serviceFunctionDictionaryList,
97 OvsdbNodeRef ovsdbNodeRef) {
99 SffOvsBridgeAugmentationBuilder sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder();
100 sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder(new OvsBridgeBuilder(), bridgeName).build());
102 SffOvsNodeAugmentationBuilder sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder();
103 OvsNodeBuilder ovsNodeBuilder = new OvsNodeBuilder();
104 ovsNodeBuilder.setNodeId(ovsdbNodeRef);
105 sffOvsNodeAugmentationBuilder.setOvsNode(ovsNodeBuilder.build());
107 return serviceFunctionForwarderBuilder
108 .setName(new SffName(sffName))
109 .setServiceNode(new SnName(serviceNodeName))
110 .setServiceFunctionDictionary(serviceFunctionDictionaryList)
111 .setSffDataPlaneLocator(sffDataPlaneLocatorList)
112 .addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build())
113 .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build());
116 public ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder(
117 ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder,
118 List<ServiceFunctionForwarder> serviceFunctionForwarderList) {
119 return serviceFunctionForwardersBuilder.setServiceFunctionForwarder(serviceFunctionForwarderList);
122 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
123 String sffName, String sffIp, int port, String sffDplName,
124 String sfIp, String snName, String bridgeName, String sfName, String sfDplName,
125 OvsdbNodeRef ovsdbNodeRef) {
127 DataPlaneLocatorBuilder dataPlaneLocatorBuilder =
128 dataPlaneLocatorBuilder(new DataPlaneLocatorBuilder(), sffIp, port);
129 SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder =
130 sffDataPlaneLocatorBuilder( new SffDataPlaneLocatorBuilder(), dataPlaneLocatorBuilder, sffDplName);
131 List<SffDataPlaneLocator> sffDataPlaneLocatorList =
132 list(new ArrayList<SffDataPlaneLocator>(), sffDataPlaneLocatorBuilder);
134 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder =
135 sffSfDataPlaneLocatorBuilder(new SffSfDataPlaneLocatorBuilder(), sffDplName, sfDplName);
136 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder =
137 serviceFunctionDictionaryBuilder(new ServiceFunctionDictionaryBuilder(),
138 sffSfDataPlaneLocatorBuilder, sfName);
139 List<ServiceFunctionDictionary> serviceFunctionDictionaryList =
140 list(new ArrayList<ServiceFunctionDictionary>(), serviceFunctionDictionaryBuilder);
142 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder =
143 serviceFunctionForwarderBuilder(
144 new ServiceFunctionForwarderBuilder(), sffName, snName, bridgeName,
145 sffDataPlaneLocatorList, serviceFunctionDictionaryList, ovsdbNodeRef);
146 return serviceFunctionForwarderBuilder;