capsule-rs / capsule-rs/capsule

Expose `rte_eth_dev_set_mc_addr_list` function into capsule runtime to filter specific MC addresses

Open
#150 0 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

## What's desired
We have an application which proxies certain IPV4 multicast inputs to IPV6 DEPI (Downstream External PHY Interface) using DPDK via capsule. For performance reasons, we would like to filter the specific set of multicast addresses we're interested, ideally by DPDK rather than in our application code, for performance reasons. We're using multicast = true which, as you know, means all multicast traffic. DPDK provides the function, `rte_eth_dev_set_mc_addr_list`, which is implemented by the driver we're using. This is publically available in the `capsule-ffi`; however, it takes a `u16` `port_id` and that is not accessible from the capsule lib (PortId is `capsule/core/ffi` crate private and in addition, that struct's `u16` member is private to the core/ffi module.that would like to filter specific sets of multicast addresses).

## Work around / alternatives

We can query for the port id using the rte function to get it from the port name, which we are doing, but an public abstraction in capsule for the mc filter would be great if it makes sense.

Appreciate all that you do. Let me know if you need more information!

Contributor guide

Open the contributing guide

Research direction

Start by locating the existing rte_eth_dev_set_mc_addr_list declaration in capsule-ffi and the private PortId definition in the capsule/core/ffi crate. Trace how port identifiers are exposed to capsule users and define completion as a public abstraction that lets callers configure specific multicast addresses through the supported DPDK driver.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.