package simconn

import "github.com/libp2p/go-libp2p/p2p/net/simconn"

Index

Variables

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

Source Files

router.go simconn.go

Version
v0.42.0 (latest)
Published
Jun 18, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
1 week ago

Tools for package owners.