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
x/sys/unix: add support for L2TPIP sockaddr on Linux #37787
Comments
I have been working on code to implement this support, current version here: This is still work-in-progress. Although I have unit tested my changes I'd like to test them further. |
@tomparkin Feel free to send a CL/PR once you have a version ready for review. |
PR here: golang/sys#60 I'm not sure how to automatically associate the PR with this issue :-( |
Just add |
Creating an IPPROTO_L2TP socket requires that the kernel's l2tp_ip or l2tp_ip6 module is loaded. If these modules are not running, the socket call will return with error code EPROTONOSUPPORT. To allow tests to run without the L2TP modules loaded, skip tests where the unix.Socket() call returns EPROTONOSUPPORT. Fixes golang/go#37787
Change https://golang.org/cl/223157 mentions this issue: |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Linux kernel supports L2TPv3 (RFC3931) IP-encapsulated tunnels using two special sockaddr structures which include the L2TP control connection ID. These structures "struct sockaddr_l2tpip" and "struct sockaddr_l2tpip6" are not currently represented in x/sys/unix, meaning that Go programs cannot conveniently create L2TPv3 IP encapsulated tunnels.
The unix package should be extended to include types for the L2TPIP-specific sockaddr structures.
The text was updated successfully, but these errors were encountered: