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

Delfoi #8

Closed
wants to merge 0 commits into from
Closed

Delfoi #8

wants to merge 0 commits into from

Conversation

pberndt
Copy link

@pberndt pberndt commented Mar 4, 2011

Hello,

I have implemented a global Internet delay model that I would like to contribute to the master branch:

The DELFOI (Delay Estimation Localized For Omnet++/Inet) model implements
end-to-end Internet delay including

  • node specific access network delay
  • node specific access bandwidths
  • Global Network Positioning (GNP) estimates of node to node minimum backbone delay
  • region-to-region specific jitter

The model usually is parametrized from user measurements obtained through the
website www.speedtest.net. With the parametrization file installed, it is
very easy to use (see example).

The parametrization for each node is sampled from the group (e.g. "US") specified
as Par or property.

More info:

  • Berndt, P., Battré, D. and Kao, O. "A Hybrid Approach to Modeling End-to-End
    Delay in P2P Networks"'Proceedings of the Workshop on Advanced Video
    Streaming Techniques for Peer-to-Peer Networks and Social Networking', ACM
    Press, 2010.
  • Berndt, P., Raack, M. and Kao, O. "Spanning a Global Delay Model from
    HTTP-Measurements"'Proc of the Annual International Conference on Network
    Technologies & Communications (NTC 2010)', Global Science and Technology Forum
    (GSTF), 2010, pp. N77-N82.
  • Example: examples/inet/gnpping

Requirements:

Best Regards,
Philipp

@rhornig
Copy link
Member

rhornig commented Mar 9, 2011

Thanks, I have pulled this to the topic/delphoi branch. We will merge it with the integration branch soon. i see you have added a DatarateChannel2 which seems to be some kind of fix for the original channel. What was the bug that it is supposed to fix?

@pberndt
Copy link
Author

pberndt commented Mar 10, 2011

Thanks, the problem with the original DatarateChannel is that calling any of the setters has no effect without calling the protected method rereadPars() afterwards. Please let me know if there is another way to accomplish this. I noticed there is a method handleParameterChange(..) but that is protected, too. Therefore, I subclassed DatarateChannel and call rereadPars() in each setter. This works okay for Delfoi. However, if channel parameters change a lot DatarateChannel should be optimized by re-reading just the par that was actually changed.

@rhornig
Copy link
Member

rhornig commented Mar 10, 2011

Hello, this was a reported issue with OMNeT 4.0 if you set the paramaters at initialization time:
http://dev.omnetpp.org/bugs/view.php?id=109

it was fixed for 4.1 so my question is, have you experienced the problem with 4.0 or 4.1? A suppose you are setting the pars at init state from some modules. If it is a problem with 4.1 then we should further investigate, becaus in that case this as a bug in OMNeT kernel.

I have checked your code and it seems that you are setting the delay and datarate params in stage 2 which should work with 4.1 because handleParameterChange is called in 4.1 IF the owner component (channel) is already in initialized state. The channels are initialized in stage 0 so you should be fine without the DataChannel2 workaround.

@pberndt
Copy link
Author

pberndt commented Mar 11, 2011

Oh yes, that was a 4.0 thing that seems to be fixed with 4.1. Since 4.1 was released quite a while ago, I now made it a requirement for Delfoi and removed the work-around. When compiling with OMNeT++ version < 4.1 it will now print a compile time warning and throws a runtime error when trying to run a delfoi model.

@rhornig
Copy link
Member

rhornig commented Mar 11, 2011

Okay, great. I will look into how to integrate it in the following days. I will close this pull request once it is successfully merged.

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

Successfully merging this pull request may close these issues.

2 participants