-
Notifications
You must be signed in to change notification settings - Fork 56
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
Support BESS protocol (for UML) #83
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: AkihiroSuda The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
87dbcf2
to
229ca40
Compare
BESS protocol transferrs L2 packets as AF_UNIX SOCK_SEQPACKET . BESS protocol has been used by the vector network interfaces of User Mode Linux (UML). ``` (terminal 1) $ bin/gvproxy -debug -listen unix:///tmp/network.sock -listen-bess unixpacket:///tmp/bess.sock (terminal 2) $ linux.uml vec0:transport=bess,dst=/tmp/bess.sock,depth=128,gro=1,mac=5a:94:ef:e4:0c:ee root=/dev/root rootfstype=hostfs init=/bin/bash mem=2G (terminal 2: UML)$ ip addr add 192.168.127.2/24 dev vec0 (terminal 2: UML)$ ip link set vec0 up (terminal 2: UML)$ ip route add default via 192.168.127.254 ``` More docs about the User Mode Linux with BESS socket transport: https://www.kernel.org/doc/html/latest/virt/uml/user_mode_linux_howto_v2.html#bess-socket-transport Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
CI failure is probably unrelated. |
Yes I am looking at the CI. I don't understand for the moment why it hangs :/ Thanks for the patch, looks good. Do you use or plan to use gvproxy in one of your project? |
Tests are passing on my machine. lgtm. Maybe in future we could add e2e tests for this feature. |
Maybe, still under an early experiment. |
This comment has been minimized.
This comment has been minimized.
Interesting! What happens if you change the MTU? It should be better. For stability, maybe check the stats API. There is maybe a clue. |
Retr column seems really bad. Maybe you can compare in stats API the number of Retransmit you see with the Retr column. Maybe there is something to do/change in the way the listener in Go is configured ? Some packets are dropped ? |
My guest kernel config was unoptimized, tested again with a new config slirp4netns
gvproxy
Slirp4netns provides an acceptable throughput, but something is obviously broken in gvproxy.
UML doesn't seem to support MTU > 1500. |
Great news! |
BESS protocol transferrs L2 packets as AF_UNIX SOCK_SEQPACKET .
BESS protocol has been used by the vector network interfaces of User Mode Linux (UML).
More docs about the User Mode Linux with BESS socket transport: https://www.kernel.org/doc/html/latest/virt/uml/user_mode_linux_howto_v2.html#bess-socket-transport