2017-06-04 19:48:15 +00:00
|
|
|
package main
|
|
|
|
|
2017-07-15 14:27:59 +00:00
|
|
|
/*
|
|
|
|
* The default MTU of the new device must be 1420
|
|
|
|
*/
|
|
|
|
|
|
|
|
const DefaultMTU = 1420
|
|
|
|
|
2017-08-07 13:25:04 +00:00
|
|
|
type TUNEvent int
|
|
|
|
|
|
|
|
const (
|
|
|
|
TUNEventUp = 1 << iota
|
|
|
|
TUNEventDown
|
|
|
|
TUNEventMTUUpdate
|
|
|
|
)
|
|
|
|
|
2017-06-28 21:45:45 +00:00
|
|
|
type TUNDevice interface {
|
2017-07-11 20:48:58 +00:00
|
|
|
Read([]byte) (int, error) // read a packet from the device (without any additional headers)
|
|
|
|
Write([]byte) (int, error) // writes a packet to the device (without any additional headers)
|
|
|
|
MTU() (int, error) // returns the MTU of the device
|
|
|
|
Name() string // returns the current name
|
2017-08-07 13:25:04 +00:00
|
|
|
Events() chan TUNEvent // returns a constant channel of events related to the device
|
|
|
|
Close() error // stops the device and closes the event channel
|
2017-06-04 19:48:15 +00:00
|
|
|
}
|