Updating the mTCP to work with the latest version of OpenNetVM
A detailed list of the new OpenNetVM features is available here
The important parts for the mTCP community are:
Updated onvm_mgr stats, better looking stats and easier process of exporting stats.
The multithreading capabilities.
Primarily the breaking changes are from the multithreading capabilities, because each NF now needs its own onvm_nf_info structure. We had to modify out NFs to pass a reference of the onvm_nf_info rather than accessing the global value, hence the changes in API. For mTCP I have placed the onvm_nf_info structure into the CONFIG. Although this solution is not ideal as it makes the onvm_nf_info global for all instances. @eunyoung14 can you help with find a solution for this? Also we're interested in testing mTCP with our OpenNetVM multithreading architecture, but that is not included in this PR.
As OpenNetVM is using an old version of dpdk I was using dpdk provided by the mTCP repoAlso there is tiny bug in the #define flag conflicts, we're resolving it on our end and it should be gone soon, if you end up testing this before that gets fixed in OpenNetVM just remove the lines 56-67.
Summary
Changes the Makefiles (new onvm build structure)
Addressed OpenNetVM API changes in methods
Minor README changes as the base-virtaddr flag was changed
Testing
I've successfully built and executed the example epserver application on a 2 node cloudlab setup, using wget to confirm connectivity.
Updating the mTCP to work with the latest version of OpenNetVM
A detailed list of the new OpenNetVM features is available here
The important parts for the mTCP community are:
onvm_nf_info
structure. We had to modify out NFs to pass a reference of theonvm_nf_info
rather than accessing the global value, hence the changes in API. For mTCP I have placed theonvm_nf_info
structure into the CONFIG. Although this solution is not ideal as it makes theonvm_nf_info
global for all instances. @eunyoung14 can you help with find a solution for this? Also we're interested in testing mTCP with our OpenNetVM multithreading architecture, but that is not included in this PR.As OpenNetVM is using an old version of dpdk I was using dpdk provided by the mTCP repo Also there is tiny bug in the
#define
flag conflicts, we're resolving it on our end and it should be gone soon, if you end up testing this before that gets fixed in OpenNetVM just remove the lines 56-67.Summary
base-virtaddr
flag was changedTesting I've successfully built and executed the example epserver application on a 2 node cloudlab setup, using wget to confirm connectivity.