blixt icon indicating copy to clipboard operation
blixt copied to clipboard

Dataplane interface resolution with syscalls

Open shaneutt opened this issue 3 years ago • 6 comments

Problem Statement

During #41 we added a mechanism to identify the kind-net network interface that would be needed for our TC program to redirect packets to Pods, but as a stop-gap as the PR was already getting quite large we implemented that using the iproute2 command line. The purpose of this task is to replace that with syscalls to make it more portable.

Prerequisites

  • [x] #41

Additional Notes

Investigate ~https://github.com/redhat-et/emerita/blob/ade6ca9c1215704da6ce033e0b4e8a5f39dbd908/emerita/src/netlink.rs#L46~ https://github.com/rust-netlink

Check out this crate, which is higher level and doesn't require direct syscalls: https://crates.io/crates/netlink-packet-route

Acceptance Criteria

  • [ ] iproute2 should no longer be required in order for the dataplane to work

shaneutt avatar Dec 14 '22 13:12 shaneutt

Not sure @shaneutt if I could pull this off. But would love to know if this one, is good point to jump & look towards Data-plane

rushi47 avatar Dec 18 '22 15:12 rushi47

Not sure @shaneutt if I could pull this off. But would love to know if this one, is good point to jump & look towards Data-plane

Yeah, I would say so. I think though it is fair to say, that while it's in the dataplane code the subject matter is more of Rust and Linux than of the data path (e.g. this doesn't require any eBPF code changes).

shaneutt avatar Dec 19 '22 15:12 shaneutt

Can I give shot to this 🤚 Edit : probably will complete : https://github.com/Kong/blixt/issues/40 this first.

rushi47 avatar Dec 20 '22 12:12 rushi47

Can I give shot to this raised_back_of_hand Edit : probably will complete : #40 this first.

Ok, whatever works best for you. Note that this one will probably be simpler and more straightforward than #40 so it may be better to start with this one as it will be an easier entry point to starting to contribute to the dataplane code.

shaneutt avatar Dec 20 '22 13:12 shaneutt

@shaneutt Oh perfect, will you be able to assign me this then ? Will try to give shot on this one.

rushi47 avatar Dec 21 '22 04:12 rushi47

Just a heads up, looks like a couple of months ago the Netlink crate's source moved to:

https://github.com/rust-netlink

Looks like things aren't fully moved over yet, including the crates.io page not updated yet. Just a heads up.

shaneutt avatar Jan 20 '23 18:01 shaneutt

/assign @maborosii

shaneutt avatar Sep 06 '24 19:09 shaneutt

@shaneutt: GitHub didn't allow me to assign the following users: maborosii.

Note that only kubernetes-sigs members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see the contributor guide

In response to this:

/assign @maborosii

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

k8s-ci-robot avatar Sep 06 '24 19:09 k8s-ci-robot