private ObjectNode getSffDataPlaneLocatorObjectNode(SffDataPlaneLocator sffDataPlaneLocator) { if (sffDataPlaneLocator == null) { return null; } ObjectNode sffDataPlaneLocatorNode = mapper.createObjectNode(); sffDataPlaneLocatorNode.put(_NAME, sffDataPlaneLocator.getName().getValue()); sffDataPlaneLocatorNode.put(_DATA_PLANE_LOCATOR, ExporterUtil.getDataPlaneLocatorObjectNode(sffDataPlaneLocator.getDataPlaneLocator())); sffDataPlaneLocatorNode.put(SERVICE_FUNCTION_FORWARDER_PREFIX + _OVS_BRIDGE, this.getSffDataPlaneLocatorOvsBridgeObjectNode(sffDataPlaneLocator)); return sffDataPlaneLocatorNode; }
private ObjectNode getSffDataPlaneLocatorOvsBridgeObjectNode(SffDataPlaneLocator sffDataPlaneLocator) { if (sffDataPlaneLocator == null || sffDataPlaneLocator.getAugmentation(SffOvsLocatorBridgeAugmentation.class) == null) { return null; } SffOvsLocatorBridgeAugmentation sffDataPlaneLocator1 = sffDataPlaneLocator.getAugmentation(SffOvsLocatorBridgeAugmentation.class); if (sffDataPlaneLocator1 != null) { return this.getOvsBridgeObjectNode(sffDataPlaneLocator1.getOvsBridge()); } return null; }
private Lisp getLispLocationFromSff(List<SffDataPlaneLocator> locations) { for (SffDataPlaneLocator location : locations) { DataPlaneLocator dpl = location.getDataPlaneLocator(); LocatorType lt = dpl.getLocatorType(); if (lt instanceof Lisp) { return (Lisp) lt; } } return null; }
.readServiceFunctionForwarder(sfdpl.getServiceFunctionForwarder()).getSffDataPlaneLocator(); for (SffDataPlaneLocator sffdpl : listOfSffdpl) { SffDataPlaneLocatorName sffdplName = sffdpl.getName(); SffDataPlaneLocator1 sffdpl1 = sffdpl.getAugmentation(SffDataPlaneLocator1.class); OfsPort ofsPort = sffdpl1.getOfsPort(); if (sffdplName.getValue().toUpperCase().equals("INGRESS"))
/** * 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; }
/** * 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; }
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); }
/** * Builds a list of OvsdbTerminationPointAugmentation from a list of SffDataPlanLocators. * In other words, it transforms ServiceForwarder DataPlane locators to OVS TerminationPoints. * <p> * Built list of augmentations is intended to be written into Configuration Ovsdb DataStore * (network-topology/topology/ovsdb:1). * <p> * * @param sffDataPlaneLocatorList List<SffDataPlaneLocator> * @return List<OvsdbTerminationPointAugmentation> */ public static List<OvsdbTerminationPointAugmentation> buildTerminationPointAugmentationList( List<SffDataPlaneLocator> sffDataPlaneLocatorList) { Preconditions.checkNotNull(sffDataPlaneLocatorList, "Cannot build TerminationPointAugmentation, SffDataPlaneLocatorList is null."); List<OvsdbTerminationPointAugmentation> ovsdbTerminationPointList = new ArrayList<>(); for (SffDataPlaneLocator sffDataPlaneLocator : sffDataPlaneLocatorList) { OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder = new OvsdbTerminationPointAugmentationBuilder(); ovsdbTerminationPointBuilder.setName(sffDataPlaneLocator.getName().getValue()); ovsdbTerminationPointBuilder .setInterfaceType(getDataPlaneLocatorInterfaceType(sffDataPlaneLocator.getDataPlaneLocator())); List<Options> optionsList = getSffDataPlaneLocatorOptions(sffDataPlaneLocator); if (!optionsList.isEmpty()) { ovsdbTerminationPointBuilder.setOptions(optionsList); } ovsdbTerminationPointList.add(ovsdbTerminationPointBuilder.build()); } return ovsdbTerminationPointList; }
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; } }
LOG.debug("Deleted SffDataPlaneLocator: {}", sffDataPlaneLocator.getName()); ServiceFunctionForwarderKey sffKey = (ServiceFunctionForwarderKey) keyedInstanceIdentifier.getKey(); String sffNameAsString = sffKey.getName().getValue(); String sffDataPlaneLocatorNameAsString = sffDataPlaneLocator.getName().getValue();
sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class); if (sffDataPlaneLocatorOvsOptions != null) {
if (locator.getName().equals(locatorName)) { DataPlaneLocator dpLocator = locator.getDataPlaneLocator(); LOG.debug("Found for SFF {} the locator {}", sffName, dpLocator); if (dpLocator.getLocatorType() instanceof Ip) {
public boolean containsLispAddress(ServiceFunctionForwarder serviceFunctionForwarder) { List<SffDataPlaneLocator> locations = serviceFunctionForwarder.getSffDataPlaneLocator(); for (SffDataPlaneLocator location : locations) { if (location.getDataPlaneLocator().getLocatorType() instanceof Lisp) { return true; } } return false; }
sffSfDplBuilder.setSffDplName(sffBuilder.getSffDataPlaneLocator().get(0).getName()); sfdBuilder.setSffSfDataPlaneLocator(sffSfDplBuilder.build());
if (locator.getName().equals(locatorName)) { DataPlaneLocator dpLocator = locator.getDataPlaneLocator(); LOG.debug("Found for SFF {} the locator {}", sffName, dpLocator); if (dpLocator.getLocatorType() instanceof Ip) {
if ((sffDpl.getDataPlaneLocator() != null) && sffDpl.getDataPlaneLocator().getLocatorType() != null) { Class<? extends DataContainer> locatorType = sffDpl.getDataPlaneLocator().getLocatorType().getImplementedInterface(); if (locatorType.isAssignableFrom(Ip.class)) { Ip ipPortLocator = (Ip) sffDpl.getDataPlaneLocator().getLocatorType(); IpAddress ipAddress = new IpAddress(ipPortLocator.getIp().getValue()); ip = ipAddress;
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; } }
.readServiceFunctionForwarderDataPlaneLocator(sffName, sffLocatorName); if ((sffDataPlaneLocator != null) && (sffDataPlaneLocator.getDataPlaneLocator() != null) && (sffDataPlaneLocator.getDataPlaneLocator().getLocatorType() != null) && (sffDataPlaneLocator.getDataPlaneLocator().getLocatorType().getImplementedInterface() != null) && (sffDataPlaneLocator.getDataPlaneLocator() .getLocatorType() .getImplementedInterface() .getSimpleName() != null)) { String type = sffDataPlaneLocator.getDataPlaneLocator() .getLocatorType() .getImplementedInterface() break; case IP: Ip ipLocator = (Ip) sffDataPlaneLocator.getDataPlaneLocator().getLocatorType(); if (ipLocator.getIp() != null) { renderedServicePathFirstHopBuilder.setIp(ipLocator.getIp());