-
Notifications
You must be signed in to change notification settings - Fork 8
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
About the order of the parameters to be reported to the ccp agent on Report function #27
Comments
Hi, thanks for the report. |
cc @fcangialosi Thanks for the info. I believe that this is a bug - I can reproduce your issue, explain it, and give a workaround. I can also suggest, but do not currently have time to implement, a more permanent fix. I would be happy to merge a PR addressing this. ExplanationThe design of ccp changed ~1 year ago from datapath-centric to algorithm-runtime-centric. This change was made to help support the integration of ccp into the mvfst datapath. That is, before the startup flow was like this:
The new way is:
so now this is what happens when a datapath has just started:
then, when we change the datapath program as you tried to do:
The datapath does not send a "ready" message, because it is the same datapath that was running before. The ccp algorithm runtime does not install new datapath programs, because it does not receive a "ready" message (installing programs logic is here). So when a new flow arrives, it uses the datapath program from the previous ccp algorithm runtime, which in this case has many of the same fields but of course not the new one, and this is why the new field is not present in the report. Workaround + Suggested FixesThe easiest workaround for now is to reload the kernel module when the datapath program changes. Hope this is helpful. |
You do help me. Thank you very much for suggesting and explaining it in detail, I do appreciate your ccp-project. Thanks again! |
While I am just starting using ccp, I copy your guide page's example code to verify I have done the preparation work, just like this
As above, I add a parameter named
accum_lost
to report, and then in theclass AIMDFlow
, I useprint(r.accum_lost)
to see its value, just like the following:then I run alg.py and use iperf3 to test, here are the bugs I encounter
Then I exchange the order of parameters like this(inflight and accum_lost) with all others unchanged and avoid the bug and make it, but I don't know the reason about it, maybe it is a bug of project?
Waiting for your reply!
The text was updated successfully, but these errors were encountered: