/** * 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; }
/** * Creates a built OvsdbTerminationAugmentation with data. * @param uni The UNI's data * @return A Built OvsdbTerminationPointAugmentation with data */ public static OvsdbTerminationPointAugmentation createOvsdbTerminationPointAugmentation(Uni uni) { // we will use nodeId to set interface port id final VlanId vlanID = new VlanId(1); final OvsdbTerminationPointAugmentation terminationPoint = new OvsdbTerminationPointAugmentationBuilder() .setName(UnimgrConstants.DEFAULT_INTERNAL_IFACE) .setVlanTag(vlanID) .setVlanMode(VlanMode.Access) .build(); return terminationPoint; }
private void buildTerminationPoint(ReadWriteTransaction transaction, InstanceIdentifier<TerminationPoint> tpPath, OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder, Node node, Entry<UUID, Port> portUpdate) { tpAugmentationBuilder .setName(portUpdate.getValue().getName()); tpAugmentationBuilder.setPortUuid(new Uuid( portUpdate.getValue().getUuid().toString())); updatePort(transaction, node, tpPath, portUpdate, tpAugmentationBuilder); }
Long ofPort) { InstanceIdentifier<TerminationPoint> tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); tpAugmentationBuilder.setOfport(ofPort); if (type != null) { tpAugmentationBuilder.setInterfaceType(OVSDB_INTERFACE_TYPE_MAP.get(type)); optionsList.add(optionsBuilder.build()); tpAugmentationBuilder.setOptions(optionsList); externalIdsList.add(interfaceExternalIdsBuilder.build()); tpAugmentationBuilder.setInterfaceExternalIds(externalIdsList); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build());
public static void setPortBandwidthLimits(DataBroker db, OdlInterfaceRpcService odlInterfaceRpcService, Port port, BandwidthLimitRules bwLimit) { if (LOG.isTraceEnabled()) { LOG.trace("Setting bandwidth limits {} on Port {}", port, bwLimit); } BigInteger dpId = getDpnForInterface(odlInterfaceRpcService, port.getUuid().getValue()); if (dpId.equals(BigInteger.ZERO)) { LOG.info("DPN ID for interface {} not found", port.getUuid().getValue()); return; } OvsdbBridgeRef bridgeRefEntry = getBridgeRefEntryFromOperDS(dpId, db); Optional<Node> bridgeNode = MDSALUtil.read(LogicalDatastoreType.OPERATIONAL, bridgeRefEntry.getValue().firstIdentifierOf(Node.class), db); TerminationPoint tp = getTerminationPoint(bridgeNode.get(), port.getUuid().getValue()); OvsdbTerminationPointAugmentation ovsdbTp = tp.getAugmentation(OvsdbTerminationPointAugmentation.class); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(ovsdbTp.getName()); tpAugmentationBuilder.setIngressPolicingRate(bwLimit.getMaxKbps().longValue()); tpAugmentationBuilder.setIngressPolicingBurst(bwLimit.getMaxBurstKbps().longValue()); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(tp.getKey()); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); MDSALUtil.syncUpdate(db, LogicalDatastoreType.CONFIGURATION, InstanceIdentifier .create(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundUtils.OVSDB_TOPOLOGY_ID)) .child(Node.class, bridgeNode.get().getKey()) .child(TerminationPoint.class, new TerminationPointKey(tp.getKey())), tpBuilder.build()); }
/** * Add the port to the node, returns true on success. * * @param bridgeNode The target bridge node. * @param portName The name of the porrt. * @return true on success. */ private boolean addTerminationPoint(Node bridgeNode, String portName) { InstanceIdentifier<TerminationPoint> tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
getInstanceIdentifier(bridgeIid.get(), portUpdate.getValue()); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); buildTerminationPoint(transaction, tpPath, tpAugmentationBuilder, node, portUpdate); UUID interfaceUuid = (UUID)portUpdate.getValue().getInterfacesColumn().getData().toArray()[0]; interfaceOldRows.remove(interfaceUuid); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); if (portOldRows.containsKey(portUpdate.getKey()) && !portQosCleared(portUpdate)) { transaction.merge(LogicalDatastoreType.OPERATIONAL, tpBuilder.setTpId(tpKey.getTpId()); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); buildTerminationPoint(tpAugmentationBuilder, interfaceUpdate.getValue()); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); NodeId bridgeId = SouthboundMapper.createManagedNodeId(bridgeIid.get()); InstanceIdentifier<TerminationPoint> tpPath = InstanceIdentifier
private void buildTerminationPoint(OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder, Interface interfaceUpdate) { tpAugmentationBuilder .setName(interfaceUpdate.getName()); tpAugmentationBuilder.setInterfaceUuid(new Uuid( interfaceUpdate.getUuid().toString())); updateInterfaces(interfaceUpdate, tpAugmentationBuilder); }
private void updateInterface(final Interface interf, final String type, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { ovsdbTerminationPointBuilder.setInterfaceUuid( new Uuid(interf.getUuid().toString())); ovsdbTerminationPointBuilder.setInterfaceType( SouthboundMapper.createInterfaceType(type)); updateIfIndex(interf, ovsdbTerminationPointBuilder); updateOfPort(interf, ovsdbTerminationPointBuilder); updateOfPortRequest(interf, ovsdbTerminationPointBuilder); updateInterfaceExternalIds(interf, ovsdbTerminationPointBuilder); updateOptions(interf, ovsdbTerminationPointBuilder); updateInterfaceOtherConfig(interf, ovsdbTerminationPointBuilder); updateInterfaceLldp(interf, ovsdbTerminationPointBuilder); updateInterfaceBfd(interf, ovsdbTerminationPointBuilder); updateInterfaceBfdStatus(interf, ovsdbTerminationPointBuilder); updateInterfacePolicing(interf, ovsdbTerminationPointBuilder); }
private void updateOptions(final Interface interf, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { Map<String, String> optionsMap = interf.getOptionsColumn().getData(); if (optionsMap != null && !optionsMap.isEmpty()) { List<Options> options = new ArrayList<>(); String optionsValueString; OptionsKey optionsKey; for (String optionsKeyString : optionsMap.keySet()) { optionsValueString = optionsMap.get(optionsKeyString); if (optionsKeyString != null && optionsValueString != null) { optionsKey = new OptionsKey(optionsKeyString); options.add(new OptionsBuilder() .setKey(optionsKey) .setValue(optionsValueString).build()); } } ovsdbTerminationPointBuilder.setOptions(options); } }
private void updateInterfacePolicing(final Interface interf, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { Long ingressPolicingRate = null; if (interf.getIngressPolicingRateColumn() != null) { ingressPolicingRate = interf.getIngressPolicingRateColumn().getData(); } if (ingressPolicingRate != null) { if (ingressPolicingRate >= 0) { ovsdbTerminationPointBuilder .setIngressPolicingRate(ingressPolicingRate); } else { LOG.debug("Received negative value for ingressPolicingRate from ovsdb for {} {}", interf.getName(),ingressPolicingRate); } } Long ingressPolicingBurst = null; if (interf.getIngressPolicingBurstColumn() != null) { ingressPolicingBurst = interf.getIngressPolicingBurstColumn().getData(); } if (ingressPolicingBurst != null) { if (ingressPolicingBurst >= 0) { ovsdbTerminationPointBuilder .setIngressPolicingBurst(ingressPolicingBurst); } else { LOG.debug("Received negative value for ingressPolicingBurst from ovsdb for {} {}", interf.getName(),ingressPolicingBurst); } } }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type) { InstanceIdentifier<TerminationPoint> tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(OVSDB_INTERFACE_TYPE_MAP.get(type)); } TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type) { InstanceIdentifier<TerminationPoint> tpIid = MdsalHelper.createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(MdsalHelper.OVSDB_INTERFACE_TYPE_MAP.get(type)); } TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type) { InstanceIdentifier<TerminationPoint> tpIid = MdsalHelper.createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(MdsalHelper.OVSDB_INTERFACE_TYPE_MAP.get(type)); } TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type, Map<String, String> options) { InstanceIdentifier<TerminationPoint> tpIid = MdsalHelper.createTerminationPointInstanceIdentifier( bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(MdsalHelper.OVSDB_INTERFACE_TYPE_MAP.get(type)); } List<Options> optionsList = new ArrayList<>(); for (Map.Entry<String, String> entry : options.entrySet()) { OptionsBuilder optionsBuilder = new OptionsBuilder(); optionsBuilder.setKey(new OptionsKey(entry.getKey())); optionsBuilder.setOption(entry.getKey()); optionsBuilder.setValue(entry.getValue()); optionsList.add(optionsBuilder.build()); } tpAugmentationBuilder.setOptions(optionsList); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); /* TODO SB_MIGRATION should this be merge or mdsalUtils.put */ return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type, Map<String, String> options) { InstanceIdentifier<TerminationPoint> tpIid = createTerminationPointInstanceIdentifier( bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(OVSDB_INTERFACE_TYPE_MAP.get(type)); } List<Options> optionsList = new ArrayList<>(); for (Map.Entry<String, String> entry : options.entrySet()) { OptionsBuilder optionsBuilder = new OptionsBuilder(); optionsBuilder.setKey(new OptionsKey(entry.getKey())); optionsBuilder.setOption(entry.getKey()); optionsBuilder.setValue(entry.getValue()); optionsList.add(optionsBuilder.build()); } tpAugmentationBuilder.setOptions(optionsList); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); /* TODO SB_MIGRATION should this be merge or mdsalUtils.put */ return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type, Map<String, String> options) { InstanceIdentifier<TerminationPoint> tpIid = MdsalHelper.createTerminationPointInstanceIdentifier( bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(MdsalHelper.OVSDB_INTERFACE_TYPE_MAP.get(type)); } List<Options> optionsList = new ArrayList<>(); for (Map.Entry<String, String> entry : options.entrySet()) { OptionsBuilder optionsBuilder = new OptionsBuilder(); optionsBuilder.setKey(new OptionsKey(entry.getKey())); optionsBuilder.setOption(entry.getKey()); optionsBuilder.setValue(entry.getValue()); optionsList.add(optionsBuilder.build()); } tpAugmentationBuilder.setOptions(optionsList); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); /* TODO SB_MIGRATION should this be merge or mdsalUtils.put */ return mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, tpIid, tpBuilder.build()); }
portName); final OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); tpAugmentationBuilder.setInterfaceType(null); if (uni.getSpeed() != null) { final Uuid qosUuid = getQosUuid(dataBroker, uni); tpAugmentationBuilder.setQos(getQosUuid(dataBroker, uni)); LOG.info("Updating Qos {} to termination point {}", qosUuid , bridgeName); tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid)); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); transaction.put(LogicalDatastoreType.CONFIGURATION,
portName); final OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); if (type != null) { tpAugmentationBuilder.setInterfaceType(SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.get(type)); tpAugmentationBuilder.build()); final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); transaction.put(LogicalDatastoreType.CONFIGURATION,
portName); final OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpAugmentationBuilder.setName(portName); final ArrayList<Options> options = Lists.newArrayList(); final OptionsKey optionKey = new OptionsKey("remote_ip"); .build(); options.add(destinationIp); tpAugmentationBuilder.setOptions(options); tpAugmentationBuilder.setInterfaceType(SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.get("gre")); if (source.getSpeed() != null) { final Uuid qosUuid = getQosUuid(dataBroker, source); tpAugmentationBuilder.setQos(getQosUuid(dataBroker, source)); LOG.info("Updating Qos {} to termination point {}", qosUuid , bridgeName); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); transaction.put(LogicalDatastoreType.CONFIGURATION,