Documentation ¶
Overview ¶
Package tunnel provides gre network tunnelling
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // KeepAliveTime defines time interval we send keepalive messages to outbound links KeepAliveTime = 30 * time.Second // ReconnectTime defines time interval we periodically attempt to reconnect dead links ReconnectTime = 5 * time.Second )
View Source
var (
// DefaultAddress is default tunnel bind address
DefaultAddress = ":0"
)
Functions ¶
This section is empty.
Types ¶
type Conn ¶
type Conn interface { // Specifies the tunnel id Id() string // The session Session() string // a transport socket transport.Socket }
Conn is a connection dialed or accepted which includes the tunnel id and session
type Options ¶
type Options struct { // Id is tunnel id Id string // Address is tunnel address Address string // Nodes are remote nodes Nodes []string // Transport listens to incoming connections Transport transport.Transport }
Options provides network configuration options
type Tunnel ¶
type Tunnel interface { Init(opts ...Option) error // Address the tunnel is listening on Address() string // Connect connects the tunnel Connect() error // Close closes the tunnel Close() error // Dial an endpoint Dial(addr string) (Conn, error) // Accept connections Listen(addr string) (Listener, error) // Name of the tunnel implementation String() string }
Tunnel creates a gre network tunnel on top of a link. It establishes multiple streams using the Micro-Tunnel-Id header and Micro-Tunnel-Session header. The tunnel id is a hash of the address being requested.
Click to show internal directories.
Click to hide internal directories.