 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
      Index ¶
- Constants
- Variables
- type Device
- 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 ¶
      View Source
      
  
const ( EventUp = 1 << iota EventDown EventMTUUpdate )
Variables ¶
      View Source
      
  
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") )
Functions ¶
This section is empty.
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 CreateTUNFromFile ¶
CreateTUNFromFile creates a Device from an os.File with the provided MTU.
 Click to show internal directories. 
   Click to hide internal directories.