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.SffName;
17 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SftTypeName;
18 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.ServiceFunctionsBuilder;
19 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.function.base.SfDataPlaneLocator;
20 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.function.base.SfDataPlaneLocatorBuilder;
21 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction;
22 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunctionBuilder;
23 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.VxlanGpe;
24 import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.sfc.sf.ovs.rev160107.SfDplOvsAugmentation;
25 import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.sfc.sf.ovs.rev160107.SfDplOvsAugmentationBuilder;
26 import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.sfc.sf.ovs.rev160107.connected.port.OvsPortBuilder;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
29 public class ServiceFunctionUtils extends AbstractUtils {
30 public SfDataPlaneLocatorBuilder sfDataPlaneLocatorBuilder(SfDataPlaneLocatorBuilder sfDataPlaneLocatorBuilder,
31 String ip, int port, String dplName,
32 String sf1DplPortName, String sffName) {
33 SfDplOvsAugmentationBuilder sfDplOvsAugmentationBuilder = new SfDplOvsAugmentationBuilder();
34 OvsPortBuilder ovsPortBuilder = new OvsPortBuilder().setPortId(sf1DplPortName);
35 sfDplOvsAugmentationBuilder.setOvsPort(ovsPortBuilder.build());
37 return sfDataPlaneLocatorBuilder
38 .addAugmentation(SfDplOvsAugmentation.class, sfDplOvsAugmentationBuilder.build())
39 .setLocatorType(ipBuilder(ip, port).build())
40 .setName(SfDataPlaneLocatorName.getDefaultInstance(dplName))
41 .setTransport(VxlanGpe.class)
42 .setServiceFunctionForwarder(SffName.getDefaultInstance(sffName));
45 public ServiceFunctionBuilder serviceFunctionBuilder(ServiceFunctionBuilder serviceFunctionBuilder,
46 String ip, String sfName,
47 List<SfDataPlaneLocator> sfDataPlaneLocatorList,
49 return serviceFunctionBuilder
50 .setSfDataPlaneLocator(sfDataPlaneLocatorList)
51 .setName(new SfName(sfName))
52 .setIpMgmtAddress(new IpAddress(ip.toCharArray()))
56 public ServiceFunctionsBuilder serviceFunctionsBuilder(ServiceFunctionsBuilder serviceFunctionsBuilder,
57 List<ServiceFunction> serviceFunctionList) {
58 return serviceFunctionsBuilder.setServiceFunction(serviceFunctionList);
61 public ServiceFunctionBuilder serviceFunctionBuilder(String sfIp, int port, String sf1DplName,
62 String sf1DplPortName,
63 String sffname, String sfName) {
64 SfDataPlaneLocatorBuilder sfDataPlaneLocator =
65 sfDataPlaneLocatorBuilder(new SfDataPlaneLocatorBuilder(), sfIp, port, sf1DplName,
66 sf1DplPortName, sffname);
67 List<SfDataPlaneLocator> sfDataPlaneLocatorList = list(new ArrayList<>(), sfDataPlaneLocator);
68 return serviceFunctionBuilder(
69 new ServiceFunctionBuilder(), sfIp, sfName, sfDataPlaneLocatorList, new SftTypeName("firewall"));