capsule-rs / capsule-rs/capsule

Multi-Process (primary and secondary) support for Capsule application(s)

Open
#74 2 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.