Committed by
Ray Milkey
fix calculation on event rate
Conflicts: providers/null/link/src/main/java/org/onosproject/provider/nil/link/impl/NullLinkProvider.java tools/package/etc/org.onosproject.provider.nil.link.impl.NullLinkProvider.cfg Change-Id: I955abaec4c3906441ada91d97ed30854a8ce44f8
Showing
2 changed files
with
33 additions
and
7 deletions
| ... | @@ -16,7 +16,6 @@ | ... | @@ -16,7 +16,6 @@ |
| 16 | package org.onosproject.provider.nil.link.impl; | 16 | package org.onosproject.provider.nil.link.impl; |
| 17 | 17 | ||
| 18 | import static com.google.common.base.Strings.isNullOrEmpty; | 18 | import static com.google.common.base.Strings.isNullOrEmpty; |
| 19 | -import static org.onlab.util.Tools.delay; | ||
| 20 | import static org.onlab.util.Tools.namedThreads; | 19 | import static org.onlab.util.Tools.namedThreads; |
| 21 | import static org.slf4j.LoggerFactory.getLogger; | 20 | import static org.slf4j.LoggerFactory.getLogger; |
| 22 | import static org.onlab.util.Tools.toHex; | 21 | import static org.onlab.util.Tools.toHex; |
| ... | @@ -112,6 +111,7 @@ public class NullLinkProvider extends AbstractProvider implements LinkProvider { | ... | @@ -112,6 +111,7 @@ public class NullLinkProvider extends AbstractProvider implements LinkProvider { |
| 112 | @Property(name = "eventRate", value = "0", | 111 | @Property(name = "eventRate", value = "0", |
| 113 | label = "Duration between Link Event") | 112 | label = "Duration between Link Event") |
| 114 | private int eventRate = DEFAULT_RATE; | 113 | private int eventRate = DEFAULT_RATE; |
| 114 | + private int checkRateDuration = 10; | ||
| 115 | 115 | ||
| 116 | // For flicker = true, duration between events in msec. | 116 | // For flicker = true, duration between events in msec. |
| 117 | @Property(name = "neighbors", value = "", | 117 | @Property(name = "neighbors", value = "", |
| ... | @@ -337,12 +337,36 @@ public class NullLinkProvider extends AbstractProvider implements LinkProvider { | ... | @@ -337,12 +337,36 @@ public class NullLinkProvider extends AbstractProvider implements LinkProvider { |
| 337 | 337 | ||
| 338 | @Override | 338 | @Override |
| 339 | public void run() { | 339 | public void run() { |
| 340 | + long startTime = System.currentTimeMillis(); | ||
| 341 | + long countEvent = 0; | ||
| 342 | + float effLoad = 0; | ||
| 343 | + | ||
| 340 | while (!linkDriver.isShutdown()) { | 344 | while (!linkDriver.isShutdown()) { |
| 341 | - for (LinkDescription desc : descriptions.values()) { | 345 | + |
| 342 | - providerService.linkVanished(desc); | 346 | + //Assuming eventRate is in microsecond unit |
| 343 | - delay(eventRate); | 347 | + if (countEvent <= checkRateDuration * 1000000 / eventRate) { |
| 344 | - providerService.linkDetected(desc); | 348 | + for (LinkDescription desc : descriptions.values()) { |
| 345 | - delay(eventRate); | 349 | + providerService.linkVanished(desc); |
| 350 | + countEvent++; | ||
| 351 | + try { | ||
| 352 | + TimeUnit.MICROSECONDS.sleep(eventRate); | ||
| 353 | + } catch (InterruptedException e) { | ||
| 354 | + log.warn(String.valueOf(e)); | ||
| 355 | + } | ||
| 356 | + providerService.linkDetected(desc); | ||
| 357 | + countEvent++; | ||
| 358 | + try { | ||
| 359 | + TimeUnit.MICROSECONDS.sleep(eventRate); | ||
| 360 | + } catch (InterruptedException e) { | ||
| 361 | + log.warn(String.valueOf(e)); | ||
| 362 | + } | ||
| 363 | + } | ||
| 364 | + } else { | ||
| 365 | + // log in WARN the effective load generation rate in events/sec, every 10 seconds | ||
| 366 | + effLoad = (float) (countEvent * 1000 / (System.currentTimeMillis() - startTime)); | ||
| 367 | + log.warn("Effective Loading is {} events/second", String.valueOf(effLoad)); | ||
| 368 | + countEvent = 0; | ||
| 369 | + startTime = System.currentTimeMillis(); | ||
| 346 | } | 370 | } |
| 347 | } | 371 | } |
| 348 | } | 372 | } | ... | ... |
| ... | @@ -4,7 +4,9 @@ | ... | @@ -4,7 +4,9 @@ |
| 4 | # If enabled, sets the time between LinkEvent generation, | 4 | # If enabled, sets the time between LinkEvent generation, |
| 5 | # in milliseconds. | 5 | # in milliseconds. |
| 6 | # | 6 | # |
| 7 | -# eventRate = 2000 | 7 | + |
| 8 | +#eventRate = 100000 | ||
| 9 | + | ||
| 8 | 10 | ||
| 9 | # | 11 | # |
| 10 | # Set order of islands to chain together, in a line. | 12 | # Set order of islands to chain together, in a line. | ... | ... |
-
Please register or login to post a comment