Tags: hexiangdong0/portus
Tags
CongAlg: split trait to support dynamic dispatch Because it contains an associated type, it was previously impossible to express dynamic dispatch across congestion control algorithms; i.e., in the case where the runtime allows dynamic switching between a battery of congestion control algorithms. Therefore, remove the `Config` associated type. Instead, implementations of `CongAlg` will contain configuration options. Rename the `create()` method to `new_flow()` and have it take `&self`, and produce a value of the associated type `Flow`, which implements the trait `Flow`. Then move `on_report()` and `close()` functions from `CongAlg` to the trait `Flow`. Finally, to support dynamic dispatch, add non-public trait `CongAlgDyn`, which for all `T, C: CongAlg<Flow=T>` will `Box` up the return value of `new_flow()`. Temporarily remove python bindings for generic-cong-avoid; will mimgrate these to the generic-cong-avoid repo.
portus api: deduplicate programs across flows This commit modifies the CCP API to expect users to install all programs in the new init_programs function, when portus starts running. To make a flow use a particular program, there is a new set_program function; when installing, users also specify a name for each program. In the datapath, now, programs need not be duplicated across flows. This also bumps the libccp submodule version to match the corresponding changes in libccp.
PreviousNext