package tun
import "golang.zx2c4.com/wireguard/tun"
Index ¶
- Constants
- Variables
- type Device
- func CreateTUN(name string, mtu int) (Device, error)
- func CreateTUNFromFile(file *os.File, mtu int) (Device, error)
- func CreateUnmonitoredTUNFromFD(fd int) (Device, string, error)
- type Event
- type NativeTun
- func (tun *NativeTun) BatchSize() int
- func (tun *NativeTun) Close() error
- func (tun *NativeTun) Events() <-chan Event
- func (tun *NativeTun) File() *os.File
- func (tun *NativeTun) MTU() (int, error)
- func (tun *NativeTun) Name() (string, error)
- func (tun *NativeTun) Read(bufs [][]byte, sizes []int, offset int) (int, error)
- func (tun *NativeTun) Write(bufs [][]byte, offset int) (int, error)
Constants ¶
const ( EventUp = 1 << iota EventDown EventMTUUpdate )
Variables ¶
var ( // ErrTooManySegments is returned by Device.Read() when segmentation // overflows the length of supplied buffers. This error should not cause // reads to cease. ErrTooManySegments = errors.New("too many segments") )
Types ¶
type Device ¶
type Device interface { // File returns the file descriptor of the device. File() *os.File // Read one or more packets from the Device (without any additional headers). // On a successful read it returns the number of packets read, and sets // packet lengths within the sizes slice. len(sizes) must be >= len(bufs). // A nonzero offset can be used to instruct the Device on where to begin // reading into each element of the bufs slice. Read(bufs [][]byte, sizes []int, offset int) (n int, err error) // Write one or more packets to the device (without any additional headers). // On a successful write it returns the number of packets written. A nonzero // offset can be used to instruct the Device on where to begin writing from // each packet contained within the bufs slice. Write(bufs [][]byte, offset int) (int, error) // MTU returns the MTU of the Device. MTU() (int, error) // Name returns the current name of the Device. Name() (string, error) // Events returns a channel of type Event, which is fed Device events. Events() <-chan Event // Close stops the Device and closes the Event channel. Close() error // BatchSize returns the preferred/max number of packets that can be read or // written in a single read/write call. BatchSize must not change over the // lifetime of a Device. BatchSize() int }
func CreateTUN ¶
CreateTUN creates a Device with the provided name and MTU.
func CreateTUNFromFile ¶
CreateTUNFromFile creates a Device from an os.File with the provided MTU.
func CreateUnmonitoredTUNFromFD ¶
CreateUnmonitoredTUNFromFD creates a Device from the provided file descriptor.
type Event ¶
type Event int
type NativeTun ¶
type NativeTun struct {
// contains filtered or unexported fields
}
func (*NativeTun) BatchSize ¶
func (*NativeTun) Close ¶
func (*NativeTun) Events ¶
func (*NativeTun) File ¶
func (*NativeTun) MTU ¶
func (*NativeTun) Name ¶
func (*NativeTun) Read ¶
func (*NativeTun) Write ¶
Source Files ¶
checksum.go errors.go offload_linux.go tun.go tun_linux.go
Directories ¶
Path | Synopsis |
---|---|
tun/netstack | |
tun/tuntest |
- Version
- v0.0.0-20250505131008-436f7fdc1670 (latest)
- Published
- May 5, 2025
- Platform
- linux/amd64
- Imports
- 14 packages
- Last checked
- 2 days ago –
Tools for package owners.