simconn

package
v0.41.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDeadlineExceeded = errors.New("deadline exceeded")

Functions

func IntToPublicIPv4

func IntToPublicIPv4(n int) net.IP

Types

type ConnStats

type ConnStats struct {
	BytesSent   int
	BytesRcvd   int
	PacketsSent int
	PacketsRcvd int
}

type DelayedPacketReciever

type DelayedPacketReciever struct {
	// contains filtered or unexported fields
}

func (*DelayedPacketReciever) RecvPacket

func (r *DelayedPacketReciever) RecvPacket(p Packet)

type FixedLatencyRouter

type FixedLatencyRouter struct {
	PerfectRouter
	// contains filtered or unexported fields
}

func (*FixedLatencyRouter) AddNode

func (r *FixedLatencyRouter) AddNode(addr net.Addr, conn PacketReciever)

func (*FixedLatencyRouter) SendPacket

func (r *FixedLatencyRouter) SendPacket(p Packet) error

type Packet

type Packet struct {
	To   net.Addr
	From net.Addr
	// contains filtered or unexported fields
}

type PacketReciever

type PacketReciever interface {
	RecvPacket(p Packet)
}

type PerfectRouter

type PerfectRouter struct {
	// contains filtered or unexported fields
}

PerfectRouter is a router that has no latency or jitter and can route to every node

func (*PerfectRouter) AddNode

func (r *PerfectRouter) AddNode(addr net.Addr, conn PacketReciever)

func (*PerfectRouter) RemoveNode

func (r *PerfectRouter) RemoveNode(addr net.Addr)

func (*PerfectRouter) SendPacket

func (r *PerfectRouter) SendPacket(p Packet) error

SendPacket implements Router.

type Router

type Router interface {
	SendPacket(p Packet) error
}

type SimConn

type SimConn struct {
	// contains filtered or unexported fields
}

func NewSimConn

func NewSimConn(addr *net.UDPAddr, rtr Router) *SimConn

NewSimConn creates a new simulated connection with the specified parameters

func (*SimConn) Close

func (c *SimConn) Close() error

Close implements net.PacketConn

func (*SimConn) LocalAddr

func (c *SimConn) LocalAddr() net.Addr

LocalAddr implements net.PacketConn

func (*SimConn) ReadFrom

func (c *SimConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

ReadFrom implements net.PacketConn

func (*SimConn) RecvPacket

func (c *SimConn) RecvPacket(p Packet)

func (*SimConn) SetDeadline

func (c *SimConn) SetDeadline(t time.Time) error

SetDeadline implements net.PacketConn

func (*SimConn) SetLocalAddr

func (c *SimConn) SetLocalAddr(addr net.Addr)

SetLocalAddr only changes what `.LocalAddr()` returns. Packets will still come From the initially configured addr.

func (*SimConn) SetReadDeadline

func (c *SimConn) SetReadDeadline(t time.Time) error

SetReadDeadline implements net.PacketConn

func (*SimConn) SetWriteDeadline

func (c *SimConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline implements net.PacketConn

func (*SimConn) Stats

func (c *SimConn) Stats() ConnStats

func (*SimConn) UnicastAddr

func (c *SimConn) UnicastAddr() net.Addr

func (*SimConn) WriteTo

func (c *SimConn) WriteTo(p []byte, addr net.Addr) (n int, err error)

WriteTo implements net.PacketConn

type SimpleFirewallRouter

type SimpleFirewallRouter struct {
	// contains filtered or unexported fields
}

func (*SimpleFirewallRouter) AddNode

func (r *SimpleFirewallRouter) AddNode(addr net.Addr, conn *SimConn)

func (*SimpleFirewallRouter) AddPubliclyReachableNode

func (r *SimpleFirewallRouter) AddPubliclyReachableNode(addr net.Addr, conn *SimConn)

func (*SimpleFirewallRouter) RemoveNode

func (r *SimpleFirewallRouter) RemoveNode(addr net.Addr)

func (*SimpleFirewallRouter) SendPacket

func (r *SimpleFirewallRouter) SendPacket(p Packet) error

func (*SimpleFirewallRouter) String

func (r *SimpleFirewallRouter) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL