Documentation
¶
Index ¶
- Constants
- Variables
- type AllNodes
- type Close
- type CloseWaitGroup
- type Closing
- type CryptoKey
- type CryptoKeyInt
- type GetReachableIP
- type GetTime
- type HardwareAddr
- type Hostname
- type ICMPInbound
- type ICMPRemote
- type Inbound
- type InitNodes
- type Interface
- type MTU
- type Network
- func (Network) AllNodes(localNode *Node, initNodes InitNodes) AllNodes
- func (n Network) Close(trigger Trigger) (closing Closing, wg CloseWaitGroup, _close Close)
- func (Network) CryptoKey() CryptoKey
- func (Network) CryptoKeyInt(key CryptoKey) CryptoKeyInt
- func (Network) Events() (on On, trigger Trigger)
- func (Network) GetReachableIP(sysAddrs SystemInterfaceAddrs) GetReachableIP
- func (Network) GetTime() GetTime
- func (Network) HardwareAddr(iface Interface) HardwareAddr
- func (Network) Hostname() Hostname
- func (Network) IPNet() net.IPNet
- func (Network) InitNodes() InitNodes
- func (Network) Interface(localNode *Node, ipnet net.IPNet, mtu MTU) Interface
- func (Network) LocalNode(selectNode SelectNode, ipnet net.IPNet, initNodes InitNodes) *Node
- func (Network) MTU() MTU
- func (Network) NewSendQueue(writeOutbound WriteOutbound, mtu MTU) NewSendQueue
- func (Network) OnFrameFunc() OnFrameFunc
- func (Network) PreferFormatFunc() PreferFormatFunc
- func (Network) ReadInbound(key CryptoKey, keyInt CryptoKeyInt) ReadInbound
- func (Network) SelectNode() SelectNode
- func (Network) Spawn(wg CloseWaitGroup) Spawn
- func (n *Network) Start(localNode *Node, startTCP StartTCP, startUDP StartUDP, startICMP StartICMP, ...) Start
- func (n *Network) StartICMP(spawn Spawn, closing Closing, trigger Trigger, sysAddrs SystemInterfaceAddrs, ...) StartICMP
- func (n *Network) StartTCP(closing Closing, spawn Spawn, getTime GetTime, trigger Trigger, ...) StartTCP
- func (n *Network) StartUDP(spawn Spawn, closing Closing, getTime GetTime, trigger Trigger, ...) StartUDP
- func (Network) SystemInterfaceAddrs() SystemInterfaceAddrs
- func (Network) WriteOutbound(key CryptoKey, keyInt CryptoKeyInt) WriteOutbound
- type NewSendQueue
- type Node
- type On
- type OnFrameFunc
- type Outbound
- type PreferFormatFunc
- type ReadInbound
- type Scope
- type SelectNode
- type Spawn
- type Start
- type StartICMP
- type StartTCP
- type StartUDP
- type SystemInterfaceAddrs
- type TCPConn
- type TCPListener
- type Trigger
- type UDPInbound
- type UDPLocal
- type UDPRemote
- type WireData
- type WireFormat
- type WriteOutbound
Constants ¶
View Source
const ( BridgeICMP = "ICMP" BridgeTCP = "TCP" BridgeUDP = "UDP" )
View Source
const ( EvTCP = iota + 1 EvTCPReady EvTCPConnAdded EvTCPConnDeleted EvTCPReadInboundError EvTCPConnGotAddr EvTCPConnGotIP EvTCPInboundSent EvTCPListening EvTCPListenFailed EvTCPListened EvTCPAccepted EvTCPDialing EvTCPDialed EvTCPDialFailed EvTCPRefreshed EvTCPWriteError EvTCPNotSent EvTCPListenerClosed EvTCPClosed EvTCPSlow EvUDP EvUDPReady EvUDPRemoteAdded EvUDPLocalAdded EvUDPConnReadError EvUDPReadInboundError EvUDPLocalClosed EvUDPRemoteClosed EvUDPRemoteGotAddr EvUDPRemoteGotIP EvUDPInboundSent EvUDPWriteError EvUDPNotSent EvUDPClosed EvICMP EvICMPReady EvICMPClosed EvICMPNotSent EvICMPInboundSent EvICMPReadInboundError EvICMPWriteError EvNetwork EvNetworkClosing EvNetworkOutboundSent EvNetworkInboundReceived EvNetworkInboundDuplicated EvNetworkInboundWritten )
Variables ¶
View Source
var ( EthernetBroadcast = net.HardwareAddr{0xff, 0xff, 0xff, 0xff, 0xff, 0xff} IPv4zero = net.IPv4(0, 0, 0, 0) )
Functions ¶
This section is empty.
Types ¶
type CloseWaitGroup ¶
type CryptoKeyInt ¶
type CryptoKeyInt uint64
type GetReachableIP ¶
type HardwareAddr ¶
type HardwareAddr = net.HardwareAddr
type Interface ¶
type Interface interface { io.ReadWriteCloser Name() string }
type Network ¶
type Network struct {
RootScope Scope
}
func NewNetwork ¶
func (Network) Close ¶
func (n Network) Close( trigger Trigger, ) ( closing Closing, wg CloseWaitGroup, _close Close, )
func (Network) CryptoKeyInt ¶
func (Network) CryptoKeyInt( key CryptoKey, ) CryptoKeyInt
func (Network) GetReachableIP ¶
func (Network) GetReachableIP( sysAddrs SystemInterfaceAddrs, ) GetReachableIP
func (Network) HardwareAddr ¶
func (Network) HardwareAddr( iface Interface, ) HardwareAddr
func (Network) NewSendQueue ¶
func (Network) NewSendQueue( writeOutbound WriteOutbound, mtu MTU, ) NewSendQueue
func (Network) OnFrameFunc ¶
func (Network) OnFrameFunc() OnFrameFunc
func (Network) PreferFormatFunc ¶
func (Network) PreferFormatFunc() PreferFormatFunc
func (Network) ReadInbound ¶
func (Network) ReadInbound( key CryptoKey, keyInt CryptoKeyInt, ) ReadInbound
func (Network) SelectNode ¶
func (Network) SelectNode() SelectNode
func (Network) Spawn ¶
func (Network) Spawn( wg CloseWaitGroup, ) Spawn
func (*Network) Start ¶
func (n *Network) Start( localNode *Node, startTCP StartTCP, startUDP StartUDP, startICMP StartICMP, spawn Spawn, on On, closing Closing, mtu MTU, preferFormatFunc PreferFormatFunc, iface Interface, ipnet net.IPNet, onFrameFunc OnFrameFunc, cryptoKey CryptoKey, cryptoKeyInt CryptoKeyInt, trigger Trigger, hwAddr HardwareAddr, ) Start
func (*Network) StartICMP ¶
func (n *Network) StartICMP( spawn Spawn, closing Closing, trigger Trigger, sysAddrs SystemInterfaceAddrs, localNode *Node, mtu MTU, readInbound ReadInbound, newSendQueue NewSendQueue, allNodes AllNodes, getReachableIP GetReachableIP, ) StartICMP
func (*Network) StartTCP ¶
func (n *Network) StartTCP( closing Closing, spawn Spawn, getTime GetTime, trigger Trigger, sysAddrs SystemInterfaceAddrs, readInbound ReadInbound, localNode *Node, newSendQueue NewSendQueue, key CryptoKey, allNodes AllNodes, getReachableIP GetReachableIP, ) StartTCP
func (*Network) StartUDP ¶
func (n *Network) StartUDP( spawn Spawn, closing Closing, getTime GetTime, trigger Trigger, sysAddrs SystemInterfaceAddrs, localNode *Node, mtu MTU, readInbound ReadInbound, key CryptoKey, newSendQueue NewSendQueue, allNodes AllNodes, getReachableIP GetReachableIP, ) StartUDP
func (Network) SystemInterfaceAddrs ¶
func (Network) SystemInterfaceAddrs() SystemInterfaceAddrs
func (Network) WriteOutbound ¶
func (Network) WriteOutbound( key CryptoKey, keyInt CryptoKeyInt, ) WriteOutbound
type NewSendQueue ¶
type NewSendQueue func( sendFunc queueSendFunc, ) *sendQueue
type Node ¶
type OnFrameFunc ¶
type OnFrameFunc func([]byte)
type Outbound ¶
type Outbound struct { WireData DestIP *net.IP DestAddr *net.HardwareAddr PreferFormat WireFormat // contains filtered or unexported fields }
type PreferFormatFunc ¶
type SelectNode ¶
type SelectNode func() *Node
type SystemInterfaceAddrs ¶
type WireFormat ¶
type WireFormat byte
const ( FormatChacha20Poly1305 WireFormat = iota FormatAESGCM FormatChacha20Poly1305Partial AESGCMNonceSize = 12 )
Source Files
¶
- addr.go
- alias.go
- all_nodes.go
- bridge.go
- bridge_icmp.go
- bridge_tcp.go
- bridge_udp.go
- close.go
- crypto_key.go
- ev.go
- hardware_addr.go
- hostname.go
- init_nodes.go
- interface.go
- interface_linux.go
- ip.go
- ipnet.go
- mtu.go
- net_linux.go
- network.go
- node.go
- on_frame_func.go
- port.go
- prefer_format.go
- select_node.go
- send_queue.go
- spawn.go
- time.go
- utils.go
- wire.go
Click to show internal directories.
Click to hide internal directories.