diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java index e962110c..ed807b8f 100644 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java +++ b/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicLinkConfig.java @@ -15,22 +15,32 @@ */ package org.onosproject.net.config.basics; +import com.fasterxml.jackson.databind.JsonNode; import org.onosproject.net.Link; import org.onosproject.net.LinkKey; -import com.fasterxml.jackson.databind.JsonNode; import java.time.Duration; +import static org.onosproject.net.config.Config.FieldPresence.OPTIONAL; + /** * Basic configuration for network infrastructure link. */ public class BasicLinkConfig extends AllowedEntityConfig<LinkKey> { public static final String TYPE = "type"; + public static final String METRIC = "metric"; public static final String LATENCY = "latency"; public static final String BANDWIDTH = "bandwidth"; public static final String IS_DURABLE = "durable"; + @Override + public boolean isValid() { + return hasOnlyFields(TYPE, METRIC, LATENCY, BANDWIDTH, IS_DURABLE) && + isNumber(METRIC, OPTIONAL) && isNumber(LATENCY, OPTIONAL) && + isNumber(BANDWIDTH, OPTIONAL); + } + /** * Returns the link type. * @@ -51,6 +61,27 @@ public class BasicLinkConfig extends AllowedEntityConfig<LinkKey> { } /** + * Returns link metric value for use by + * {@link org.onosproject.net.topology.MetricLinkWeight} function. + * + * @return link metric; -1 if not set + */ + public double metric() { + return get(METRIC, -1); + } + + /** + * Sets the link metric for use by + * {@link org.onosproject.net.topology.MetricLinkWeight} function. + * + * @param metric new metric; null to clear + * @return self + */ + public BasicLinkConfig metric(Double metric) { + return (BasicLinkConfig) setOrClear(METRIC, metric); + } + + /** * Returns link latency in terms of nanos. * * @return link latency; -1 if not set |