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; }
/** * 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; }
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; } }
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; }
public boolean containsLispAddress(ServiceFunctionForwarder serviceFunctionForwarder) { List<SffDataPlaneLocator> locations = serviceFunctionForwarder.getSffDataPlaneLocator(); for (SffDataPlaneLocator location : locations) { if (location.getDataPlaneLocator().getLocatorType() instanceof Lisp) { return true; } } return false; }
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; } }
/** * 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; }
.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());
for (SffDataPlaneLocator locator : locators) { if (locator.getName().equals(locatorName)) { DataPlaneLocator dpLocator = locator.getDataPlaneLocator(); LOG.debug("Found for SFF {} the locator {}", sffName, dpLocator); if (dpLocator.getLocatorType() instanceof Ip) {
for (SffDataPlaneLocator locator : locators) { if (locator.getName().equals(locatorName)) { DataPlaneLocator dpLocator = locator.getDataPlaneLocator(); LOG.debug("Found for SFF {} the locator {}", sffName, dpLocator); if (dpLocator.getLocatorType() instanceof Ip) {