Versions in this module Expand all Collapse all v1 v1.0.1 Aug 12, 2021 Changes in this version + const EdebugLevel + const IEdebugLevel + const IsRaceEnabled + const OpenSocketsRetriesCst + const PdebugLevel + const PingerFractionModulo + const ProtocolICMP + const ProtocolIPv6ICMP + const RdebugLevel + const ReceiveBufferMax + const Receivers4Cst + const Receivers6Cst + const SdebugLevel + const SplayReceiversCst + func FakeDrop(dropProb float64) (drop bool) + func WriteTo(wb []byte, addr *net.UDPAddr, socket *icmp.PacketConn, debugLevel int, ...) + type DebugLevelsT struct + E int + IE int + P int + R int + S int + func GetDebugLevels(debuglevel int) (debugLevels DebugLevelsT) + type ExpirersT struct + DebugLevel int + DoneCh chan struct{} + DonesChs map[Protocol]chan struct{} + FakeSuccess bool + Running bool + Runnings map[Protocol]bool + WG sync.WaitGroup + type ICMPEchoReply struct + Checksum uint16 + Code uint8 + Identifier uint16 + Seq uint16 + Type uint8 + func ParseICMPEchoReply(b []byte) (*ICMPEchoReply, error) + func ParseICMPEchoReplyBB(b bytes.Buffer) (*ICMPEchoReply, error) + type ICMPEngine struct + DebugLevel int + DoneCh chan struct{} + EID int + Expirers ExpirersT + Log hclog.Logger + PID int + Pingers PingersT + Protocols []Protocol + ReadDeadline time.Duration + Receivers ReceiversT + Sockets SocketsT + Timeout time.Duration + func New(l hclog.Logger, done chan struct{}, to time.Duration, rd time.Duration, ...) (icmpEngine *ICMPEngine) + func NewFullConfig(logger hclog.Logger, done chan struct{}, timeout time.Duration, ...) (icmpEngine *ICMPEngine) + func (ie *ICMPEngine) CheckExpirerIsRunning() (started bool) + func (ie *ICMPEngine) CloseSockets() + func (ie *ICMPEngine) ExpirerConfig(FakeSuccess bool) + func (ie *ICMPEngine) HackSysctl() (success bool) + func (ie *ICMPEngine) OpenDoneChannels(fakeSuccess bool) + func (ie *ICMPEngine) OpenSockets() + func (ie *ICMPEngine) Pinger(IP netaddr.IP, packets Sequence, interval time.Duration, sortRTTs bool, ...) (results PingerResults) + func (ie *ICMPEngine) PingerConfig(IP netaddr.IP, packets Sequence, interval time.Duration, sortRTTs bool, ...) (results PingerResults) + func (ie *ICMPEngine) PingerWithStatsChannel(IP netaddr.IP, packets Sequence, interval time.Duration, sortRTTs bool, ...) + func (ie *ICMPEngine) Receiver(proto Protocol, index int, allDone <-chan struct{}, done <-chan struct{}) + func (ie *ICMPEngine) Run(wg *sync.WaitGroup) + func (ie *ICMPEngine) Start() + func (ie *ICMPEngine) StartReceiversSplay() + func (ie *ICMPEngine) Stop(fakeSuccess bool) + type PingExpired struct + Send time.Time + Seq Sequence + type PingSuccess struct + RTT time.Duration + Received time.Time + Send time.Time + Seq Sequence + type PingerResults struct + Count int + Failures int + IP netaddr.IP + Max time.Duration + Mean time.Duration + Min time.Duration + OutOfOrder int + PingerDuration time.Duration + RTTs []time.Duration + Successes int + Sum time.Duration + Variance time.Duration + type PingersT struct + DebugLevel int + DoneCh chan struct{} + DonesChs map[netaddr.IP]chan struct{} + ExpiredChs map[netaddr.IP]chan PingExpired + ExpiresDLL *list.List + Pings map[netaddr.IP]map[Sequence]*list.Element + SuccessChs map[netaddr.IP]chan PingSuccess + WG sync.WaitGroup + type Pings struct + Expiry time.Time + FakeDrop bool + NetaddrIP netaddr.IP + Send time.Time + Seq Sequence + type Protocol uint8 + type ReceiversT struct + Counts map[Protocol]int + DebugLevel int + DoneCh chan struct{} + DoneChs map[Protocol]chan struct{} + Running bool + Runnings map[Protocol]bool + Splay bool + WG sync.WaitGroup + type Sequence uint16 + type SocketsT struct + Addresses map[Protocol]string + DebugLevel int + Networks map[Protocol]string + Open bool + Opens map[Protocol]bool + Sockets map[Protocol]*icmp.PacketConn + type WorkerType rune