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.netvirt.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;
39 public class ServiceFunctionForwarderUtils extends AbstractUtils {
40 public OvsOptionsBuilder ovsOptionsBuilder(OvsOptionsBuilder ovsOptionsBuilder, int port) {
42 return ovsOptionsBuilder
43 .setDstPort(String.valueOf(port))
54 public SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder(SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder,
55 DataPlaneLocatorBuilder dataPlaneLocatorBuilder,
57 SffOvsLocatorOptionsAugmentationBuilder sffOvsLocatorOptionsAugmentationBuilder =
58 new SffOvsLocatorOptionsAugmentationBuilder();
59 sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(
60 ovsOptionsBuilder(new OvsOptionsBuilder(), 6633).build());
62 return sffDataPlaneLocatorBuilder
63 .setName(new SffDataPlaneLocatorName(dplName))
64 .setDataPlaneLocator(dataPlaneLocatorBuilder.build())
65 .addAugmentation(SffOvsLocatorOptionsAugmentation.class,
66 sffOvsLocatorOptionsAugmentationBuilder.build());
69 public SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder(
70 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder, String sffDplName, String sfDplName) {
71 return sffSfDataPlaneLocatorBuilder
72 .setSfDplName(SfDataPlaneLocatorName.getDefaultInstance(sfDplName))
73 .setSffDplName(SffDataPlaneLocatorName.getDefaultInstance(sffDplName));
76 public ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder(
77 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder,
78 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder,
81 return serviceFunctionDictionaryBuilder
82 .setName(SfName.getDefaultInstance(sfName))
83 .setSffSfDataPlaneLocator(sffSfDataPlaneLocatorBuilder.build());
86 public OvsBridgeBuilder ovsBridgeBuilder(OvsBridgeBuilder ovsBridgeBuilder, String bridgeName) {
87 return ovsBridgeBuilder.setBridgeName(bridgeName);
90 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
91 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder,
92 String sffName, String serviceNodeName, String bridgeName,
93 List<SffDataPlaneLocator> sffDataPlaneLocatorList,
94 List<ServiceFunctionDictionary> serviceFunctionDictionaryList,
95 OvsdbNodeRef ovsdbNodeRef) {
97 SffOvsBridgeAugmentationBuilder sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder();
98 sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder(new OvsBridgeBuilder(), bridgeName).build());
100 SffOvsNodeAugmentationBuilder sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder();
101 OvsNodeBuilder ovsNodeBuilder = new OvsNodeBuilder();
102 ovsNodeBuilder.setNodeId(ovsdbNodeRef);
103 sffOvsNodeAugmentationBuilder.setOvsNode(ovsNodeBuilder.build());
105 return serviceFunctionForwarderBuilder
106 .setName(new SffName(sffName))
107 .setServiceNode(new SnName(serviceNodeName))
108 .setServiceFunctionDictionary(serviceFunctionDictionaryList)
109 .setSffDataPlaneLocator(sffDataPlaneLocatorList)
110 .addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build())
111 .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build());
114 public ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder(
115 ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder,
116 List<ServiceFunctionForwarder> serviceFunctionForwarderList) {
117 return serviceFunctionForwardersBuilder.setServiceFunctionForwarder(serviceFunctionForwarderList);
120 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
121 String sffName, String sffIp, int port, String sffDplName,
122 String sfIp, String snName, String bridgeName, String sfName, String sfDplName,
123 OvsdbNodeRef ovsdbNodeRef) {
125 DataPlaneLocatorBuilder dataPlaneLocatorBuilder =
126 dataPlaneLocatorBuilder(new DataPlaneLocatorBuilder(), sffIp, port);
127 SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder =
128 sffDataPlaneLocatorBuilder( new SffDataPlaneLocatorBuilder(), dataPlaneLocatorBuilder, sffDplName);
129 List<SffDataPlaneLocator> sffDataPlaneLocatorList =
130 list(new ArrayList<SffDataPlaneLocator>(), sffDataPlaneLocatorBuilder);
132 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder =
133 sffSfDataPlaneLocatorBuilder(new SffSfDataPlaneLocatorBuilder(), sffDplName, sfDplName);
134 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder =
135 serviceFunctionDictionaryBuilder(new ServiceFunctionDictionaryBuilder(),
136 sffSfDataPlaneLocatorBuilder, sfName);
137 List<ServiceFunctionDictionary> serviceFunctionDictionaryList =
138 list(new ArrayList<ServiceFunctionDictionary>(), serviceFunctionDictionaryBuilder);
140 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder =
141 serviceFunctionForwarderBuilder(
142 new ServiceFunctionForwarderBuilder(), sffName, snName, bridgeName,
143 sffDataPlaneLocatorList, serviceFunctionDictionaryList, ovsdbNodeRef);
144 return serviceFunctionForwarderBuilder;