/** * Returns an Service Function Forwarder object which can be stored * in DataStore. The returned object is built on basis of OVS Bridge. * The ovsdbBridgeAugmentation argument must be not null otherwise * NullPointerException will be raised. * * @param nodeName * @param nnode Netconf node Object * @return ServiceFunctionForwarder Object */ public static ServiceFunctionForwarder buildServiceForwarderFromNetconf(String nodeName, NetconfNode nnode) { Preconditions.checkNotNull(nnode); SffName sffName = new SffName(nodeName); SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); // TODO: should be replaced once OVS interface name will be available List<SffDataPlaneLocator> sffDataPlaneLocatorList = new ArrayList<>(); sffDataPlaneLocatorList.add(sffDataPlaneLocatorBuilder.build()); ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); serviceFunctionForwarderBuilder.setName(sffName); IpAddress ipAddress = new IpAddress(nnode.getHost().getIpAddress().getValue()); serviceFunctionForwarderBuilder.setIpMgmtAddress(ipAddress); return serviceFunctionForwarderBuilder.build(); }
sffSfDplBuilder.setSffDplName(sffBuilder.getSffDataPlaneLocator().get(0).getName()); sfdBuilder.setSffSfDataPlaneLocator(sffSfDplBuilder.build()); if (sffBuilder.getServiceFunctionDictionary() != null) { for (Iterator<ServiceFunctionDictionary> sfdItr = sffBuilder.getServiceFunctionDictionary().iterator();sfdItr .hasNext();) { ServiceFunctionDictionary sfd = sfdItr.next(); if (sfd.getName().equals(sfdBuilder.getName())) { LOG.info("Existing SF dictionary {} found in SFF {}, removing the SF dictionary", sfd.getName(), sffBuilder.getName()); sfdItr.remove(); break; sffBuilder.getServiceFunctionDictionary().addAll(sfdList); } else { sffBuilder.setServiceFunctionDictionary(sfdList); LOG.info("Final Service Function Dictionary {}", sffBuilder.getServiceFunctionDictionary());
ServiceFunctionForwarderBuilder sffBuilder = new ServiceFunctionForwarderBuilder(); SffOvsBridgeAugmentationBuilder sffOvsBridgeAugBuilder = new SffOvsBridgeAugmentationBuilder(); SffOvsNodeAugmentationBuilder sffOvsNodeAugBuilder = new SffOvsNodeAugmentationBuilder(); if(serviceNode.isEmpty()) { serviceNode += SFF_DEFAULT_NAME + counter.incrementAndGet(); sffBuilder.setName(new SffName(serviceNode)); sffBuilder.setServiceNode(new SnName(serviceNode)); } else { sffBuilder.setServiceNode(new SnName(serviceNode)); sffBuilder.setName(new SffName(serviceNode)); ovsNodeBuilder.setNodeId(ovsdbBridgeAugmentation.getManagedBy()); sffOvsNodeAugBuilder.setOvsNode(ovsNodeBuilder.build()); sffBuilder.addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugBuilder.build()); sffBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugBuilder.build()); sffBuilder.setIpMgmtAddress(sffLocator.getIp()); sffDplBuilder.setName(new SffDataPlaneLocatorName(sffBuilder.getName().getValue() + SFF_DPL_SUFFIX)); sffDplBuilder.setKey(new SffDataPlaneLocatorKey(sffDplBuilder.getName())); sffDataPlaneLocator.add(sffDplBuilder.build()); sffBuilder.setKey(new ServiceFunctionForwarderKey(sffBuilder.getName())); sffBuilder.setSffDataPlaneLocator(sffDataPlaneLocator);
sffOvsBrAugBuilder.setOvsBridge(ovsBrBuilder.build()); ServiceFunctionForwarderBuilder sffBuilder = new ServiceFunctionForwarderBuilder(sff); sffBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBrAugBuilder.build()); return sffBuilder.build();
SffDataPlaneLocator loc = new SffDataPlaneLocatorBuilder().setDataPlaneLocator(dpl).setKey(key).setName(name).build(); ServiceFunctionForwarderBuilder fb = new ServiceFunctionForwarderBuilder(serviceFunctionForwarder); fb.getSffDataPlaneLocator().add(loc); return fb.build();
sfcMdsalHelper.getExistingSFF(sffBuilder.getIpMgmtAddress().getIpv4Address().getValue()); if(existingSff != null) { LOG.info("SFF already exist for Port Pair Group {}. Existing SFF is {}",ppg, existingSff); sffBuilder = new ServiceFunctionForwarderBuilder(existingSff); portPairToNeutronPortMap.get(portPair.getIngress()), metadata, sffBuilder.build()); LOG.info("Add Service Function Forwarder {} for Port Pair Group {}", sffBuilder.build(), ppg); sfcMdsalHelper.addServiceFunctionForwarder(sffBuilder.build());
ServiceFunctionForwarderBuilder sffBuilder = new ServiceFunctionForwarderBuilder(sff); LOG.info("Remove the SF {} from SFF {} dictionary and update in data store.", sfKey .getName(), sffName); sfcMdsalHelper.addServiceFunctionForwarder(sffBuilder.build());