diff options
author | CNlucius <lukai1@huawei.com> | 2016-09-13 11:40:12 +0800 |
---|---|---|
committer | CNlucius <lukai1@huawei.com> | 2016-09-13 11:41:53 +0800 |
commit | b731e2f1dd0972409b136aebc7b463dd72c9cfad (patch) | |
tree | 5107d7d80c19ad8076c2c97c2b5ef8d1cf3ab903 /framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic | |
parent | ee93993458266114c29271a481ef9ce7ce621b2a (diff) |
ONOSFW-171
O/S-SFC-ONOS scenario documentation
Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365
Signed-off-by: CNlucius <lukai1@huawei.com>
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic')
9 files changed, 0 insertions, 831 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java deleted file mode 100644 index 45e85372..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.net.statistic; - -import com.google.common.base.MoreObjects; - -import static com.google.common.base.Preconditions.checkArgument; - -/** - * Implementation of a load. - */ -public class DefaultLoad implements Load { - - private final boolean isValid; - private final long current; - private final long previous; - private final long time; - private final long interval; - - /** - * Indicates the flow statistics poll interval in seconds. - */ - private static long pollInterval = 10; - - /** - * Creates an invalid load. - */ - public DefaultLoad() { - this.isValid = false; - this.time = System.currentTimeMillis(); - this.current = -1; - this.previous = -1; - this.interval = pollInterval; - } - - /** - * Creates a load value from the parameters. - * - * @param current the current value - * @param previous the previous value - */ - public DefaultLoad(long current, long previous) { - this(current, previous, pollInterval); - } - - /** - * Creates a load value from the parameters. - * - * @param current the current value - * @param previous the previous value - * @param interval poll interval for this load - */ - public DefaultLoad(long current, long previous, long interval) { - checkArgument(interval > 0, "Interval must be greater than 0"); - this.current = current; - this.previous = previous; - this.time = System.currentTimeMillis(); - this.isValid = true; - this.interval = interval; - } - - /** - * Sets the poll interval in seconds. Used solely for the purpose of - * computing the load. - * - * @param newPollInterval poll interval duration in seconds - */ - public static void setPollInterval(long newPollInterval) { - pollInterval = newPollInterval; - } - - @Override - public long rate() { - return (current - previous) / interval; - } - - @Override - public long latest() { - return current; - } - - @Override - public boolean isValid() { - return isValid; - } - - @Override - public long time() { - return time; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper("Load").add("rate", rate()) - .add("latest", latest()).toString(); - - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticService.java deleted file mode 100644 index 5216839e..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticService.java +++ /dev/null @@ -1,106 +0,0 @@ -/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.net.statistic;
-
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.Device;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.flow.TypedStoredFlowEntry;
-import org.onosproject.net.flow.instructions.Instruction;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Service for obtaining individual flow statistic information about device and link in the system.
- * Basic statistics are obtained from the StatisticService
- */
-public interface FlowStatisticService {
-
- /**
- * Obtain the summary load list for the device with the given link.
- *
- * @param device the Device to query.
- * @return map of summary flow entry load
- */
- Map<ConnectPoint, SummaryFlowEntryWithLoad> loadSummary(Device device);
-
- /**
- * Obtain the summary load for the device with the given link or port.
- *
- * @param device the Device to query.
- * @param pNumber the port number to query.
- * @return summary flow entry load
- */
- SummaryFlowEntryWithLoad loadSummary(Device device, PortNumber pNumber);
-
- /**
- * Obtain the set of the flow type and load list for the device with the given link.
- *
- * @param device the Device to query.
- * @param liveType the FlowLiveType to filter, null means no filtering .
- * @param instType the InstructionType to filter, null means no filtering.
- * @return map of flow entry load
- */
- Map<ConnectPoint, List<TypedFlowEntryWithLoad>> loadAllByType(Device device,
- TypedStoredFlowEntry.FlowLiveType liveType,
- Instruction.Type instType);
-
- /**
- * Obtain the flow type and load list for the device with the given link or port.
- *
- * @param device the Device to query.
- * @param pNumber the port number of the Device to query
- * @param liveType the FlowLiveType to filter, null means no filtering .
- * @param instType the InstructionType to filter, null means no filtering.
- * @return list of flow entry load
- */
- List<TypedFlowEntryWithLoad> loadAllByType(Device device, PortNumber pNumber,
- TypedStoredFlowEntry.FlowLiveType liveType,
- Instruction.Type instType);
-
- /**
- * Obtain the set of the flow type and load topn list for the device with the given link.
- *
- * @param device the Device to query.
- * @param liveType the FlowLiveType to filter, null means no filtering .
- * @param instType the InstructionType to filter, null means no filtering.
- * @param topn the top number to filter, null means no filtering.
- * @return map of flow entry load
- */
- Map<ConnectPoint, List<TypedFlowEntryWithLoad>> loadTopnByType(Device device,
- TypedStoredFlowEntry.FlowLiveType liveType,
- Instruction.Type instType,
- int topn);
-
- /**
- * Obtain the flow type and load topn list for the device with the given link or port.
- *
- * @param device the Device to query.
- * @param pNumber the port number of the Device to query
- * @param liveType the FlowLiveType to filter, null means no filtering .
- * @param instType the InstructionType to filter, null means no filtering.
- * @param topn topn //FIXME what?
- * @return list of flow entry load
- */
- List<TypedFlowEntryWithLoad> loadTopnByType(Device device, PortNumber pNumber,
- TypedStoredFlowEntry.FlowLiveType liveType,
- Instruction.Type instType,
- int topn);
-}
-
-
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java deleted file mode 100644 index 3c2aa89b..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java +++ /dev/null @@ -1,65 +0,0 @@ -/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.net.statistic;
-
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.flow.FlowEntry;
-import org.onosproject.net.flow.FlowRule;
-
-import java.util.Set;
-
-/**
- * Flow Store to house the computed statistics.
- */
-public interface FlowStatisticStore {
- /**
- * Remove entries associated with this rule.
- *
- * @param rule {@link org.onosproject.net.flow.FlowRule}
- */
- void removeFlowStatistic(FlowRule rule);
-
- /**
- * Adds a flow stats observation for a flow rule. The previous flow will be removed.
- *
- * @param rule a {@link org.onosproject.net.flow.FlowEntry}
- */
- void addFlowStatistic(FlowEntry rule);
-
- /**
- * Updates a stats observation for a flow rule. The old flow stats will be moved to previous stats.
- *
- * @param rule a {@link org.onosproject.net.flow.FlowEntry}
- */
- void updateFlowStatistic(FlowEntry rule);
-
- /**
- * Fetches the current observed flow stats values.
- *
- * @param connectPoint the port to fetch information for
- * @return set of current flow rules
- */
- Set<FlowEntry> getCurrentFlowStatistic(ConnectPoint connectPoint);
-
- /**
- * Fetches the current observed flow stats values.
- *
- * @param connectPoint the port to fetch information for
- * @return set of current values
- */
- Set<FlowEntry> getPreviousFlowStatistic(ConnectPoint connectPoint);
-}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/Load.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/Load.java deleted file mode 100644 index 38fed04e..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/Load.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.net.statistic; - -/** - * Simple data repository for link load information. - */ -public interface Load { - - /** - * Obtain the current observed rate (in bytes/s) on a link. - * - * @return long value - */ - long rate(); - - /** - * Obtain the latest bytes counter viewed on that link. - * - * @return long value - */ - long latest(); - - /** - * Indicates whether this load was built on valid values. - * - * @return boolean - */ - boolean isValid(); - - /** - * Returns when this value was seen. - * - * @return epoch time - */ - long time(); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java deleted file mode 100644 index b9f7cc91..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.net.statistic; - -import org.onosproject.core.ApplicationId; -import org.onosproject.core.GroupId; -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.Link; -import org.onosproject.net.Path; -import org.onosproject.net.flow.FlowRule; - -import java.util.Optional; - -/** - * Service for obtaining statistic information about link in the system. - * Statistics are obtained from the FlowRuleService in order to minimize the - * amount of hammering occuring at the dataplane. - */ -public interface StatisticService { - - /** - * Obtain the load for a the ingress to the given link. - * - * @param link the link to query. - * @return a {@link org.onosproject.net.statistic.Load Load} - */ - Load load(Link link); - - /** - * Obtain the load for the given port. - * - * @param connectPoint the port to query - * @return a {@link org.onosproject.net.statistic.Load} - */ - Load load(ConnectPoint connectPoint); - - /** - * Find the most loaded link along a path. - * - * @param path the path to search in - * @return the most loaded {@link org.onosproject.net.Link}. - */ - Link max(Path path); - - /** - * Find the least loaded link along a path. - * - * @param path the path to search in - * @return the least loaded {@link org.onosproject.net.Link}. - */ - Link min(Path path); - - /** - * Returns the highest hitter (a flow rule) for a given port, ie. the - * flow rule which is generating the most load. - * - * @param connectPoint the port - * @return the flow rule - */ - FlowRule highestHitter(ConnectPoint connectPoint); - - /** - * Obtain the load for a the ingress to the given link used by - * the specified application ID and group ID. - * - * @param link link to query - * @param appId application ID to filter with - * @param groupId group ID to filter with - * @return {@link Load Load} - */ - Load load(Link link, ApplicationId appId, Optional<GroupId> groupId); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java deleted file mode 100644 index 8566ef5b..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.net.statistic; - -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.flow.FlowEntry; -import org.onosproject.net.flow.FlowRule; - -import java.util.Set; - -/** - * Store to house the computed statistics. - */ -public interface StatisticStore { - - /** - * Lay the foundation for receiving flow stats for this rule. - * - * @param rule a {@link org.onosproject.net.flow.FlowRule} - */ - void prepareForStatistics(FlowRule rule); - - /** - * Remove entries associated with this rule. - * - * @param rule {@link org.onosproject.net.flow.FlowRule} - */ - void removeFromStatistics(FlowRule rule); - - /** - * Adds a stats observation for a flow rule. - * - * @param rule a {@link org.onosproject.net.flow.FlowEntry} - */ - void addOrUpdateStatistic(FlowEntry rule); - - /** - * Fetches the current observed stats values. - * - * @param connectPoint the port to fetch information for - * @return set of current flow rules - */ - Set<FlowEntry> getCurrentStatistic(ConnectPoint connectPoint); - - /** - * Fetches the current observed stats values. - * - * @param connectPoint the port to fetch information for - * @return set of current values - */ - Set<FlowEntry> getPreviousStatistic(ConnectPoint connectPoint); -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/SummaryFlowEntryWithLoad.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/SummaryFlowEntryWithLoad.java deleted file mode 100644 index 1ec427c0..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/SummaryFlowEntryWithLoad.java +++ /dev/null @@ -1,157 +0,0 @@ -/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.net.statistic;
-
-import org.onosproject.net.ConnectPoint;
-
-/**
- * Summary Load classified by flow live type.
- */
-public class SummaryFlowEntryWithLoad {
- private ConnectPoint cp;
- private Load totalLoad;
- private Load immediateLoad;
- private Load shortLoad;
- private Load midLoad;
- private Load longLoad;
- private Load unknownLoad;
-
- /**
- * Creates a new summary flow entry having load for the given connect point and total load.
- *
- * @param cp connect point
- * @param totalLoad total load
- */
- public SummaryFlowEntryWithLoad(ConnectPoint cp, Load totalLoad) {
- this.cp = cp;
- this.totalLoad = totalLoad;
- this.immediateLoad = new DefaultLoad();
- this.shortLoad = new DefaultLoad();
- this.midLoad = new DefaultLoad();
- this.longLoad = new DefaultLoad();
- this.unknownLoad = new DefaultLoad();
- }
-
- /**
- * Creates a new summary flow entry having load for the given connect point
- * and total, immediate, short, mid, and long load.
- *
- * @param cp connect point
- * @param totalLoad total load
- * @param immediateLoad immediate load
- * @param shortLoad short load
- * @param midLoad mid load
- * @param longLoad long load
- */
- public SummaryFlowEntryWithLoad(ConnectPoint cp,
- Load totalLoad, Load immediateLoad, Load shortLoad, Load midLoad, Load longLoad) {
- this.cp = cp;
- this.totalLoad = totalLoad;
- this.immediateLoad = immediateLoad;
- this.shortLoad = shortLoad;
- this.midLoad = midLoad;
- this.longLoad = longLoad;
- this.unknownLoad = new DefaultLoad();
- }
-
- /**
- * Creates a new summary flow entry having load for the given connect point
- * and total, immediate, short, mid, long, and unknown load.
- *
- * @param cp connect point
- * @param totalLoad total load
- * @param immediateLoad immediate load
- * @param shortLoad short load
- * @param midLoad mid load
- * @param longLoad long load
- * @param unknownLoad long load
- */
- public SummaryFlowEntryWithLoad(ConnectPoint cp,
- Load totalLoad, Load immediateLoad,
- Load shortLoad, Load midLoad, Load longLoad, Load unknownLoad) {
- this.cp = cp;
- this.totalLoad = totalLoad;
- this.immediateLoad = immediateLoad;
- this.shortLoad = shortLoad;
- this.midLoad = midLoad;
- this.longLoad = longLoad;
- this.unknownLoad = unknownLoad;
- }
-
- /**
- * Returns connect point.
- *
- * @return connect point
- */
- public ConnectPoint connectPoint() {
- return cp;
- }
-
- /**
- * Returns total load of connect point.
- *
- * @return total load
- */
- public Load totalLoad() {
- return totalLoad;
- }
-
- /**
- * Returns immediate load of connect point.
- *
- * @return immediate load
- */
- public Load immediateLoad() {
- return immediateLoad;
- }
-
- /**
- * Returns short load of connect point.
- *
- * @return short load
- */
- public Load shortLoad() {
- return shortLoad;
- }
-
- /**
- * Returns mid load of connect point.
- *
- * @return mid load
- */
- public Load midLoad() {
- return midLoad;
- }
-
- /**
- * Returns long load of connect point.
- *
- * @return long load
- */
- public Load longLoad() {
- return longLoad;
- }
-
- /**
- * Returns unknown load of connect point.
- *
- * @return unknown load
- */
- public Load unknownLoad() {
- return unknownLoad;
- }
-}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/TypedFlowEntryWithLoad.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/TypedFlowEntryWithLoad.java deleted file mode 100644 index a4cbd7d0..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/TypedFlowEntryWithLoad.java +++ /dev/null @@ -1,171 +0,0 @@ -/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.net.statistic;
-
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.flow.FlowEntry;
-import org.onosproject.net.flow.TypedStoredFlowEntry;
-import org.onosproject.net.flow.DefaultTypedFlowEntry;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Load of flow entry of flow live type.
- */
-public class TypedFlowEntryWithLoad {
- private ConnectPoint cp;
- private TypedStoredFlowEntry tfe;
- private Load load;
-
- //TODO: make this variables class, and share with NewAdaptivceFlowStatsCollector class
- private static final int CAL_AND_POLL_INTERVAL = 5; // means SHORT_POLL_INTERVAL
- private static final int MID_POLL_INTERVAL = 10;
- private static final int LONG_POLL_INTERVAL = 15;
-
- /**
- * Creates a new typed flow entry with load.
- *
- * @param cp connect point
- * @param tfe typed flow entry
- * @param load load
- */
- public TypedFlowEntryWithLoad(ConnectPoint cp, TypedStoredFlowEntry tfe, Load load) {
- this.cp = cp;
- this.tfe = tfe;
- this.load = load;
- }
-
- /**
- * Creates a new typed flow entry with load.
- *
- * @param cp connect point
- * @param tfe typed flow entry
- */
- public TypedFlowEntryWithLoad(ConnectPoint cp, TypedStoredFlowEntry tfe) {
- this.cp = cp;
- this.tfe = tfe;
- this.load = new DefaultLoad(tfe.bytes(), 0, typedPollInterval(tfe));
- }
-
- /**
- * Creates a new typed flow entry with load.
- *
- * @param cp connect point
- * @param fe flow entry
- */
- public TypedFlowEntryWithLoad(ConnectPoint cp, FlowEntry fe) {
- this.cp = cp;
- this.tfe = newTypedStoredFlowEntry(fe);
- this.load = new DefaultLoad(fe.bytes(), 0, typedPollInterval(this.tfe));
- }
-
- public ConnectPoint connectPoint() {
- return cp;
- }
- public TypedStoredFlowEntry typedStoredFlowEntry() {
- return tfe;
- }
- public Load load() {
- return load;
- }
- public void setLoad(Load load) {
- this.load = load;
- }
-
- /**
- * Returns short polling interval.
- *
- * @return short poll interval
- */
- public static int shortPollInterval() {
- return CAL_AND_POLL_INTERVAL;
- }
-
- /**
- * Returns mid polling interval.
- *
- * @return mid poll interval
- */
- public static int midPollInterval() {
- return MID_POLL_INTERVAL;
- }
-
- /**
- * Returns long polling interval.
- *
- * @return long poll interval
- */
- public static int longPollInterval() {
- return LONG_POLL_INTERVAL;
- }
-
- /**
- * Returns average polling interval.
- *
- * @return average poll interval
- */
- public static int avgPollInterval() {
- return (CAL_AND_POLL_INTERVAL + MID_POLL_INTERVAL + LONG_POLL_INTERVAL) / 3;
- }
-
- /**
- * Returns current typed flow entry's polling interval.
- *
- * @param tfe typed flow entry
- * @return typed poll interval
- */
- public static long typedPollInterval(TypedStoredFlowEntry tfe) {
- checkNotNull(tfe, "TypedStoredFlowEntry cannot be null");
-
- switch (tfe.flowLiveType()) {
- case LONG_FLOW:
- return LONG_POLL_INTERVAL;
- case MID_FLOW:
- return MID_POLL_INTERVAL;
- case SHORT_FLOW:
- case IMMEDIATE_FLOW:
- default:
- return CAL_AND_POLL_INTERVAL;
- }
- }
-
- /**
- * Creates a new typed flow entry with the given flow entry fe.
- *
- * @param fe flow entry
- * @return new typed flow entry
- */
- public static TypedStoredFlowEntry newTypedStoredFlowEntry(FlowEntry fe) {
- if (fe == null) {
- return null;
- }
-
- long life = fe.life();
-
- if (life >= LONG_POLL_INTERVAL) {
- return new DefaultTypedFlowEntry(fe, TypedStoredFlowEntry.FlowLiveType.LONG_FLOW);
- } else if (life >= MID_POLL_INTERVAL) {
- return new DefaultTypedFlowEntry(fe, TypedStoredFlowEntry.FlowLiveType.MID_FLOW);
- } else if (life >= CAL_AND_POLL_INTERVAL) {
- return new DefaultTypedFlowEntry(fe, TypedStoredFlowEntry.FlowLiveType.SHORT_FLOW);
- } else if (life >= 0) {
- return new DefaultTypedFlowEntry(fe, TypedStoredFlowEntry.FlowLiveType.IMMEDIATE_FLOW);
- } else { // life < 0
- return new DefaultTypedFlowEntry(fe, TypedStoredFlowEntry.FlowLiveType.UNKNOWN_FLOW);
- }
- }
-}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/package-info.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/package-info.java deleted file mode 100644 index 37889f3d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/statistic/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Service for looking up statistics on links. - */ -package org.onosproject.net.statistic; |