You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I propose to add an interface for vnet.Net which dependent packages of vnet.Net should use (e.g. pion/ice in my use case).
Motivation
cunicu is user-space daemon to establish Wireguard peer-to-peer connection via ICE.
cunicu needs to provide custom implementations of net.{Dial,Listen}{UDP,Packet} in order to attach eBPF filters to the created sockets which filter STUN and let all other traffic pass to a kernel tunnel interface.
Summary
I propose to add an interface for vnet.Net which dependent packages of
vnet.Net
should use (e.g. pion/ice in my use case).Motivation
cunicu is user-space daemon to establish Wireguard peer-to-peer connection via ICE.
cunicu needs to provide custom implementations of
net.{Dial,Listen}{UDP,Packet}
in order to attach eBPF filters to the created sockets which filter STUN and let all other traffic pass to a kernel tunnel interface.See: https://github.com/stv0g/cunicu/blob/master/pkg/proxy/ebpf.go#L43
This allows cunicu to limit itself to handling ICE and stay out of the data path which remains fully in the kernel.
By introducing an interface for
vnet.Net
users could provide custom implementations for most of the functions in thenet
package.Describe alternatives you've considered
We are currently providing a custom implementation of
ice.UDPMux
which is already an interface to do the same.Additional context
A
ice.UDPMux
is currently only used for host candidates. We cant use this method for relay or reflexive candidates.See: pion/ice#400
Also:
The text was updated successfully, but these errors were encountered: