-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add OMNeT++ 6 preview support. #25
base: master
Are you sure you want to change the base?
Conversation
Oh yeah, I also added Also, I added |
https://doc.omnetpp.org/omnetpp/api/APIChanges.html under 5.3, implicit casting is now preferred over .longValue(). In OMNeT++ 6 .longValue() will be renamed to .intValue(), but using implicit or static_cast<long> is sufficient for this. In SubmoduleIterator, the () operator is deprecated. Use * instead. () is removed from the OMNeT++ 6 previews. Source: https://doc.omnetpp.org/omnetpp/api/classomnetpp_1_1cModule_1_1SubmoduleIterator.html
e822cd2
to
d62e169
Compare
Hi there! So what is the OMNeT++ version that you recommend to test your implementation? So far 5.2.1 does not work when I clone |
I recommend the latest version @kvetak So, if you use the IDE:
If you do this from outside the IDE, using the Makefile that is supplied:
Using the ./simulate.sh examples/Shim/SwitchShim -G -c PingAll -n ../inet4/src ...where:
Please notify me if any of this does not work. |
I don't really know why there's a discrepancy between the names of the included INET4 in OMNeT++ 6 and OMNeT++ 5.6.2, but official tools and the docker images use IMO they should have kept the name as |
Also note that I have not tested this on Windows, but I don't see any reason why it shouldn't work if you use the IDE. The code should be completely agnostic, so if there's a problem it's probably in the |
I have spent a decent amount of time trying to run your RINASim version from |
Weird. Maybe you need to use a new workspace for OMNeT++? |
Interesting! I'll look into it. :) |
@screw was able to compile it, so I will inform at him. However, let's try to coordinate work on pull-requests aiming to integrate your thesis. Generally, I am okay with your changes in Flow Allocator module as long as they will not break fingerprints on previous non-ShimEthernet scenarios. |
I had the same error as @kvetak so I manualy added the inet/src as another include location and also comment out one line using some random function from <algorithm.h>. I wonder if perhaps you have some settings in .cproject, .project, etc. that didn't get pushed to the repo due to gitignore. |
@kvetak Regarding breaking fingerprints: Since my changes trigger flow allocation of management flows more times, it follows that fingerprints won't match for most examples where that's relevant since it's computed by the set of events that happen. I am open to discussion on it, but we should probably take that in the relevant PR (the two last commits are relevant). |
@screw <algorithm.h> is from the C++ standard library (I assume you're pointing to Also this PR in and of itself should compile alright. I think that it's compatible with every version of OMNeT++ after and including 5.3 at least, but maybe before as well. Note that INET 4.2.0 claims that they only support OMNeT++ 5.5.1 or later, so including my other changes it's probably a good idea to support the newest versions regardless. I tested both with earlier and later versions of OMNeT++, and no examples were broken that weren't already broken from before. I have some additional changes that I haven't put in a PR yet that fixes several examples, like SimpleLS which has random results every time because of uninitialised values. |
I tested it on macOS and it didn't compile so I was just trying things. Also, I am against I agree we should discuss other points in the corresponding PR. |
I see, I assumed wrong, sorry. :^)
I forgot to specify why I added the change: this warning appears in every single auto-generated |
As of OMNeT++ 5.3, a new message compiler was introduced. The legacy message compiler is still used by default in OMNeT++ 5, but for compatibility with future versions I have explicitly set the msg4 option, which enables the legacy message compiler. Also updated to C++17. Literally no reason to use C++11.
Implicit casts are now preferred over the use of
.longValue()
forcPar
. You can see why under features introduced in 5.3:https://doc.omnetpp.org/omnetpp/api/APIChanges.html
.longValue()
is replaced by.intValue()
in OMNeT++ 6, so casting is the better option anyway in regards to compatibility.SubmoduleIterator
uses*
instead of()
as an access operator now.https://doc.omnetpp.org/omnetpp/api/classomnetpp_1_1cModule_1_1SubmoduleIterator.html
From https://github.com/karlhto/RINA-thesis originally, which was a private bare clone of this repo. Check it for original commit dates if wanted.