Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
496 lines (459 sloc) 32.1 KB
DNC v2.6.0 (2019-Jun-17)
* Added the Arrival Bounds Cache.
* Added the Unique Linear Program (ULP) analysis.
* Modularized Bound Computation backend.
* Rename Analysis* to TandemAnalysis* (see Github issue #76 for background).
DNC v2.5.2 (2019-May-11)
* The NetCal Num Backend is now in the Maven Central Repository, not bundled anymore.
* The Analysis interface lists all methods found in AbstractAnalysis.
* Server backlog cap for output burstiness implementation only works for affine curves and PBOO.
It now verbosely states this in case of an incompatible analysis configuration.
* Other small cleanups in various places, updated submodules.
DNC v2.5.1 (2019-Mar-29)
* Removal of duplicate arrival bounds was replaced with their convolution.
* Maven can now run the functional tests properly.
* Simplifications of the affine curve code to make use of the shape assumptions.
* Move configuration flag for checks to where they belong (specific algebra, bounds, or curves implementation).
* The Readme was updated. It provides the minimal steps to set up Eclipse for development.
* Various small typo fixes, dependency updates, infrastructure updates.
Changes in the DNC v2.5.0 (2019-Jan-29)
Rebranding to DNC
- Packages are prefixed org.networkcalculus.dnc.
- Repository names/prefixes were reduced to DNC.
* There is now a highest-level Calculator class instead of CalculatorConfig for configurations that cannot be changed at runtime.
- It also hold a member variable for the algebraic DNC backend and we included presets for using either affine or piecewise affine curves.
* We moved and renamed many classes to better reflect the current state of DNC.
- "dnc", when not used in "discodnc", was renamed to "disco" to better reflect the code's origin.
- The package "minplus" was renamed to the more general "algebra" and disco's implementations for affine an piecewise affine curves were split up.
- The packages of in network were moved to network.server_graph and renamed to clarify that we work wit the turn model, not the big switch model
- Network was renamed to ServerGraph, NetworkFactory to ServerGraphFactory, Link to Turn.
- Package "nc" was split up and renamed to feedforward, tandem and sinktree, respectively. Class naming was improved to catch up with DNC theory.
- PbooArrivalBound_Concatenation -> AggregatePboo_Concatenation, PbooArrivalBound_PerHop -> AggregatePboo_PerServer
- PmooArrivalBound -> AggregatePmoo
- TandemMatchingArrivalBound -> AggregateTandemMatching
- PmooArrivalBound_SinkTreeTbRl -> SinkTree_AffineCurves
- Gamma -- the Maximum Service Curve
- Renamed to (variations of) MaxSC and MaxScRate.
- Global use of either is now called enforcement as it overrides the server-local setting correctly.
- Multiplexing: Clarified naming of the multiplexing discipline and globally enforced behavior.
* Code paths for affine and piecewise affine curves were better separated.
* Functional tests, experiments and MPA RTC curve backend moved into git submodules.
Other changes and additions:
* Major overhaul of our pom.xml Maven build configuration.
- The mpa rtc jar will be automatically downloaded and unpacked.
* ArrivalCurve createUnboundedArrivals() is now ArrivalCurve createInfiniteArrivals().
* Left-over Service: the indeterminate form resulting from subtracting infinite arrivals from infinite service will return zero service.
* Improvements, fixes and documentation improvements.
v2.4.4 "Chimera" (2018-Oct-16)
* Num interface and its implementations:
- Major code refactoring and cleanup.
- Epsilons (for rounding purposes) are no longer included.
- Code trying to consider the machine epsilon in every operation was removed after a thorough review revealed bugs.
* Functional tests:
- Test results now also hold the required epsilons for individual test cases.
* PwAffine Curves and implementations:
- Refactored code handling discontinuities (used with token bucket arrival curves).
- No usage of a machine epsilon required anymore.
* Convolution: Replace cast from ServiceCurve to Curve by creating a proper ArrivalCurve for unbounded arrivals.
* Performance improvement for getSourceFlowArrivalCurve in case there is only a single such flow.
* Remove unnecessary cast from Num to Num when bounding backlogs.
* Code cleanups.
v2.4.3 "Chimera" (2018-Aug-03)
* Fixed Bug #31: Computation of infinite output bound due to stability constraint violation.
* Improved shifting of curves (horizontal and vertical).
* SFA tandem analysis: Shortcut in case there is no interference by other flows.
* Comment cleanups and improvements.
v2.4.2 "Chimera" (2018-Jul-04)
* Tandem Matching Analysis and Arrival Bound added
* SFA and PbooArrivalBounds:
- Improved structure, reliability and performance.
- Single, static SFA tandem analysis for SFA and PBOO ABs.
* Rational Num implementations gained a getValue function returning a new instance of the Math3 object in their backend.
* Minor Javadocs and comment improvements.
v2.4.1 "Chimera" (2018-May-07)
* Tests
- They now correctly consider the configures Curve and Num implementation (GitHub Issue #1).
- Each test only works with a single instance of its respective network instead of creating one per test config.
- We use external method sources to not forcibly change configs to comply with PMOO's restriction to arbitrary multiplexing.
- Expected test results are were moved to separate classes.
* Added a class with presets with most common flow of interest analysis and arrival bounding configurations
for algebraic compositional feed-forward analysis (compFFA):
- Demo4 uses the presets instead of analyses instances implicitly using the defailt configuration.
* Our current TFA AB burst reduction implementation is only applicable to TB arrivals.
- We now skip reducing the reduction for arrival curves with >2 segments.
* Network: You can now get a flow by its ID.
* SeparateFlowAnalysis: Do not rely on an exception to identify path's source server.
* Improved pom.xml.
* Code and comment cleanups.
- Rename location of interference, loi, to server of interference, soi, to prevent confusion with potential link of interference.
v2.4.0 "Chimera" (2018-Mar-18)
* Maven build system
- Reworked the source folders to src/main/java and src/test/java.
- Added pom.xml
- Attention: You need to add the MPA toolbox manually:
- download it at
- unzip it, and put the file RTCToolbox/rtc/rtc.jar into the DiscoDNC's lib folder.
- Removed Ant files
* New domain
- Includes a new webpage.
- Package prefixes have been renamed to de.uni_kl.cs.discondc.
* All the changes of betas 1 to 4.
- Attention: Although all tests succeed with the rtc curve backend, it is considered a beta feature.
* Static analysis update: switched from obsolete FindBugs to its successor SpotBugs.
* Reworked storing a network to the file system.
* Removed broken OutputTest.
* Code cleanups.
- Moved preliminary code to dispatch to different DNC bounding implementations to comments.
v2.4.0beta4 "Chimera" (2017-Dec-23)
* Attention: The DiscoDNC does not yet fully work with Java 9. Compiler compliance level 1.8 is required.
- Thanks to Zoltán Mátyás for pointing this out.
* Tests are all ported to JUnit5.
* Check the classpath for rtc.jar instead of using a hardcoded location (patch by Zoltán Mátyás).
* DNC bounds derived from two curves (i.e., other than arrival bound algorithms)
- package renamed from to
- Computations (Backlog, Delay, LeftOverService and Output) are called via a dispatcher,
- Name simplifications: drop "Bound" suffix for Backlog, Delay, and Output classes.
* Method cleanups in curve classes. Code improvements apply to the DNC implementation:
- Renamed auto-generated method names that started with "isIs" or "isHas" and removed underscores from these method names.
- Rate latencies: merged getRL_Property() into isRateLateny(); renamed setRL_Property() to setRateLateny().
- Token buckets: merged getTB_Property() into isTokenBucket(); renamed setTB_Property() to setTokenBucket().
- getDelayedInfiniteBurst_Property renamed to isDelayedInfiniteBurst.
- Merged getTB_Burst into getBurst.
- Created a rate-latency optimized code path for getLatenty(), similar to getBurst().
* Comments and JavaDocs cleanups, various stability and performance improvements.
v2.4.0beta3 "Chimera" (2017-Sep-01)
Simplifications to the code structure for streamlined use. This work requires Java 8+ as it relies on static methods in interfaces.
* CalculatorConfig singleton: fix execution of all tests, run time back to previous level.
* Split into three parts:
- The Analysis interface that also provides static methods for simple execution of analyses.
- The abstract class AbstractAnalysis holds member variables for the network, the configurations and the results.
All analyses in extend AbstractAnalysis and implement Analysis.
* Split into three parts:
- The minimal ArrivalBound interface.
- The abstract class ArrivalBoundDispatch that applies the configured arrival boundings.
- The abstract class AbstractArrivalBound holds member variables for the network and the configurations.
All arrival bounds in extend AbstractArrivalBound, all but the sink-tree version also implement ArrivalBound.
- Reworked the arrival bound dispatcher to reuse a single object per arrival bound alternative instead of creating a new one for every call.
* Merge Interface, Factory and Utils classes where possible:
- CurvePwAffine, incl. DNC and MPA_RTC Curves.
- LinearSegments.
- Num and all its implementations.
* Disco (min,+)-algebraic operations:
- Moved to new package de.uni_kl.cs.disco.minplus.dnc
- All convolutions and deconvolutions are called via a dispatcher,
- Extension to manipulate MPA RTC curves with their native operations is not yet tested.
* CurvePwAffineUtilsDispatch was not a dispatcher but an utils class:
- Renamed to CurvePwAffineUtils.
- Made it an abstract class.
* LinearSegmentFactoryDispatch is not dispatching but a factory itself; renamed to LinearSegmentFactory.
* Merge of MinPlusInputChecks and MinPlusDispatch to MinPlus.
v2.4.0beta2 "Chimera" (2017-Aug-17)
* Interface and Dispatcher naming: interfaces do not have a suffix, dispatchers now suffixed with "Dispatch".
- CurvePwAffineFactory renamed to CurvePwAffineFactoryDispatch
- CurvePwAffineFactoryInterface renamed to CurvePwAffineFactory
- CurvePwAffineUtils renamed to CurvePwAffineUtilsDispatch
- LinearSegmentFactory renamed to LinearSegmentFactoryDispatch
- NumFactory renamed to NumFactoryDispatch
- NumFactoryInterface renamed to NumFactory
- NumUtils renamed to NumUtilsDispatch
- NumUtilsInterface renamed to NumUtils
* Dispatch classes are all abstract now.
* Renamed OperatorInputChecks to MinPlusInputChecks.
* Made LinearSegmentUtils an abstract class (it only provides static methods).
* Reworked to singleton pattern (improves tests run time considerably).
v2.4.0beta1 "Chimera" (2017-Aug-02)
* An alternative curve backend for the DiscoDNC analyses:
This release wraps the MPA RTC Toolbox's curve implementation to be used with the DiscoDNC. It continues the work presented at ECRTS 2017:
Philipp Schon and Steffen Bondorf, Towards Unified Tool Support for Real-time Calculus & Deterministic Network Calculus.
The required MPA RTC library is available at
* Package naming now complies with the Java rules. Our domain translates to the package prefix de.uni_kl.cs.disco.
v2.3.5 "Centaur" (2017-Jun-25)
- Reduced amount of arrival curve copies.
- SaveAs won't fail if the directory already exists.
- Reduced visibility of delay and backlog bound variables from public to protected.
- Get methods are public, set are protected (and overwritten by extending classes) so they are only accessed by the respective analysis.
* Catch and print potential exceptions thrown when loading and instantiating the just compiled test network class.
* Test documentation 2.0beta2
- Update to new file naming scheme (see v2.3.3 changes).
- Sources: LyX files updated to version 508 (requires LyX 2.2+).
v2.3.4 "Centaur" (2017-May-19)
* Added Flow Prolongation to the PMOO Analysis (but not the functional tests). See:
Better Bounds by Worse Assumptions – Improving Network Calculus Accuracy by Adding Pessimism to the Network Model
(Steffen Bondorf), In Proceedings of the IEEE International Conference on Communications (ICC 2017), May 2017.
* DncTestResults: Added missing copyright header.
v2.3.3 "Centaur" (2017-Apr-22)
* Analysis Result: Removed obsolete flag "succeeded".
* Enum Multiplexing was moved from Server to AnalysisConfig.
* InNetwork was renamed to NetworkFactory as well as extended for this purpose.
*, convolve_SC_SC_RLs: Fix for the case that two rate-latency service curves should be convolved, yet, two null objects are given.
* FunctionalTests, renamed to DncTests:
- New naming scheme including more information.
- Separated networks from the tests and expected results.
- Reduced complexity of individual tests classes by moving code to the super class DncTest.
- Replaced System.out.println( e.toString() ) with e.printStackTrace().
- Converted the output test to a JUnit test automatically compiling the generated class.
- Performance improvements.
v2.3.2 "Centaur" (2017-Mar-13)
* Advanced the structure of package (sub-)packages for analyses, arrivalBounds and operations.
* New class in providing the DNC output bound computation (reduces code duplication).
* LeftOverService: A generic compute(...) method dispatches according to the analysis configuratoin's multiplexing flag. Used in SFA and PbooAB.
* Fix: PBOO Arrival Bounding with per-hop left-over service now uses each server's max SC instead of an overly pessimistic entire common path's one.
* Fix: PMOO Arrival Bounding's shortcut for single-hop subpaths was actually dead code before.
* Added findbugs library.
v2.3.1 "Centaur" (2017-Feb-28)
* Evolved the factory pattern for Num implementations to a (kind of) abstract factory pattern for simplified code and improved extensibility.
* Package minplus: Improved stability by handling distorted input (null or empty sets).
* Deconvolution: Renamed private method deconvolveGeneric to deconvolve_mTB_mRL to better reflect its capabilities.
v2.3.0 "Centaur" (2017-Jan-11)
* Rework of the number abstraction layer in unikl.disco.numbers:
The DiscoDNC is now built on a factory pattern with four implementations -- the lower body and the four legs of our new Centaur release.
- is now an interface to be implemented by the actual number representations in unikl.disco.numbers.implementations.
- provides methods to create a number, takes care of the representation given in the CalculatorConfig.
- provides methods to work with objects implementing the Num interface.
- unikl.disco.numbers.implementations provides four implementations:
- Real numbers with single precision or double precision.
- Both provide a flag to account for potential rounding errors when comparing numbers (comparison_epsilon).
- Rational numbers based on Integer or BigInteger (requires Apache Commons Math 3 and special values in unikl.disco.numbers.values).
* Improvements for convolution involving \delta_T.
* Functional Tests: Further streamlined test configuration generation.
* isBurstDelay() was removed, functionality is provided by isDelayedInfiniteBurst() since version 2.2.7.
* Fixed getting a server by its ID (had an offset of +1 before).
* Removed methods that were deprecated in v2.2.
* Renamed createNullPath to createEmptyPath.
* Updated the output tests (also serves as the demo for saving a network and reusing it).
* Better distinction between number zero and null objects:
- Renamed *null{Segment,Curve,ArrivalCurve,ServiceCurve,MaxServiceCurve}* to *zero{Segment,Curve,ArrivalCurve,ServiceCurve,MaxServiceCurve} *
- Convolution of an arrival curve with a null object now returns the arrival curve instead of a zeroArrival curve.
* NUM_CLASS is now only accessible via get and set.
* Various fixes , performance improvements (e.g., suggested by Coverity Scan and FindBugs), reduced code duplication, improved parameter naming, etc.
v2.2.8 "Heavy Ion" (2016-Dec-06)
* Fixed bugs concerning the delay and backlog bounding with \delta_T, T>0, service curves (delayed infinite burst).
* Improved JavaDocs for use_gamma and use_extra_gamma
Thanks to Mathias Kreider from the GSI Helmholtz Centre for Heavy Ion Research for reporting these bugs. This release was code named "Heavy Ion".
v2.2.7 "Hydra" (2016-Nov-17)
* Fixed a bug when convolving \delta_T with T>0 (delayed infinite burst).
- is_zero_delay_infinite_burst was replaced by the more general is_delayed_infinite_burst.
- Visibility was restricted, reading the value is enabled by isDelayedInfiniteBurst().
* Constructors that accept primitive double arguments were added.
* FunctionalTests:
- Streamlined test config generation.
- assertEquals based on double values now considers the internal number representation's rounding error safety margin epsilon.
v2.2.6 "Hydra" (2016-Mar-31)
* Added the arrival bound burstiness reduction of the MMB & DFT 2016 paper
"Improving Cross-Traffic Bounds in Feed-Forward Networks - There is a Job for Everyone".
It can be switched on in the analysis configuration by setting the flag ab_consider_tfa_nodeBacklog to true.
* Apache Commons Math version updated to 3.6.1.
v2.2.5 "Hydra" (2015-Sep-29)
* Fixed deconvolution for delivering too optimistic results for some combinations of multi token buckets and multi rate latencies. Remember: The DiscoDNC is only tested for token-bucket arrivals and rate-latency service. Any other offering will is best effort. Please report encountered bugs.
* Curves: Creating a curve with specified segments count: All but the first segment will be leftopen.
* Changed constructor visibility in NumDouble from protected to public.
* Demo4: Removed unused server and link.
v2.2.4 "Hydra" (2015-Aug-15)
* ArrivalCurve: Performance improvement computing an arrival curve's burst.
* Network: Increased robustness against potential null pointers.
* JavaDocs cleanup: Existing documentation can now be compiled without any warnings or errors.
* Unified function names: {create,initialize}BurstDelay renamed to {create,initialize}DelayedInfiniteBurst.
* Reduced code duplication.
* Curves: Deprecated unused functions for later removal and easier maintenance.
* Ant build script to generate the DiscoDNC library.
* Minor cleanups, better variable naming and other improvements.
v2.2.3 "Hydra" (2015-Jul-11)
* Removal of the arrival bounding with the output arrival curve (PbooArrivalBound_Output_PerHop). Besides being deprecated since v2.0.0, it was broken by now.
* The rejoining flows fix has been improved.
* AnalysisResults classes used for internal storage of results have been moved into
* now offers convenient static methods to start an analysis that return an object of the respective analysis.
* Minor improvements to comments.
* Functional Test Documentation: Layout bug in FeedForward.pdf fixed.
v2.2.2 "Hydra" (2015-Jul-02)
* Bugfix: Arrival bounding of flows at the servers they rejoin the flow of interest was fixed.
* NumDouble: Improved stability by catching double rounding error preventing a subtraction to result in exactly 0.
* PmooAnalysis: Improved checking the stability constraint and returning a null service curve if violated. Thanks to Paul Nikolaus for pointing out potential problems with the previous version.
* Convolution: Added a shortcut for the case that at least one of the service curves to convolve is zero.
* Curve.getTBBurst() now correctly handles rate functions.
* Network: Stability improvements.
* Demos: Code cleanups and simplifications.
* Functional tests: FeedForward test documentation was updated to version 2.0beta.
v2.2.1 "Hydra" (2015-Jun-15)
* Bugfix: Deconvolution with the zero delay, infinite burst-service curve (delta_0) always yielded delta_0 as result. Thanks to Fabien Geyer for discovering this bug.
* Added functions de-/convolving sets of curves.
* Improved saving of large networks (see unikl.disco.tests.output.TestNetwork):
- Functions creating serves, links and flows have been split up to be smaller than 65536 bytes.
- Remaining problem for large networks: Constant pool (i.e., total amount of servers, links, flows) exceeding 65536 entries results in a failure.
* Minor clean ups and efficiency improvements.
v2.2.0 "Hydra" (2015-May-15)
* This is the first version checked with Coverity Scan (incl. FindBugs). We fixed all the uncovered performance issues and now pass the checks with 0 defects.
* Reworked the Num classes in order to allow switching the number representation with a flag in CalculatorConfig (see below):
- Num is now an abstract class that coordinates creation of and calls to the right number representation.
* CalculatorConfig: New flag NUM_CLASS to set the internal number representation:
- Replaces previous need to copy the respective classes content of Num.
- Be careful: Switching the number representation while the calculator is running will result in casting exceptions!
* Package structure: All number related classes have been moved to unikl.disco.numbers.
* Num_Fraction:
- Adapted structure to Num_double, i.e., it now holds a Fraction object instead of extending Fraction.
- Check for special value representation (infinity, NaN) is now done once at creation time instead of on demand before every operation.
- Rewrote some operators to use Fraction's functionality more.
* Functional tests now run with both number classes each.
**: Reworked the to*String methods to remove dependency on the static calculator configuration.
* Dependencies:
- Java 8 is now strictly required: We call static hash code functionality on Double, Boolean, and maybe others.
- Apache Commons Math:
- Update of bundled version to 3.5.
- It is not a hard dependency anymore.
- hamcrest-core 1.3 was updated to java-hamcrest
* Bugfix in PmooArrivalBound's shortcut for cross-traffic tandems of a single hop (not spotted by functional tests).
* Bugfix in Network's createPath for single hop paths.
* Bugfix for per-flow arrival boundings restoring tightness of results (correctness was not compromised).
* Various performance and stability improvements.
v2.1.1 "Hydra" (2015-Mar-23)
* Network:
- Version in SaveAs output changed to 2.1.
- Added numLinks() and numFlows().
- Added a copy() function returning a deep copy.
* Analysis classes:
- getServerAlphasMapString() returns readable version of the map.
- TbRl specific de-/convolution setting is now taken into account correctly.
- Rework to use a results object internally.
* Arrival bounding:
- In case of no left-over service, a zero delay infinite burst arrival curve will be returned instead of raising an exception.
- Improved sanity checks.
- TbRl specific de-/convolution setting is now taken into account correctly.
- Sub-classes of ArrivalBound do not call its static functions anymore.
* Deconvolution: Removed unused functions.
* Functional tests: Test names now include the test configuration, i.e., the output of FunctionalTestConfig's toString().
* Dependencies: Apache Commons Math as now a hard dependency.
* Obsolete class was removed.
* Various minor improvements.
v2.1.0 "Hydra" (2015-Feb-25)
* Notable API break (non-exhaustive list)
- performAnalysisOnPath, performEnd2EndAnalysis -> performAnalysis (path determined by input parameters)
- createBurstDelay -> createDelayedInfiniteBurst, createZeroDelayBurst -> createZeroDelayInfiniteBurst
* INFOCOM 2015 SensorNC paper results
- Efficient PMOO cross-traffic arrival bounds in sink trees with token bucket arrivals and rate-latency service curves.
* Configuring the calculator has been reworked
- AnalysisConfig holds all parameters relevant to an analysis and its arrival bounding. It is instantiated and handed to the analysis.
- CalculatorConfig holds static flags for enabling internal checks during the computation etc.
- FunctionalTestConfig extends AnalysisConfig by additional parameters tested.
* New class for almost concave maximum service curves (MaxServiceCurve).
* Network: Improved saving of big networks. Previously the output easily exceeded Java's 64KB method size limit.
- SaveAs and toString now produce different outputs: reusable code and simple string representation.
- The code output of SaveAs now produces distinct methods for adding servers, links, and flows to the network.
- toString methods of network components was also improved.
- Added a test package with three simple classes for the new saving code.
* Curve: Removed unused methods.
* Functional Tests:
- Removed maximum service curve. Neither is it included in the documentation not did it have any influence.
- Removed tests including deprecated PbooArrivalBound_Output_PerHop.
- Streamlined tests and remove code duplication.
- Increased test coverage to include BacklogBound.derivePmooSinkTreeTbRl where applicable.
- Total amount of tests is now at 21120.
* SeparateFlowAnalysis, PmooAnalysis: The end-to-end service curve now be computed for a given aggregate of flows.
* Various minor improvements.
v2.0.4 "Hydra" (2015-Jan-30)
* Server: Replaced boolean-based multiplexing definition with an enum.
* LeftOverService, bounds: Fixed derivations with zero delay, infinite burst service curves.
* Functional tests:
- Improved the structure.
- Extended tests to consider both multiplexing settings, globally defined and server locally defined.
* Configuration: defaultArrivalBoundMethods() now correctly sets the arrival_bounding to PBOO_CONCATENATION instead of PBOO_PER_HOP.
* Streamlined sanity checks in LeftOverSerice's fifoMux(...) and Deconvolution's deconvolve(...).
* Demos: Extended output to match the more comprehensive one or the functional tests.
* JavaDocs
- Added documentation to Network and Path about their interpretation and the behavior of analyses using them.
- Minor clarifications in other parts.
* Test documentation: Fixed layout of Tree.pdf such that everything is visible again.
* Updated bundled libraries:
- Apache Commons Math version updated to 3.4.1.
- JUnit version 4.12.
v2.0.3 "Hydra" (2014-Dec-30)
* Curve, LinearSegment: Moved static methods working on linear segments from Curve to LinearSegment.
* Num, Num_double, Functional tests:
- Account for rounding errors when using the double based number representation.
- Functional tests now also succeed with the double number representation.
- Changed the default number representation to doubles.
* Functional tests:
- Make console output optional.
- Minor code rework, unified variable naming.
* ArrivalBound:
- Improvements to make the class static.
- Reduced overhead in case there's only a single arrival bounding method configured.
* Network:
- Add missing addServer method with signature ( String alias, ServiceCurve service_curve, boolean arbitrary_mux, boolean use_gamma, boolean use_extra_gamma ).
- Reduced amount of internal copies of parameters.
* PMOO-AB, PBOO_Concat-AB, PBOO_PerHop-AB: Throw Exception if there's no service left during arrival bounding.
* PMOO-AB: Shortcut for PMOO left-over service curve derivation if the path only consists of a single server.
* PBOO-OutputBound-AB, Configuration, Tests: Pushed deprecation of PbooArrivalBound_Output_PerHop by moving its rec/iter-configuration option from Configuration to the class itself.
* Test documentation:
- Update naming scheme to match latest publications (prev. nomenclature).
- Documentation files contain a version number and possibly a changelog and acknowledgements.
- Started adapting PMOO's T^{l.o.} computation to be closer to the code (only in FeedForward as of now).
- Minor fixes in the single server documentation.
* Apache Commons Math: Updated bundled version to 3.4.
v2.0.2 "Hydra" (2014-Nov-19)
* New feature: Network configurations can now be saved in a format that allows for reuse:
- Curves, LinearSegment, Num: Added constructors parsing a string representation of curves.
- Curves, Num_double: Reduced code duplication.
- Path: Changed visibility of constructor Path( Server single_hop ) to public (see comment there for reasoning).
- Network: Improved creation of paths from lists of servers or links, saving functionality.
* Arrival bounds: Removed duplicate local variables.
* Functional tests:
- Extended functional tests to check for unexpected exceptions.
- Moved remaining static configuration options to FunctionalTests to reduce code duplication.
* Curve: Improved decomposition of curves into rate latencies or token buckets for PMOO.
* ServiceCurve: Removed effectively dead sanity check.
* Minor improvements of the documentation and naming of internal variables.
v2.0.1 "Hydra" (2014-Oct-16)
* Bugfix in ArrivalBound. Removed bad sanity checks always resulting in false.
* Server, Flow: Removed internal ID from string output.
* Flow: Removed unnecessary throws declaration from getServersOnPath(), string representation does not convert alias to lower case anymore.
* Path: Cleaned up usage of LinkedList instead of List, removed “throws Exception” from constructors.
* Network: Reworked toString to produce pseudo-code close to the creation of a network, renamed parameter in getFlowsPerServer and getFlowsPerSubPath to use application-agnostic vocabulary.
* LinearSegment, curves: Added toString() method to LinearSegment and call it from when converting curves to strings rather than using internal conversion code, reduced code duplication across the toString() methods.
* Curve: Added a patch to the shiftRight-method to handle rounding errors with the double-based number representation that can lead to violating the f(0)=0 requirement.
* Configuration: Consistent naming (defaultArrivalBoundCalculations -> defaultArrivalBoundMethods), Changed default arrival boding method from PBOO_PER_HOP to PBOO_CONCATENATION.
* Demos: Made sure all intermediate results will be printed with information about which server they belong to (TFA, SFA), renamed instances of the analyses to match functional tests (sf -> sfa and tf -> tfa).
* Functional tests: Completed combinations of code paths that can be tested and reduced code duplication while doing so. The number of functional tests increased from 1800 to 8200.
* Apache Commons Math: Updated bundled version to 3.3.
* Minor improvements of the documentation and naming of internal variables.
v2.0.0 "Hydra" (2014-Oct-02)
Please see
You can’t perform that action at this time.