Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support ip and port flow control capabilities #1

Open
kaori-seasons opened this issue Jun 8, 2022 · 3 comments
Open

feat: Support ip and port flow control capabilities #1

kaori-seasons opened this issue Jun 8, 2022 · 3 comments

Comments

@kaori-seasons
Copy link

kaori-seasons commented Jun 8, 2022

@Forsworns @sczyh30

Can you take a look at this project? The bottom layer of this project creates an eBPF map in the kernel program, which is used to communicate between the user-mode program and the XDP program in the kernel. The following code is based on the encapsulated data plane program. ip, port and other information load the XDP program and inject it into the network card

calico is a cloud native network and network security data plane control platform.

    1. it's provides ebpf for data control plane request interception, calling kernel API for acceleration, I think we should refer to the code here first, encapsulate the data plane first.
    1. For the traffic dimension, there is a ctlbWorkaroundEnabled switch in the following files, you can try to adapt the interface of sentinel-golang, and encapsulate some necessary information (requestTime, MTU, onStillAlive) for requesting traffic resources into a bpfEndpointManager instance context,

Related to bpf_ep_mgr

@LXPWing
Copy link

LXPWing commented Jun 9, 2022

A good direction for research

@Forsworns
Copy link
Member

In fact, I'm not clear about the roadmap of this repository. It seems a project in summer-ospp.

As for the feature you mentioned,

Support ip and port flow control capabilities

I did try building a short example for the rust version Sentinel.
See its kernel space part and userspace part. But I didn't find a good idea to encapsulate a unified interface. As you can find, most eBPF programs are very short indeed, and it is easy to fulfill these demands without much efforts.

@Forsworns
Copy link
Member

Forsworns commented Jun 9, 2022

For the calico, it seems a different topic with respect to the title of this issue. Maybe the title should be revised :)

Sure, it's a good idea to build extensions for projects like calico, cilium. linkerd2, envoy, etc. Again, I don't know whether it's the goal of this repo. It depends on sczyh30 and the student from summer-ospp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants