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.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.bridge.OvsBridgeBuilder;
24 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.options.OvsOptionsBuilder;
25 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.ServiceFunctionForwardersBuilder;
26 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder;
27 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarderBuilder;
28 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.ServiceFunctionDictionary;
29 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.ServiceFunctionDictionaryBuilder;
30 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocator;
31 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocatorBuilder;
32 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;
33 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;
35 public class ServiceFunctionForwarderUtils extends AbstractUtils {
36 public OvsOptionsBuilder ovsOptionsBuilder(OvsOptionsBuilder ovsOptionsBuilder, int port) {
38 return ovsOptionsBuilder
39 .setDstPort(String.valueOf(port))
50 public SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder(SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder,
51 DataPlaneLocatorBuilder dataPlaneLocatorBuilder,
53 SffOvsLocatorOptionsAugmentationBuilder sffOvsLocatorOptionsAugmentationBuilder =
54 new SffOvsLocatorOptionsAugmentationBuilder();
55 sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(
56 ovsOptionsBuilder(new OvsOptionsBuilder(), 6633).build());
58 return sffDataPlaneLocatorBuilder
59 .setName(new SffDataPlaneLocatorName(dplName))
60 .setDataPlaneLocator(dataPlaneLocatorBuilder.build())
61 .addAugmentation(SffOvsLocatorOptionsAugmentation.class,
62 sffOvsLocatorOptionsAugmentationBuilder.build());
65 public SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder(
66 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder, String sffDplName, String sfDplName) {
67 return sffSfDataPlaneLocatorBuilder
68 .setSfDplName(SfDataPlaneLocatorName.getDefaultInstance(sfDplName))
69 .setSffDplName(SffDataPlaneLocatorName.getDefaultInstance(sffDplName));
72 public ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder(
73 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder,
74 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder,
77 return serviceFunctionDictionaryBuilder
78 .setName(SfName.getDefaultInstance(sfName))
79 .setSffSfDataPlaneLocator(sffSfDataPlaneLocatorBuilder.build());
82 public OvsBridgeBuilder ovsBridgeBuilder(OvsBridgeBuilder ovsBridgeBuilder, String bridgeName) {
83 return ovsBridgeBuilder.setBridgeName(bridgeName);
86 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
87 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder,
88 String sffName, String serviceNodeName, String bridgeName,
89 List<SffDataPlaneLocator> sffDataPlaneLocatorList,
90 List<ServiceFunctionDictionary> serviceFunctionDictionaryList) {
92 SffOvsBridgeAugmentationBuilder sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder();
93 sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder(new OvsBridgeBuilder(), bridgeName).build());
95 return serviceFunctionForwarderBuilder
96 .setName(new SffName(sffName))
97 .setServiceNode(new SnName(serviceNodeName))
98 .setServiceFunctionDictionary(serviceFunctionDictionaryList)
99 .setSffDataPlaneLocator(sffDataPlaneLocatorList)
100 .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build());
103 public ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder(
104 ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder,
105 List<ServiceFunctionForwarder> serviceFunctionForwarderList) {
106 return serviceFunctionForwardersBuilder.setServiceFunctionForwarder(serviceFunctionForwarderList);
109 public ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder(
110 String sffName, String sffIp, int port, String sffDplName,
111 String sfIp, String snName, String bridgeName, String sfName, String sfDplName) {
113 DataPlaneLocatorBuilder dataPlaneLocatorBuilder =
114 dataPlaneLocatorBuilder(new DataPlaneLocatorBuilder(), sffIp, port);
115 SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder =
116 sffDataPlaneLocatorBuilder( new SffDataPlaneLocatorBuilder(), dataPlaneLocatorBuilder, sffDplName);
117 List<SffDataPlaneLocator> sffDataPlaneLocatorList =
118 list(new ArrayList<SffDataPlaneLocator>(), sffDataPlaneLocatorBuilder);
120 SffSfDataPlaneLocatorBuilder sffSfDataPlaneLocatorBuilder =
121 sffSfDataPlaneLocatorBuilder(new SffSfDataPlaneLocatorBuilder(), sffDplName, sfDplName);
122 ServiceFunctionDictionaryBuilder serviceFunctionDictionaryBuilder =
123 serviceFunctionDictionaryBuilder(new ServiceFunctionDictionaryBuilder(),
124 sffSfDataPlaneLocatorBuilder, sfName);
125 List<ServiceFunctionDictionary> serviceFunctionDictionaryList =
126 list(new ArrayList<ServiceFunctionDictionary>(), serviceFunctionDictionaryBuilder);
128 ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder =
129 serviceFunctionForwarderBuilder(
130 new ServiceFunctionForwarderBuilder(), sffName, snName, bridgeName,
131 sffDataPlaneLocatorList, serviceFunctionDictionaryList);
132 return serviceFunctionForwarderBuilder;