@Override public String exportJsonNameOnly(DataObject dataObject) { String ret = null; if (dataObject instanceof ServiceFunctionForwarder) { ServiceFunctionForwarder obj = (ServiceFunctionForwarder) dataObject; ObjectNode node = mapper.createObjectNode(); node.put(_NAME, obj.getName().getValue()); ArrayNode sffArray = mapper.createArrayNode(); sffArray.add(node); ret = "{\"" + _SERVICE_FUNCTION_FORWARDER + "\":" + sffArray.toString() + "}"; } else { throw new IllegalArgumentException("Argument is not an instance of ServiceFunctionForwarder"); } return ret; }
private ArrayList<String> getRestUriListFromSclServiceForwarderList( List<SclServiceFunctionForwarder> sclServiceForwarderList, String aclName, java.lang.Class<? extends AclBase> aclType) { // rest uri list should be created from Classifier SFFs. Classifier will be taken from ACL ArrayList<String> sffRestUriList = new ArrayList<>(); if (sclServiceForwarderList != null && aclName != null && aclType != null ) { for (SclServiceFunctionForwarder sclServiceForwarder : sclServiceForwarderList) { SffName sffName = new SffName(sclServiceForwarder.getName()); ServiceFunctionForwarder serviceForwarder = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName); if (serviceForwarder != null && serviceForwarder.getRestUri() != null && !serviceForwarder.getRestUri().getValue().isEmpty()) { String restUri = serviceForwarder.getRestUri().getValue() + ACL_REST_URI + aclName; sffRestUriList.add(restUri); LOG.info("ACL will be send to REST URI {}", restUri); } } } return sffRestUriList.isEmpty() ? null : sffRestUriList; } }
if(serviceNode.isEmpty()) { serviceNode += SFF_DEFAULT_NAME + counter.incrementAndGet(); sffBuilder.setName(new SffName(serviceNode)); sffBuilder.setServiceNode(new SnName(serviceNode)); } else { sffBuilder.setName(new SffName(serviceNode)); sffDplBuilder.setName(new SffDataPlaneLocatorName(sffBuilder.getName().getValue() + SFF_DPL_SUFFIX)); sffDplBuilder.setKey(new SffDataPlaneLocatorKey(sffDplBuilder.getName())); sffDataPlaneLocator.add(sffDplBuilder.build());
private ObjectNode getSfDataPlaneLocatorObjectNode(SfDataPlaneLocator locator) { ObjectNode sfLocatorNode = ExporterUtil.getDataPlaneLocatorObjectNode(locator); if (sfLocatorNode == null) { sfLocatorNode = mapper.createObjectNode(); } sfLocatorNode.put(_NAME, locator.getName().getValue()); sfLocatorNode.put(_SERVICE_FUNCTION_FORWARDER, locator.getServiceFunctionForwarder().getValue()); return sfLocatorNode; } }
/** * 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(); }
@Override protected void setRestUriList(DataObject dataObject) { ServiceFunctionForwarder obj = (ServiceFunctionForwarder) dataObject; if (obj.getRestUri() != null) { SffName sffName = obj.getName(); if (sffName != null) { String restUri = obj.getRestUri().getValue() + SFF_REST_URI + sffName.getValue(); this.restUriList = new ArrayList<>(); this.restUriList.add(restUri); LOG.info("SFF will be send to REST URI {}", restUri); } } else { this.restUriList = null; } }
if (SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarder(new SffName(nodeName))) { LOG.info("SFF {} deleted successfully", nodeName); } else { if (SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarder(new SffName(nodeName))) { LOG.info("SFF {} deleted successfully", nodeName); } else {
sfcProviderGraph.addNode(sffName.getValue()); LOG.debug("Add ServiceFunctionForwarder: {}", sffName); sfcProviderGraph.addEdge(sfName.getValue(), sffName.getValue()); LOG.debug("Add SF-to-SFF edge: {} => {}", sfName, sffName); sfcProviderGraph.addEdge(sffName.getValue(), toSffName.getValue()); LOG.debug("Add SFF-to-SFF edge: {} => {}", sffName, toSffName);
o.put(_HOP_NUMBER, e.getHopNumber()); if (e.getServiceFunctionForwarder() != null) { o.put(_SERVICE_FUNCTION_FORWARDER, e.getServiceFunctionForwarder().getValue());
SfcOvsUtil.deleteOvsdbNode(SfcOvsUtil.buildOvsdbNodeIID(sffName.getValue()), opendaylightSfc.getExecutor()); if (keyedInstanceIdentifier != null) { ServiceFunctionForwarderKey sffKey = (ServiceFunctionForwarderKey) keyedInstanceIdentifier.getKey(); String sffNameAsString = sffKey.getName().getValue(); String sffDataPlaneLocatorNameAsString = sffDataPlaneLocator.getName().getValue();
sffNode.put(_NAME, sff.getName().getValue());
if (sfdpl.getServiceFunctionForwarder() == null) continue; String nodeId = sfdpl.getServiceFunctionForwarder().getValue(); if (SfcProviderServiceForwarderAPI .readServiceFunctionForwarder(sfdpl.getServiceFunctionForwarder()) == null)