Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can DNC support stair-step (arrival) curves? #86

Open
ghsshou opened this issue Sep 16, 2019 · 5 comments
Open

Can DNC support stair-step (arrival) curves? #86

ghsshou opened this issue Sep 16, 2019 · 5 comments

Comments

@ghsshou
Copy link

ghsshou commented Sep 16, 2019

It seems that we can define a function with at most two segments. In this case, if we use a token bucket model to simulate a flow with periodic burst (in which a lot of detailed are lost), the calculted e2e delay is to pessmistic. How to deal with this issue?

Looking forward to your reply. Thank you!

Tao Gao

@sbondorf
Copy link
Collaborator

We need to check the capabilities/restrictions per component:

  • LinearSegment is not restricted or restricting the curve shape to be created with its instances
  • *Curve consists of a list of segments that does not restrict the curve shape and a set of methods that might not work if applied to staircase functions
  • the package algebra.minplus only has disco implementations for the operations. They have different restrictions (see subpackage names), neither works on staircase functions
  • the package bounds currently has the same restriction as algebra

So, overall, token buckets and rate latencies are the easiest functions to work with all the components. The implementation are also the only ones covered by our functional tests. Therefore the Curve factory only provides convenient methods to create those. An extension to more curve shapes is definitely possible.

At the moment, you can still create more complex functions manually, but you need to watch the implementation's restrictions (concave and convex functions). And, let me mention that again, they are not tested well due to a lack of research into that direction.

There has been work to improve on this. We (or rather @phschon) created interfaces for all components and worked on using the RTC MPA toolbox behind these interfaces. The RTC MPA implementations do not have any restriction regarding curve shapes, in particular, they work on the staircase functions with periodic behavior you mention. Therefore, we wanted to combine this with our automated derivation of the kinplus model/computation from the more abstract server graph.
The extension currently let's you use their curve classes but not yet their minplus algebra or bound computations. We use the disco operations and inherit its restrictions to token bucket and rate latency as the only tool confirmation I consider stable at the moment. This work on the RTC Backend integration has unfortunately stalled due to a lack of manpower but there is a clear path to finish it.

Hope this helps, Steffen

@ghsshou
Copy link
Author

ghsshou commented Sep 20, 2019

Thank you very much for your reply. It seems that the calculation (including convolution, de-convolution) in Disco is based on the two segments? But the procedure is so complicated, and I could not completely understand.
I have another question, does PMOO support FIFO?

@sbondorf
Copy link
Collaborator

sbondorf commented Apr 30, 2020

I have another question, does PMOO support FIFO?

No

Update 2022-08-30
The NCorg DNC offers an implementation of the Least Upper Delay Bound by now. See https://github.com/NetCal/DNC/releases/tag/2.7.0

@sbondorf
Copy link
Collaborator

For more generic curve shapes, the most promising path to this functionality is to better integrate the MPA RTC backend. Please track NetCal/DNCext_MPARTC#14 for this.

sbondorf added a commit to sbondorf/DNC that referenced this issue May 4, 2020
You may be able to create many curve shapes, depending on the classes you use. Yet, we only provide convenient factory methods for affine curves. See also question NetCal#86
@NetCal NetCal mentioned this issue Aug 30, 2022
@sbondorf
Copy link
Collaborator

sbondorf commented Sep 19, 2022

See also this issue: NetCal/DNCext_MPARTC#20

@sbondorf sbondorf changed the title Can Disco support stair-step (arrival) curves? Can DNC support stair-step (arrival) curves? Sep 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants