public Ip getSffIp(ServiceFunctionForwarder serviceFunctionForwarder) { if (serviceFunctionForwarder != null && serviceFunctionForwarder.getSffDataPlaneLocator() != null && serviceFunctionForwarder.getSffDataPlaneLocator().get(0) != null && serviceFunctionForwarder.getSffDataPlaneLocator().get(0).getDataPlaneLocator() != null) { return (Ip)serviceFunctionForwarder.getSffDataPlaneLocator().get(0) .getDataPlaneLocator().getLocatorType(); } else { LOG.info("getSffIp: ServiceFunctionForwarder is null"); return null; } }
public boolean containsLispAddress(ServiceFunctionForwarder serviceFunctionForwarder) { List<SffDataPlaneLocator> locations = serviceFunctionForwarder.getSffDataPlaneLocator(); for (SffDataPlaneLocator location : locations) { if (location.getDataPlaneLocator().getLocatorType() instanceof Lisp) { return true; } } return false; }
public ServiceFunctionForwarder updateLispData(ServiceFunctionForwarder serviceFunctionForwarder) { List<SffDataPlaneLocator> locations = serviceFunctionForwarder.getSffDataPlaneLocator(); Lisp lispLocation = getLispLocationFromSff(locations); if (lispLocation != null) { return updateLispData(lispLocation, serviceFunctionForwarder); } else { return serviceFunctionForwarder; } }
/** * This method searches for a data plane locator of a given name within a SFF * <p> * * @param sffName SFF name * @param sffLocatorName SFF data plane locator name * @return SffDataPlaneLocator object or null if not found */ public static SffDataPlaneLocator readServiceFunctionForwarderDataPlaneLocator(SffName sffName, SffDataPlaneLocatorName sffLocatorName) { ServiceFunctionForwarder serviceFunctionForwarder = readServiceFunctionForwarder(sffName); if (serviceFunctionForwarder != null) { List<SffDataPlaneLocator> sffDataPlaneLocatorList = serviceFunctionForwarder.getSffDataPlaneLocator(); for (SffDataPlaneLocator sffDataPlaneLocator : sffDataPlaneLocatorList) { if (sffDataPlaneLocator.getName().equals(sffLocatorName)) { return sffDataPlaneLocator; } } } else { LOG.error("{}: Failed to read SFF: {}", Thread.currentThread().getStackTrace()[1], sffName); } return null; }
private static void createHopBuilderInternal(int serviceIndex, RenderedServicePathHopBuilder renderedServicePathHopBuilder, short posIndex, ServiceFunction serviceFunction) { SffName serviceFunctionForwarderName = serviceFunction.getSfDataPlaneLocator().get(0).getServiceFunctionForwarder(); ServiceFunctionForwarder serviceFunctionForwarder = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(serviceFunctionForwarderName); if (serviceFunctionForwarder != null && serviceFunctionForwarder.getSffDataPlaneLocator() != null && serviceFunctionForwarder.getSffDataPlaneLocator().get(0) != null) { renderedServicePathHopBuilder .setServiceFunctionForwarderLocator(serviceFunctionForwarder.getSffDataPlaneLocator().get(0).getName()); } renderedServicePathHopBuilder.setHopNumber(posIndex) .setServiceIndex((short) serviceIndex) .setServiceFunctionForwarder(serviceFunctionForwarderName); }
/** * @param sff ServiceFunctionForwarder Object * @param executor ExecutorService Object */ static void addOvsdbAugmentations(ServiceFunctionForwarder sff, ExecutorService executor) { OvsdbBridgeAugmentation ovsdbBridge = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(sff, executor); if (ovsdbBridge != null) { // put Bridge SfcOvsUtil.putOvsdbBridge(ovsdbBridge, executor); // put Termination Points SfcOvsUtil.putOvsdbTerminationPoints(ovsdbBridge, sff.getSffDataPlaneLocator(), executor); } } }
private ServiceFunctionForwarder findSffByIp(ServiceFunctionForwarders sffs, final IpAddress remoteIp) { List<ServiceFunctionForwarder> serviceFunctionForwarders = sffs.getServiceFunctionForwarder(); if (serviceFunctionForwarders != null && !serviceFunctionForwarders.isEmpty()) for (ServiceFunctionForwarder sff : serviceFunctionForwarders) { List<SffDataPlaneLocator> sffDataPlaneLocator = sff.getSffDataPlaneLocator(); for (SffDataPlaneLocator sffLocator : sffDataPlaneLocator) { LocatorType locatorType = sffLocator.getDataPlaneLocator().getLocatorType(); if (locatorType instanceof Ip) { Ip ip = (Ip) locatorType; if (ip.getIp().equals(remoteIp)) { return sff; } } } } return null; } }
/** * This gets VxlanDataLocator * * @param sff - Service Function Forwarder * @return Ip */ public static Ip getSffVxlanDataLocator(ServiceFunctionForwarder sff) { List<SffDataPlaneLocator> dplList = sff.getSffDataPlaneLocator(); for (SffDataPlaneLocator dpl: dplList) { if (dpl.getDataPlaneLocator() != null && dpl.getDataPlaneLocator().getTransport() == VxlanGpe.class) { return (Ip) dpl.getDataPlaneLocator().getLocatorType(); } } return null; }
sffNode.put(_SERVICE_NODE, sff.getServiceNode().getValue()); if (sff.getSffDataPlaneLocator() != null) { ArrayNode locatorArray = mapper.createArrayNode(); for (SffDataPlaneLocator sffDataPlaneLocator : sff.getSffDataPlaneLocator()) { locatorArray.add(this.getSffDataPlaneLocatorObjectNode(sffDataPlaneLocator));
List<SffDataPlaneLocator> locators = sff.getSffDataPlaneLocator();
List<SffDataPlaneLocator> locators = sff.getSffDataPlaneLocator();
continue; List<SffDataPlaneLocator> listOfSffdpl = SfcProviderServiceForwarderAPI .readServiceFunctionForwarder(sfdpl.getServiceFunctionForwarder()).getSffDataPlaneLocator(); for (SffDataPlaneLocator sffdpl : listOfSffdpl) { SffDataPlaneLocatorName sffdplName = sffdpl.getName();
List<SffDataPlaneLocator> sffDplList = serviceFunctionForwarder.getSffDataPlaneLocator(); IpAddress ip = null;