capsule-rs / capsule-rs/capsule
Multi-Process (primary and secondary) support for Capsule application(s)
- Dominant language
- Rust
- Stars
- 443
- Forks
- 42
- PR merge metrics
- No merged PRs in 30d
Description
## Background
As part of re-thinking our runtime model and pipeline scheduling (#75), we'd like to support [multi-process](https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html) applications, including examples with a non-Capsule DPDK application acting as primary while a Capsule application acts as secondary process or vice versa, as well as two Capsule applications acting as primary and secondary.
One example idea would involve a non-capsule primary DPDK application (e.g maybe [testpmd](https://doc.dpdk.org/guides/testpmd_app_ug/)) that generates packets and forwards those packets to a secondary Capsule-written NF. Another is a primary Capsule application forwarding packets to a [DPDK pdump](https://doc.dpdk.org/guides/howto/packet_capture_framework.html) secondary process. One caveat here is be aware that both processes need to share the same DPDK versions.
A main use case we've seen usually revolves around Open vSwitch being the primary process with other secondary process in something like Capsule, etc...
Contributor guide
Research direction
Start with the DPDK multi-process support guide and the runtime-model and pipeline-scheduling work in #75; compare the testpmd, DPDK pdump, and Open vSwitch primary/secondary scenarios described here. Done means the supported primary and secondary combinations are defined and demonstrated for Capsule and non-Capsule applications, with the shared DPDK-version requirement accounted for.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100