SYMBOL INDEX (1907 symbols across 168 files) FILE: assets/windivert/divert.go function PrepareWinDivertRuntime (line 27) | func PrepareWinDivertRuntime() error { function writeIfChecksumDiff (line 59) | func writeIfChecksumDiff(dst string, data []byte) error { FILE: cmd/cmd.go function ptrBool (line 35) | func ptrBool(v bool) *bool { return &v } function ptrStr (line 36) | func ptrStr(v string) *string { return &v } function ptrInt (line 37) | func ptrInt(v int) *int { return &v } type listenInfo (line 39) | type listenInfo struct constant defaultPacketIntervalMs (line 45) | defaultPacketIntervalMs = 50 constant defaultTracerouteTTLIntervalMs (line 46) | defaultTracerouteTTLIntervalMs = 300 function normalizeListenAddr (line 53) | func normalizeListenAddr(addr string) string { function splitListenAddr (line 64) | func splitListenAddr(effective string) (host, port string, ok bool) { function formatHTTPListenURL (line 78) | func formatHTTPListenURL(host, port string) string { function resolveListenAccessHost (line 85) | func resolveListenAccessHost(host string) string { function buildListenInfo (line 92) | func buildListenInfo(addr string) listenInfo { function isDigitsOnly (line 116) | func isDigitsOnly(s string) bool { function normalizeNegativePacketSizeArgs (line 128) | func normalizeNegativePacketSizeArgs(args []string) []string { function isNegativeInteger (line 146) | func isNegativeInteger(s string) bool { function guessLocalIPv4 (line 154) | func guessLocalIPv4() string { function defaultLocalListenAddr (line 168) | func defaultLocalListenAddr() string { function hasIPv4Loopback (line 178) | func hasIPv4Loopback() bool { function hasIPv6Loopback (line 193) | func hasIPv6Loopback() bool { function sanitizeUsagePositionalArgs (line 211) | func sanitizeUsagePositionalArgs(usage string) string { function fixPositionalAlignment (line 240) | func fixPositionalAlignment(usage string) string { type effectiveMTRModes (line 287) | type effectiveMTRModes struct type tracerouteOutputFlags (line 294) | type tracerouteOutputFlags struct type webUIFlags (line 303) | type webUIFlags struct type mtrCLIFlags (line 308) | type mtrCLIFlags struct function registerInitFlag (line 316) | func registerInitFlag(parser *argparse.Parser) *bool { function registerFastTraceFlag (line 323) | func registerFastTraceFlag(parser *argparse.Parser) *bool { function registerMTUFlag (line 330) | func registerMTUFlag(parser *argparse.Parser) *bool { function registerICMPModeFlag (line 337) | func registerICMPModeFlag(parser *argparse.Parser) *int { function buildQueriesHelp (line 344) | func buildQueriesHelp() string { function buildMaxAttemptsHelp (line 351) | func buildMaxAttemptsHelp() string { function buildParallelRequestsHelp (line 355) | func buildParallelRequestsHelp() string { function buildPacketIntervalHelp (line 359) | func buildPacketIntervalHelp() string { function buildTimeoutHelp (line 367) | func buildTimeoutHelp() string { function buildPayloadSizeHelp (line 371) | func buildPayloadSizeHelp() string { function buildTOSHelp (line 375) | func buildTOSHelp() string { function registerTracerouteOutputFlags (line 379) | func registerTracerouteOutputFlags(parser *argparse.Parser) tracerouteOu... function registerWebUIFlags (line 400) | func registerWebUIFlags(parser *argparse.Parser) webUIFlags { function registerWebUIFlagsWithAvailability (line 404) | func registerWebUIFlagsWithAvailability(parser *argparse.Parser, enabled... function registerPacketIntervalFlag (line 417) | func registerPacketIntervalFlag(parser *argparse.Parser) *int { function buildRawHelp (line 424) | func buildRawHelp() string { function buildTTLIntervalHelp (line 436) | func buildTTLIntervalHelp() string { function registerTTLIntervalFlag (line 446) | func registerTTLIntervalFlag(parser *argparse.Parser) *int { function registerTTLIntervalFlagWithMTRSupport (line 450) | func registerTTLIntervalFlagWithMTRSupport(parser *argparse.Parser, mtrE... function applyTTLIntervalDefault (line 458) | func applyTTLIntervalDefault(ttlInterval *int, ttlTimeExplicit, effectiv... function registerDisableMaptraceFlag (line 465) | func registerDisableMaptraceFlag(parser *argparse.Parser) *bool { function registerGlobalpingFlag (line 472) | func registerGlobalpingFlag(parser *argparse.Parser) *string { function registerGlobalpingFlagWithAvailability (line 476) | func registerGlobalpingFlagWithAvailability(parser *argparse.Parser, ena... function registerMTRFlags (line 483) | func registerMTRFlags(parser *argparse.Parser) mtrCLIFlags { function registerFileFlag (line 506) | func registerFileFlag(parser *argparse.Parser) *string { function deriveEffectiveMTRModes (line 513) | func deriveEffectiveMTRModes(mtrMode, reportMode, wideMode, rawPrint boo... function detectExplicitProbeFlags (line 523) | func detectExplicitProbeFlags(parser *argparse.Parser) (queriesExplicit,... function resolvePacketSizeArg (line 542) | func resolvePacketSizeArg(packetSize int, explicit bool, method trace.Me... function applyColorMode (line 549) | func applyColorMode(noColor bool) { function shouldForceNoColorForMTUNonTTY (line 553) | func shouldForceNoColorForMTUNonTTY(mtuMode, jsonPrint, stdoutIsTTY bool... function printStartupBanner (line 557) | func printStartupBanner(jsonPrint bool, effectiveMTR bool) { function maybePrintVersion (line 563) | func maybePrintVersion(ver bool) bool { function maybeRunDeployMode (line 572) | func maybeRunDeployMode(deploy bool, deployListen string) bool { function handleStartupModes (line 615) | func handleStartupModes(noColor, jsonPrint bool, modes effectiveMTRModes... function resolveOSType (line 627) | func resolveOSType() int { function maybePrepareWinDivert (line 638) | func maybePrepareWinDivert(init bool, osType int) bool { function applyDefaultPort (line 652) | func applyDefaultPort(port *int, udp bool) { function clampProbeSettings (line 663) | func clampProbeSettings(tcp bool, numMeasurements, maxAttempts *int) { function resolveTraceMethod (line 677) | func resolveTraceMethod(tcp, udp bool) trace.Method { function maybeRunFastTraceMode (line 688) | func maybeRunFastTraceMode(from string, fastTraceFlag bool, file string,... function configureGeoDNS (line 700) | func configureGeoDNS(dot string) { function normalizeCLITarget (line 706) | func normalizeCLITarget(raw string) string { function resolveCLITargetOrExit (line 730) | func resolveCLITargetOrExit(raw string, usage string) string { function applyDN42Mode (line 746) | func applyDN42Mode(enabled bool, dataOrigin *string, disableMaptrace *bo... function prepareRuntimeEnvironment (line 755) | func prepareRuntimeEnvironment(ctx context.Context, dn42 bool, dataOrigi... function initLeoWebsocket (line 761) | func initLeoWebsocket(ctx context.Context, dataOrigin, powProvider *stri... function closeLeoWebsocket (line 783) | func closeLeoWebsocket(leoWs *wshandle.WsConn) { function maybeHandleGlobalping (line 789) | func maybeHandleGlobalping(from string, opts *trace.GlobalpingOptions, c... function lookupTargetIP (line 797) | func lookupTargetIP(ctx context.Context, domain string, ipv4Only, ipv6On... function lookupTargetIPOrExit (line 808) | func lookupTargetIPOrExit(ctx context.Context, domain string, ipv4Only, ... function resolveSourceDevice (line 819) | func resolveSourceDevice(srcDev string) (*net.Interface, error) { function resolveSourceDeviceAddr (line 831) | func resolveSourceDeviceAddr(dev *net.Interface, dstIP net.IP) string { function resolveFallbackSrcAddr (line 860) | func resolveFallbackSrcAddr(dstIP net.IP) string { function resolveConfiguredSrcAddr (line 878) | func resolveConfiguredSrcAddr(dstIP net.IP, srcAddr, srcDev string) (res... function applySourceDevice (line 892) | func applySourceDevice(srcDev string, dstIP net.IP, srcAddr *string) { function printTraceNav (line 910) | func printTraceNav(jsonPrint bool, effectiveMTR bool, ip net.IP, domain,... function buildTraceConfig (line 916) | func buildTraceConfig( function maybeRunMTRMode (line 969) | func maybeRunMTRMode( function resolveOutputPath (line 1008) | func resolveOutputPath(outputPath string, outputDefault bool) (string, e... function validateJSONRealtimeOutput (line 1022) | func validateJSONRealtimeOutput(jsonPrint bool, outputPath string) error { function setFastIPOutputSuppression (line 1029) | func setFastIPOutputSuppression(suppress bool) func() { function configureTracePrinters (line 1037) | func configureTracePrinters(conf *trace.Config, tablePrint, classicPrint... function applyJSONOutputMode (line 1063) | func applyJSONOutputMode(conf *trace.Config, jsonPrint bool) { function maybeRunUninterruptedRaw (line 1070) | func maybeRunUninterruptedRaw(rawPrint bool, method trace.Method, conf t... function runTraceOnce (line 1081) | func runTraceOnce(method trace.Method, conf trace.Config) (*trace.Result... function finalizeTraceResult (line 1092) | func finalizeTraceResult(ctx context.Context, res *trace.Result, tablePr... function Execute (line 1127) | func Execute() { type mtrRunMode (line 1509) | type mtrRunMode constant mtrRunTUI (line 1512) | mtrRunTUI mtrRunMode = iota constant mtrRunReport (line 1513) | mtrRunReport constant mtrRunRaw (line 1514) | mtrRunRaw function chooseMTRRunMode (line 1517) | func chooseMTRRunMode(effectiveMTRRaw, effectiveReport bool) mtrRunMode { function deriveMTRProbeParams (line 1531) | func deriveMTRProbeParams( function deriveMTRRoundParams (line 1555) | func deriveMTRRoundParams(effectiveReport, queriesExplicit bool, numMeas... function capabilitiesCheck (line 1576) | func capabilitiesCheck() { function checkRuntimePrivileges (line 1583) | func checkRuntimePrivileges(requireWindowsAdmin bool) bool { FILE: cmd/cmd_test.go function TestLookupTargetIPHonorsContextCancellation (line 17) | func TestLookupTargetIPHonorsContextCancellation(t *testing.T) { function TestRegisterGlobalpingFlagWithAvailability_DisabledStillParses (line 38) | func TestRegisterGlobalpingFlagWithAvailability_DisabledStillParses(t *t... function TestRegisterWebUIFlagsWithAvailability_DisabledStillParses (line 50) | func TestRegisterWebUIFlagsWithAvailability_DisabledStillParses(t *testi... function TestRegisterTTLIntervalFlagWithMTRSupport_HelpOmitsTracerouteDefault (line 65) | func TestRegisterTTLIntervalFlagWithMTRSupport_HelpOmitsTracerouteDefaul... function TestApplyTTLIntervalDefault (line 75) | func TestApplyTTLIntervalDefault(t *testing.T) { function TestAdvancedHelpTextMentionsTuningGuidance (line 95) | func TestAdvancedHelpTextMentionsTuningGuidance(t *testing.T) { function TestProbeOptionHelpMentionsRandomPacketSizeAndTOS (line 116) | func TestProbeOptionHelpMentionsRandomPacketSizeAndTOS(t *testing.T) { function TestDetectExplicitProbeFlags (line 132) | func TestDetectExplicitProbeFlags(t *testing.T) { function TestNormalizeNegativePacketSizeArgs (line 158) | func TestNormalizeNegativePacketSizeArgs(t *testing.T) { function TestNegativePacketSizeParsesBeforeTarget (line 173) | func TestNegativePacketSizeParsesBeforeTarget(t *testing.T) { function TestResolvePacketSizeArg_DefaultsToProtocolMinimum (line 194) | func TestResolvePacketSizeArg_DefaultsToProtocolMinimum(t *testing.T) { function TestRegisterTracerouteOutputFlagsParsesOutputPath (line 201) | func TestRegisterTracerouteOutputFlagsParsesOutputPath(t *testing.T) { function TestRegisterTracerouteOutputFlagsParsesOutputDefault (line 220) | func TestRegisterTracerouteOutputFlagsParsesOutputDefault(t *testing.T) { function TestResolveOutputPath (line 239) | func TestResolveOutputPath(t *testing.T) { function TestSetFastIPOutputSuppressionRestoresPreviousValue (line 272) | func TestSetFastIPOutputSuppressionRestoresPreviousValue(t *testing.T) { function TestResolveConfiguredSrcAddrPrefersExplicitSource (line 286) | func TestResolveConfiguredSrcAddrPrefersExplicitSource(t *testing.T) { function TestValidateJSONRealtimeOutput (line 300) | func TestValidateJSONRealtimeOutput(t *testing.T) { function TestShouldForceNoColorForMTUNonTTY (line 309) | func TestShouldForceNoColorForMTUNonTTY(t *testing.T) { FILE: cmd/deploy_disabled.go function runDeploy (line 7) | func runDeploy(_ string) error { FILE: cmd/deploy_full.go function runDeploy (line 9) | func runDeploy(listenAddr string) error { FILE: cmd/flavor_full.go constant appBinName (line 6) | appBinName = "nexttrace" constant enableWebUI (line 7) | enableWebUI = true constant enableGlobalping (line 8) | enableGlobalping = true constant enableMTR (line 9) | enableMTR = true constant enableMTU (line 10) | enableMTU = true constant defaultMTR (line 11) | defaultMTR = false FILE: cmd/flavor_ntr.go constant appBinName (line 6) | appBinName = "ntr" constant enableWebUI (line 7) | enableWebUI = false constant enableGlobalping (line 8) | enableGlobalping = false constant enableMTR (line 9) | enableMTR = true constant enableMTU (line 10) | enableMTU = false constant defaultMTR (line 11) | defaultMTR = true FILE: cmd/flavor_tiny.go constant appBinName (line 6) | appBinName = "nexttrace-tiny" constant enableWebUI (line 7) | enableWebUI = false constant enableGlobalping (line 8) | enableGlobalping = false constant enableMTR (line 9) | enableMTR = false constant enableMTU (line 10) | enableMTU = true constant defaultMTR (line 11) | defaultMTR = false FILE: cmd/globalping_disabled.go function handleGlobalpingTrace (line 12) | func handleGlobalpingTrace(_ *trace.GlobalpingOptions, _ *trace.Config) { FILE: cmd/globalping_full.go function handleGlobalpingTrace (line 19) | func handleGlobalpingTrace(opts *trace.GlobalpingOptions, config *trace.... function globalpingNoResultMessage (line 81) | func globalpingNoResultMessage(lang string) string { FILE: cmd/listen_info_test.go function TestIsDigitsOnly (line 10) | func TestIsDigitsOnly(t *testing.T) { function TestBuildListenInfoPortOnly (line 16) | func TestBuildListenInfoPortOnly(t *testing.T) { function TestBuildListenInfoHostPort (line 23) | func TestBuildListenInfoHostPort(t *testing.T) { function TestBuildListenInfoKeepsInvalidInput (line 29) | func TestBuildListenInfoKeepsInvalidInput(t *testing.T) { FILE: cmd/mtr_mode.go constant defaultMTRInternalTTLIntervalMs (line 20) | defaultMTRInternalTTLIntervalMs = 0 function checkMTRConflicts (line 24) | func checkMTRConflicts(flags map[string]bool) (conflict string, ok bool) { function runMTRTUI (line 51) | func runMTRTUI(method trace.Method, conf trace.Config, hopIntervalMs int... function runMTRReport (line 117) | func runMTRReport(method trace.Method, conf trace.Config, hopIntervalMs ... function runMTRRaw (line 175) | func runMTRRaw(method trace.Method, conf trace.Config, hopIntervalMs int... function normalizeMTRTraceConfig (line 201) | func normalizeMTRTraceConfig(conf trace.Config) trace.Config { function normalizeMTRReportConfig (line 207) | func normalizeMTRReportConfig(conf trace.Config, wide bool) trace.Config { function writeMTRRawRuntimeError (line 220) | func writeMTRRawRuntimeError(w io.Writer, err error) { function resolveSrcIP (line 229) | func resolveSrcIP(conf trace.Config) string { function buildAPIInfo (line 242) | func buildAPIInfo(dataOrigin string) string { function buildRawAPIInfoLine (line 257) | func buildRawAPIInfoLine(dataOrigin string) string { FILE: cmd/mtr_mode_test.go function TestCheckMTRConflicts_NoConflict (line 17) | func TestCheckMTRConflicts_NoConflict(t *testing.T) { function TestCheckMTRConflicts_Table (line 30) | func TestCheckMTRConflicts_Table(t *testing.T) { function TestCheckMTRConflicts_JSON (line 46) | func TestCheckMTRConflicts_JSON(t *testing.T) { function TestCheckMTRConflicts_OutputDefault (line 62) | func TestCheckMTRConflicts_OutputDefault(t *testing.T) { function TestCheckMTRConflicts_FastTrace (line 78) | func TestCheckMTRConflicts_FastTrace(t *testing.T) { function TestCheckMTRConflicts_Deploy (line 94) | func TestCheckMTRConflicts_Deploy(t *testing.T) { function TestCheckMTRConflicts_From (line 110) | func TestCheckMTRConflicts_From(t *testing.T) { function TestCheckMTRConflicts_AllConflicts (line 126) | func TestCheckMTRConflicts_AllConflicts(t *testing.T) { function TestCheckMTRConflicts_RawAllowed (line 140) | func TestCheckMTRConflicts_RawAllowed(t *testing.T) { function TestChooseMTRRunMode_RawPriority (line 152) | func TestChooseMTRRunMode_RawPriority(t *testing.T) { function TestDeriveMTRRoundParams_DefaultsAndOverrides (line 164) | func TestDeriveMTRRoundParams_DefaultsAndOverrides(t *testing.T) { function TestDeriveMTRProbeParams_DefaultsAndOverrides (line 234) | func TestDeriveMTRProbeParams_DefaultsAndOverrides(t *testing.T) { function TestNormalizeMTRTraceConfig_UsesMTRInternalTTLInterval50 (line 300) | func TestNormalizeMTRTraceConfig_UsesMTRInternalTTLInterval50(t *testing... function TestDefaultConstants_NormalVsMTR (line 325) | func TestDefaultConstants_NormalVsMTR(t *testing.T) { function TestNormalizeMTRReportConfig_NonWideDisablesGeoAndKeepsRDNS (line 337) | func TestNormalizeMTRReportConfig_NonWideDisablesGeoAndKeepsRDNS(t *test... function TestNormalizeMTRReportConfig_NonWideRespectsNoRDNS (line 373) | func TestNormalizeMTRReportConfig_NonWideRespectsNoRDNS(t *testing.T) { function TestNormalizeMTRReportConfig_WidePreservesGeoSettings (line 397) | func TestNormalizeMTRReportConfig_WidePreservesGeoSettings(t *testing.T) { function TestBuildRawAPIInfoLine_LeoMoeAPI (line 428) | func TestBuildRawAPIInfoLine_LeoMoeAPI(t *testing.T) { function TestWriteMTRRawRuntimeError_WritesToProvidedWriter (line 448) | func TestWriteMTRRawRuntimeError_WritesToProvidedWriter(t *testing.T) { function TestParseMTRKey_Quit (line 461) | func TestParseMTRKey_Quit(t *testing.T) { function TestParseMTRKey_Pause (line 469) | func TestParseMTRKey_Pause(t *testing.T) { function TestParseMTRKey_Resume (line 477) | func TestParseMTRKey_Resume(t *testing.T) { function TestParseMTRKey_Unknown (line 483) | func TestParseMTRKey_Unknown(t *testing.T) { function TestParseMTRKey_Restart (line 495) | func TestParseMTRKey_Restart(t *testing.T) { function TestParseMTRKey_DisplayMode (line 503) | func TestParseMTRKey_DisplayMode(t *testing.T) { function TestParseMTRKey_Unknown_IncludesY (line 511) | func TestParseMTRKey_Unknown_IncludesY(t *testing.T) { function TestMTRUI_ConsumeRestartRequest (line 520) | func TestMTRUI_ConsumeRestartRequest(t *testing.T) { function TestMTRUI_DisplayModeCycle (line 550) | func TestMTRUI_DisplayModeCycle(t *testing.T) { function TestMTRUI_DisplayModeNotResetByRestart (line 587) | func TestMTRUI_DisplayModeNotResetByRestart(t *testing.T) { function TestMTRUI_InitialDisplayMode_FromFlag (line 610) | func TestMTRUI_InitialDisplayMode_FromFlag(t *testing.T) { function TestMTRUI_InitialDisplayMode_CycleFromNonZero (line 621) | func TestMTRUI_InitialDisplayMode_CycleFromNonZero(t *testing.T) { function TestCheckTTY_PipeFd (line 643) | func TestCheckTTY_PipeFd(t *testing.T) { function TestCheckTTY_StdoutRedirected (line 660) | func TestCheckTTY_StdoutRedirected(t *testing.T) { function TestCheckTTY_EmptyFds (line 677) | func TestCheckTTY_EmptyFds(t *testing.T) { function TestParseMTRKey_NameToggle (line 688) | func TestParseMTRKey_NameToggle(t *testing.T) { function TestMTRUI_NameModeToggle (line 696) | func TestMTRUI_NameModeToggle(t *testing.T) { function TestMTRUI_NameModeNotResetByRestart (line 719) | func TestMTRUI_NameModeNotResetByRestart(t *testing.T) { function feedAll (line 745) | func feedAll(p *mtrInputParser, data []byte) []mtrInputAction { function TestMTRInputParser_IgnoresX10MouseSequence (line 756) | func TestMTRInputParser_IgnoresX10MouseSequence(t *testing.T) { function TestMTRInputParser_IgnoresSGRMouseSequence (line 774) | func TestMTRInputParser_IgnoresSGRMouseSequence(t *testing.T) { function TestMTRInputParser_IgnoresFocusSequence (line 790) | func TestMTRInputParser_IgnoresFocusSequence(t *testing.T) { function TestMTRInputParser_RecognizesNormalKeysAfterEscapeNoise (line 807) | func TestMTRInputParser_RecognizesNormalKeysAfterEscapeNoise(t *testing.... function TestMTRInputParser_SS3Ignored (line 842) | func TestMTRInputParser_SS3Ignored(t *testing.T) { function TestMTRInputParser_OSCIgnored (line 852) | func TestMTRInputParser_OSCIgnored(t *testing.T) { function TestMTRInputParser_BracketedPasteCSISwallowed (line 862) | func TestMTRInputParser_BracketedPasteCSISwallowed(t *testing.T) { FILE: cmd/mtr_ui.go type mtrUI (line 18) | type mtrUI struct method IsTTY (line 41) | func (u *mtrUI) IsTTY() bool { method IsPaused (line 56) | func (u *mtrUI) IsPaused() bool { method CycleDisplayMode (line 61) | func (u *mtrUI) CycleDisplayMode() { method CurrentDisplayMode (line 72) | func (u *mtrUI) CurrentDisplayMode() int { method ToggleNameMode (line 77) | func (u *mtrUI) ToggleNameMode() int32 { method CurrentNameMode (line 88) | func (u *mtrUI) CurrentNameMode() int { method ToggleMPLS (line 93) | func (u *mtrUI) ToggleMPLS() { method IsMPLSDisabled (line 104) | func (u *mtrUI) IsMPLSDisabled() bool { method Enter (line 132) | func (u *mtrUI) Enter() { method Leave (line 153) | func (u *mtrUI) Leave() { method ReadKeysLoop (line 340) | func (u *mtrUI) ReadKeysLoop(ctx context.Context) { method ConsumeRestartRequest (line 386) | func (u *mtrUI) ConsumeRestartRequest() bool { function newMTRUI (line 32) | func newMTRUI(cancel context.CancelFunc, initialDisplayMode int) *mtrUI { function CheckTTY (line 46) | func CheckTTY(fds ...int) bool { function disableTerminalInputModes (line 115) | func disableTerminalInputModes() { type mtrInputAction (line 175) | type mtrInputAction constant mtrActionNone (line 178) | mtrActionNone mtrInputAction = iota constant mtrActionQuit (line 179) | mtrActionQuit constant mtrActionPause (line 180) | mtrActionPause constant mtrActionResume (line 181) | mtrActionResume constant mtrActionRestart (line 182) | mtrActionRestart constant mtrActionDisplayMode (line 183) | mtrActionDisplayMode constant mtrActionNameToggle (line 184) | mtrActionNameToggle constant mtrActionMPLSToggle (line 185) | mtrActionMPLSToggle type mtrInputParser (line 190) | type mtrInputParser struct method Feed (line 212) | func (p *mtrInputParser) Feed(b byte) mtrInputAction { method feedGround (line 234) | func (p *mtrInputParser) feedGround(b byte) mtrInputAction { method feedEsc (line 242) | func (p *mtrInputParser) feedEsc(b byte) mtrInputAction { method feedCSI (line 257) | func (p *mtrInputParser) feedCSI(b byte) mtrInputAction { method feedSS3 (line 275) | func (p *mtrInputParser) feedSS3() mtrInputAction { method feedOSC (line 280) | func (p *mtrInputParser) feedOSC(b byte) mtrInputAction { method feedX10Mouse (line 290) | func (p *mtrInputParser) feedX10Mouse() mtrInputAction { method feedSGRMouse (line 298) | func (p *mtrInputParser) feedSGRMouse(b byte) mtrInputAction { type mtrParserState (line 195) | type mtrParserState constant mtrStateGround (line 198) | mtrStateGround mtrParserState = iota constant mtrStateEsc (line 199) | mtrStateEsc constant mtrStateCSI (line 200) | mtrStateCSI constant mtrStateSS3 (line 201) | mtrStateSS3 constant mtrStateOSC (line 202) | mtrStateOSC constant mtrStateX10Mouse (line 203) | mtrStateX10Mouse constant mtrStateSGRMouse (line 204) | mtrStateSGRMouse constant mtrParserMaxCSI (line 208) | mtrParserMaxCSI = 64 function mapKeyToAction (line 306) | func mapKeyToAction(b byte) mtrInputAction { function ParseMTRKey (line 392) | func ParseMTRKey(b byte) string { FILE: cmd/mtu_mode.go type mtuConflictFlag (line 23) | type mtuConflictFlag struct function checkMTUConflicts (line 28) | func checkMTUConflicts(flags []mtuConflictFlag) (string, bool) { function normalizeMTUProtocolFlags (line 37) | func normalizeMTUProtocolFlags(tcp, udp *bool) error { function buildMTUConflictFlags (line 47) | func buildMTUConflictFlags( function resolveMTUSourceIP (line 71) | func resolveMTUSourceIP(dstIP net.IP, srcAddr string) (net.IP, error) { function runStandaloneMTUMode (line 104) | func runStandaloneMTUMode(cfg mtutrace.Config, jsonPrint bool) error { function printMTUResult (line 141) | func printMTUResult(w io.Writer, result *mtutrace.Result) error { function printMTUResultWithStyle (line 145) | func printMTUResultWithStyle(w io.Writer, result *mtutrace.Result, style... function formatMTUHopLine (line 160) | func formatMTUHopLine(hop mtutrace.Hop) string { function formatMTUHopLineWithStyle (line 164) | func formatMTUHopLineWithStyle(hop mtutrace.Hop, style mtuTextStyle) str... function formatMTUHopSnapshot (line 190) | func formatMTUHopSnapshot(event mtutrace.StreamEvent) string { function formatMTUHopSnapshotWithStyle (line 194) | func formatMTUHopSnapshotWithStyle(event mtutrace.StreamEvent, style mtu... function printMTUHeader (line 201) | func printMTUHeader(w io.Writer, target, resolvedIP string, startMTU, pr... function printMTUSummary (line 207) | func printMTUSummary(w io.Writer, pathMTU int, style mtuTextStyle) error { type mtuStreamRenderer (line 212) | type mtuStreamRenderer struct method Render (line 228) | func (r *mtuStreamRenderer) Render(event mtutrace.StreamEvent) error { method ensureHeader (line 264) | func (r *mtuStreamRenderer) ensureHeader(event mtutrace.StreamEvent) e... method renderTTYLine (line 278) | func (r *mtuStreamRenderer) renderTTYLine(line string, final bool) err... function newMTUStreamRenderer (line 220) | func newMTUStreamRenderer(w io.Writer, isTTY bool) *mtuStreamRenderer { type mtuTextStyle (line 290) | type mtuTextStyle struct method apply (line 298) | func (s mtuTextStyle) apply(text string, attrs ...color.Attribute) str... method header (line 305) | func (s mtuTextStyle) header(text string) string { method ttl (line 309) | func (s mtuTextStyle) ttl(ttl int) string { method placeholder (line 313) | func (s mtuTextStyle) placeholder() string { method timeout (line 317) | func (s mtuTextStyle) timeout() string { method hopTarget (line 321) | func (s mtuTextStyle) hopTarget(event mtutrace.Event, target string) s... method pmtu (line 330) | func (s mtuTextStyle) pmtu(pmtu int) string { method summary (line 334) | func (s mtuTextStyle) summary(pathMTU int) string { function newMTUTextStyle (line 294) | func newMTUTextStyle(enabled bool) mtuTextStyle { function buildMTUTraceConfig (line 338) | func buildMTUTraceConfig( function formatMTUGeo (line 374) | func formatMTUGeo(hop mtutrace.Hop) string { FILE: cmd/mtu_mode_test.go function TestNormalizeMTUProtocolFlagsAutoEnablesUDP (line 15) | func TestNormalizeMTUProtocolFlagsAutoEnablesUDP(t *testing.T) { function TestNormalizeMTUProtocolFlagsRejectsTCP (line 26) | func TestNormalizeMTUProtocolFlagsRejectsTCP(t *testing.T) { function TestCheckMTUConflicts (line 34) | func TestCheckMTUConflicts(t *testing.T) { function TestBuildMTUConflictFlagsIncludesOutputDefault (line 47) | func TestBuildMTUConflictFlagsIncludesOutputDefault(t *testing.T) { function TestPrintMTUResultIncludesPMTUAndSummary (line 58) | func TestPrintMTUResultIncludesPMTUAndSummary(t *testing.T) { function TestFormatMTUHopSnapshotStartPlaceholder (line 89) | func TestFormatMTUHopSnapshotStartPlaceholder(t *testing.T) { function TestMTUStreamRendererTTYRewritesCurrentLine (line 99) | func TestMTUStreamRendererTTYRewritesCurrentLine(t *testing.T) { function TestMTUStreamRendererTTYAppliesColorsWhenEnabled (line 156) | func TestMTUStreamRendererTTYAppliesColorsWhenEnabled(t *testing.T) { function TestMTUStreamRendererNonTTYPrintsOnlyFinalLines (line 200) | func TestMTUStreamRendererNonTTYPrintsOnlyFinalLines(t *testing.T) { function TestMTUResultJSONIncludesGeo (line 252) | func TestMTUResultJSONIncludesGeo(t *testing.T) { FILE: config/viper.go function InitConfig (line 13) | func InitConfig() { FILE: dn42/geofeed.go type GeoFeedRow (line 13) | type GeoFeedRow struct function GetGeoFeed (line 23) | func GetGeoFeed(ip string) (GeoFeedRow, bool) { function ReadGeoFeed (line 35) | func ReadGeoFeed() ([]GeoFeedRow, error) { function FindGeoFeedRow (line 90) | func FindGeoFeedRow(ipStr string, rows []GeoFeedRow) (GeoFeedRow, bool) { FILE: dn42/geofeed_test.go function TestFindGeoFeedRowInvalidIP (line 9) | func TestFindGeoFeedRowInvalidIP(t *testing.T) { FILE: dn42/ptr.go type PtrRow (line 14) | type PtrRow struct function matchesPattern (line 21) | func matchesPattern(prefix string, s string) bool { function FindPtrRecord (line 33) | func FindPtrRecord(ptr string) (PtrRow, error) { FILE: dn42/ptr_test.go function TestFindPtrRecordMatchesCity (line 13) | func TestFindPtrRecordMatchesCity(t *testing.T) { function TestFindPtrRecordMatchesIATACode (line 30) | func TestFindPtrRecordMatchesIATACode(t *testing.T) { function TestFindPtrRecordNotFound (line 46) | func TestFindPtrRecordNotFound(t *testing.T) { FILE: fast_trace/basic.go type AllLocationCollection (line 3) | type AllLocationCollection struct type BackBoneCollection (line 12) | type BackBoneCollection struct type ISPCollection (line 24) | type ISPCollection struct constant CT163 (line 31) | CT163 string = "电信 163 AS4134" constant CTCN2 (line 32) | CTCN2 string = "电信 CN2 AS4809" constant CU169 (line 33) | CU169 string = "联通 169 AS4837" constant CU9929 (line 34) | CU9929 string = "联通 A网(CNC) AS9929" constant CM (line 35) | CM string = "移动 CMNET AS9808" constant CMIN2 (line 36) | CMIN2 string = "移动 CMIN2 AS58807" constant EDU (line 37) | EDU string = "教育网 CERNET AS4538" constant CST (line 38) | CST string = "科技网 CSTNET AS7497" FILE: fast_trace/fast_trace ipv6.go method tracert_v6 (line 21) | func (f *FastTracer) tracert_v6(location string, ispCollection ISPCollec... method testAll_v6 (line 89) | func (f *FastTracer) testAll_v6() { method testCT_v6 (line 99) | func (f *FastTracer) testCT_v6() { method testCU_v6 (line 106) | func (f *FastTracer) testCU_v6() { method testCM_v6 (line 114) | func (f *FastTracer) testCM_v6() { method testEDU_v6 (line 121) | func (f *FastTracer) testEDU_v6() { method testFastBJ_v6 (line 131) | func (f *FastTracer) testFastBJ_v6() { method testFastSH_v6 (line 139) | func (f *FastTracer) testFastSH_v6() { method testFastGZ_v6 (line 145) | func (f *FastTracer) testFastGZ_v6() { function FastTestv6 (line 151) | func FastTestv6(traceMode trace.Method, paramsFastTrace ParamsFastTrace) { function readFastTestv6Choice (line 169) | func readFastTestv6Choice() string { function fastTestMethod (line 179) | func fastTestMethod(traceMode trace.Method) trace.Method { function runFastTestv6Selection (line 188) | func runFastTestv6Selection(ft *FastTracer, choice string) { FILE: fast_trace/fast_trace.go type FastTracer (line 25) | type FastTracer struct method tracert (line 314) | func (f *FastTracer) tracert(location string, ispCollection ISPCollect... method testAll (line 417) | func (f *FastTracer) testAll() { method testCT (line 427) | func (f *FastTracer) testCT() { method testCU (line 437) | func (f *FastTracer) testCU() { method testCM (line 448) | func (f *FastTracer) testCM() { method testEDU (line 458) | func (f *FastTracer) testEDU() { method testFastBJ (line 469) | func (f *FastTracer) testFastBJ() { method testFastSH (line 477) | func (f *FastTracer) testFastSH() { method testFastGZ (line 483) | func (f *FastTracer) testFastGZ() { type ParamsFastTrace (line 30) | type ParamsFastTrace struct type IpListElement (line 52) | type IpListElement struct function resolveTraceMethod (line 58) | func resolveTraceMethod(traceMode trace.Method) trace.Method { function resolveFastTraceSourceAddr (line 69) | func resolveFastTraceSourceAddr(srcDev string, wantV4 bool) string { function withFastTraceSourceAddr (line 98) | func withFastTraceSourceAddr(params ParamsFastTrace, wantV4 bool) Params... function promptFastTraceChoice (line 107) | func promptFastTraceChoice(prompt, defaultChoice string) string { function initFastTraceWS (line 116) | func initFastTraceWS(ctx context.Context) *wshandle.WsConn { function closeFastTraceWS (line 123) | func closeFastTraceWS(w *wshandle.WsConn) { function newFastTracer (line 129) | func newFastTracer(traceMode trace.Method, params ParamsFastTrace) FastT... function runFastTraceByChoice (line 136) | func runFastTraceByChoice(ft FastTracer, choice string) { function parseIPListLine (line 157) | func parseIPListLine(ctx context.Context, line string) (IpListElement, b... function loadIPList (line 186) | func loadIPList(ctx context.Context, filePath string) []IpListElement { function printFileTraceHeader (line 216) | func printFileTraceHeader(ip IpListElement, params ParamsFastTrace, trac... function buildFileTraceConfig (line 229) | func buildFileTraceConfig(params ParamsFastTrace, tracerouteMethod trace... function configureFastTraceRealtimePrinter (line 263) | func configureFastTraceRealtimePrinter(conf *trace.Config, outputPath, h... function runFileTraceTarget (line 285) | func runFileTraceTarget(params ParamsFastTrace, tracerouteMethod trace.M... function FastTest (line 383) | func FastTest(traceMode trace.Method, paramsFastTrace ParamsFastTrace) { function testFile (line 407) | func testFile(paramsFastTrace ParamsFastTrace, traceMode trace.Method) { FILE: fast_trace/fast_trace_test.go function TestTrace (line 7) | func TestTrace(t *testing.T) { FILE: internal/hoprender/group.go type Group (line 9) | type Group struct function GroupHopAttempts (line 15) | func GroupHopAttempts(hops []trace.Hop) []Group { FILE: ipgeo/chunzhen.go function Chunzhen (line 15) | func Chunzhen(ip string, timeout time.Duration, _ string, _ bool) (*IPGe... FILE: ipgeo/dn42.go function LtdCodeToCountryOrAreaName (line 10) | func LtdCodeToCountryOrAreaName(Code string) string { function DN42 (line 22) | func DN42(ip string, _ time.Duration, _ string, _ bool) (*IPGeoData, err... FILE: ipgeo/dn42_test.go function TestDN42GeoFeedAndPtrIntegration (line 14) | func TestDN42GeoFeedAndPtrIntegration(t *testing.T) { function TestDN42PtrFallback (line 39) | func TestDN42PtrFallback(t *testing.T) { function TestDN42UnknownDefaults (line 60) | func TestDN42UnknownDefaults(t *testing.T) { FILE: ipgeo/ipapicom.go function IPApiCom (line 18) | func IPApiCom(ip string, timeout time.Duration, _ string, _ bool) (*IPGe... FILE: ipgeo/ipdbone.go type IPDBOneConfig (line 25) | type IPDBOneConfig struct function GetDefaultConfig (line 32) | func GetDefaultConfig() *IPDBOneConfig { type IPDBOneTokenCache (line 41) | type IPDBOneTokenCache struct method GetToken (line 48) | func (c *IPDBOneTokenCache) GetToken() string { method SetToken (line 59) | func (c *IPDBOneTokenCache) SetToken(token string, expiresIn time.Dura... type IPDBOneClient (line 68) | type IPDBOneClient struct method cloneWithTimeout (line 85) | func (c *IPDBOneClient) cloneWithTimeout(timeout time.Duration) *IPDBO... method fetchToken (line 98) | func (c *IPDBOneClient) fetchToken() error { method ensureToken (line 140) | func (c *IPDBOneClient) ensureToken() error { method LookupIP (line 166) | func (c *IPDBOneClient) LookupIP(ip string, lang string) (*IPGeoData, ... function NewIPDBOneClient (line 76) | func NewIPDBOneClient() *IPDBOneClient { function parseIPDBOneResponse (line 211) | func parseIPDBOneResponse(ip string, responseBody []byte) (*IPGeoData, e... function hasJSONValue (line 221) | func hasJSONValue(result gjson.Result) bool { function parseIPDBOneGeo (line 225) | func parseIPDBOneGeo(geoData gjson.Result, result *IPGeoData) { function parseIPDBOneRouting (line 247) | func parseIPDBOneRouting(routingData gjson.Result, result *IPGeoData) { function IPDBOne (line 271) | func IPDBOne(ip string, timeout time.Duration, lang string, _ bool) (*IP... FILE: ipgeo/ipfilter.go type cidrFilterRule (line 7) | type cidrFilterRule struct function cidrRangeContains (line 53) | func cidrRangeContains(cidrRange string, checkIP string) bool { function matchCIDRFilterRule (line 62) | func matchCIDRFilterRule(ip string, rules []cidrFilterRule) (string, boo... function classifyPrivateIP (line 71) | func classifyPrivateIP(parsedIP net.IP, rawIP string) (string, bool) { function isInvalidScopedIPv6 (line 81) | func isInvalidScopedIPv6(parsedIP net.IP, rawIP string) bool { function Filter (line 86) | func Filter(ip string) (*IPGeoData, bool) { FILE: ipgeo/ipfilter_test.go function TestCidrRangeContains_Match (line 12) | func TestCidrRangeContains_Match(t *testing.T) { function TestCidrRangeContains_NoMatch (line 16) | func TestCidrRangeContains_NoMatch(t *testing.T) { function TestCidrRangeContains_InvalidCIDR (line 20) | func TestCidrRangeContains_InvalidCIDR(t *testing.T) { function TestCidrRangeContains_InvalidIP (line 24) | func TestCidrRangeContains_InvalidIP(t *testing.T) { function TestFilter_RFC1918_Private (line 31) | func TestFilter_RFC1918_Private(t *testing.T) { function TestFilter_Loopback (line 39) | func TestFilter_Loopback(t *testing.T) { function TestFilter_LinkLocal (line 45) | func TestFilter_LinkLocal(t *testing.T) { function TestFilter_CGNAT (line 51) | func TestFilter_CGNAT(t *testing.T) { function TestFilter_Documentation_192_0_2 (line 57) | func TestFilter_Documentation_192_0_2(t *testing.T) { function TestFilter_Documentation_198_51_100 (line 63) | func TestFilter_Documentation_198_51_100(t *testing.T) { function TestFilter_Documentation_203_0_113 (line 69) | func TestFilter_Documentation_203_0_113(t *testing.T) { function TestFilter_Benchmark (line 75) | func TestFilter_Benchmark(t *testing.T) { function TestFilter_Multicast (line 81) | func TestFilter_Multicast(t *testing.T) { function TestFilter_DOD (line 87) | func TestFilter_DOD(t *testing.T) { function TestFilter_PublicIPv4_NotFiltered (line 97) | func TestFilter_PublicIPv4_NotFiltered(t *testing.T) { function TestFilter_PublicIPv4_1_1_1_1_NotFiltered (line 102) | func TestFilter_PublicIPv4_1_1_1_1_NotFiltered(t *testing.T) { function TestFilter_IPv6_LinkLocal (line 109) | func TestFilter_IPv6_LinkLocal(t *testing.T) { function TestFilter_IPv6_ULA (line 115) | func TestFilter_IPv6_ULA(t *testing.T) { function TestFilter_IPv6_Documentation (line 121) | func TestFilter_IPv6_Documentation(t *testing.T) { function TestFilter_IPv6_Multicast (line 127) | func TestFilter_IPv6_Multicast(t *testing.T) { function TestFilter_IPv6_GlobalUnicast_NotFiltered (line 133) | func TestFilter_IPv6_GlobalUnicast_NotFiltered(t *testing.T) { function TestFilter_IPv6_InvalidScope (line 138) | func TestFilter_IPv6_InvalidScope(t *testing.T) { FILE: ipgeo/ipgeo.go type IPGeoData (line 10) | type IPGeoData struct function GetSource (line 33) | func GetSource(s string) Source { function GetSourceWithGeoDNS (line 62) | func GetSourceWithGeoDNS(s string, dotServer string) Source { function disableGeoIP (line 75) | func disableGeoIP(string, time.Duration, string, bool) (*IPGeoData, erro... FILE: ipgeo/ipgeo_test.go function TestGetSourceMappings (line 12) | func TestGetSourceMappings(t *testing.T) { function TestDisableGeoIP (line 43) | func TestDisableGeoIP(t *testing.T) { FILE: ipgeo/ipinfo.go function IPInfo (line 14) | func IPInfo(ip string, timeout time.Duration, _ string, _ bool) (*IPGeoD... FILE: ipgeo/ipinfoLocal.go constant ipinfoDataBaseFilename (line 19) | ipinfoDataBaseFilename = "ipinfoLocal.mmdb" function getIPInfoLocalPath (line 30) | func getIPInfoLocalPath() error { function IPInfoLocal (line 65) | func IPInfoLocal(ip string, _ time.Duration, _ string, _ bool) (*IPGeoDa... FILE: ipgeo/ipinsight.go function IPInSight (line 12) | func IPInSight(ip string, timeout time.Duration, _ string, _ bool) (*IPG... FILE: ipgeo/ipsb.go function IPSB (line 15) | func IPSB(ip string, timeout time.Duration, _ string, _ bool) (*IPGeoDat... FILE: ipgeo/leo.go type IPPool (line 24) | type IPPool struct function sendIPRequest (line 33) | func sendIPRequest(ip string) { function receiveParse (line 38) | func receiveParse() { function LeoIP (line 111) | func LeoIP(ip string, timeout time.Duration, lang string, maptrace bool)... FILE: ipgeo/tokens.go type tokenData (line 5) | type tokenData struct method BaseOrDefault (line 12) | func (t *tokenData) BaseOrDefault(def string) string { FILE: ipgeo/tokens_test.go function TestBaseOrDefault_Empty (line 9) | func TestBaseOrDefault_Empty(t *testing.T) { function TestBaseOrDefault_Custom (line 14) | func TestBaseOrDefault_Custom(t *testing.T) { FILE: main.go function main (line 7) | func main() { FILE: pow/pow.go constant baseURL (line 15) | baseURL = "/v3/challenge" function resolveTokenRequestTimeout (line 20) | func resolveTokenRequestTimeout(ctx context.Context, fallback time.Durat... function GetToken (line 41) | func GetToken(fastIp string, host string, port string) (string, error) { function GetTokenWithContext (line 45) | func GetTokenWithContext(ctx context.Context, fastIp string, host string... FILE: pow/pow_test.go function TestGetToken (line 15) | func TestGetToken(t *testing.T) { function TestGetTokenWithContextReturnsCanceled (line 33) | func TestGetTokenWithContextReturnsCanceled(t *testing.T) { function TestGetTokenWithContextClampsRequestTimeoutToContextDeadline (line 64) | func TestGetTokenWithContextClampsRequestTimeoutToContextDeadline(t *tes... FILE: printer/basic.go function Version (line 19) | func Version() { function CopyRight (line 28) | func CopyRight() { function sponsor (line 47) | func sponsor() { function PrintTraceRouteNav (line 60) | func PrintTraceRouteNav(ip net.IP, domain string, dataOrigin string, max... function applyLangSetting (line 78) | func applyLangSetting(h *trace.Hop) { FILE: printer/classic_printer.go type HopInfo (line 10) | type HopInfo constant General (line 13) | General HopInfo = 0 constant IXP (line 14) | IXP HopInfo = 1 constant Peer (line 15) | Peer HopInfo = 2 constant PoP (line 16) | PoP HopInfo = 3 constant Aboard (line 17) | Aboard HopInfo = 4 function findLatestAvailableHop (line 20) | func findLatestAvailableHop(res *trace.Result, ttl int, probesIndex int)... function unifyName (line 38) | func unifyName(name string) string { function chinaISPPeer (line 50) | func chinaISPPeer(hostname string) bool { function chinaMainland (line 60) | func chinaMainland(h trace.Hop) bool { function makeHopsType (line 68) | func makeHopsType(res *trace.Result, ttl int) map[int]HopInfo { function ClassicPrinter (line 98) | func ClassicPrinter(res *trace.Result, ttl int) { FILE: printer/easy.go function EasyPrinter (line 10) | func EasyPrinter(res *trace.Result, ttl int) { FILE: printer/mtr_raw.go function FormatMTRRawLine (line 12) | func FormatMTRRawLine(rec trace.MTRRawRecord) string { function sanitizeRawField (line 47) | func sanitizeRawField(s string) string { FILE: printer/mtr_table.go function MTRTablePrinter (line 24) | func MTRTablePrinter(stats []trace.MTRHopStat, iteration int, mode int, ... function MTRRenderTable (line 62) | func MTRRenderTable(stats []trace.MTRHopStat, mode int, nameMode int, la... type MTRRow (line 89) | type MTRRow struct function formatLoss (line 106) | func formatLoss(pct float64) string { function formatMs (line 111) | func formatMs(ms float64) string { function isWaitingHopStat (line 117) | func isWaitingHopStat(s trace.MTRHopStat) bool { type mtrMetrics (line 122) | type mtrMetrics struct function formatMTRMetricStrings (line 128) | func formatMTRMetricStrings(s trace.MTRHopStat) mtrMetrics { constant HostModeBase (line 148) | HostModeBase = 0 constant HostModeASN (line 149) | HostModeASN = 1 constant HostModeCity (line 150) | HostModeCity = 2 constant HostModeOwner (line 151) | HostModeOwner = 3 constant HostModeFull (line 152) | HostModeFull = 4 constant HostNamePTRorIP (line 160) | HostNamePTRorIP = 0 constant HostNameIPOnly (line 161) | HostNameIPOnly = 1 function formatMTRHostBase (line 175) | func formatMTRHostBase(s trace.MTRHopStat, nameMode int, showIPs bool) s... function geoField (line 211) | func geoField(cn, en, lang string) string { function formatMTRHostByMode (line 237) | func formatMTRHostByMode(s trace.MTRHopStat, mode int, nameMode int, lan... function formatMTRHostWithMPLS (line 242) | func formatMTRHostWithMPLS(s trace.MTRHopStat, mode int, nameMode int, l... function formatMTRHost (line 260) | func formatMTRHost(s trace.MTRHopStat) string { type mtrHostParts (line 269) | type mtrHostParts struct function buildMTRHostParts (line 280) | func buildMTRHostParts(s trace.MTRHopStat, mode int, nameMode int, lang ... function buildTUIHostParts (line 298) | func buildTUIHostParts(s trace.MTRHopStat, mode int, nameMode int, lang ... function formatTUIHost (line 315) | func formatTUIHost(parts mtrHostParts, asnW int) string { function formatReportHost (line 334) | func formatReportHost(s trace.MTRHopStat, mode int, nameMode int, lang s... function formatCompactReportHost (line 348) | func formatCompactReportHost(s trace.MTRHopStat, nameMode int, showIPs b... function formatMTRGeoData (line 356) | func formatMTRGeoData(data *ipgeo.IPGeoData) string { type MTRReportOptions (line 405) | type MTRReportOptions struct function MTRReportPrint (line 428) | func MTRReportPrint(stats []trace.MTRHopStat, opts MTRReportOptions) { function joinMTRHostParts (line 437) | func joinMTRHostParts(parts mtrHostParts, extrasSep string) string { function mtrASNLabel (line 452) | func mtrASNLabel(data *ipgeo.IPGeoData) string { function mtrGeoExtras (line 459) | func mtrGeoExtras(data *ipgeo.IPGeoData, mode int, lang string) []string { function singleMTRGeoExtra (line 472) | func singleMTRGeoExtra(value string) []string { function mtrBestLocation (line 479) | func mtrBestLocation(data *ipgeo.IPGeoData, lang string) string { function mtrGeoOwner (line 489) | func mtrGeoOwner(data *ipgeo.IPGeoData) string { function buildMTRFullGeoExtras (line 499) | func buildMTRFullGeoExtras(data *ipgeo.IPGeoData, lang string) []string { function normalizeMTRReportLang (line 519) | func normalizeMTRReportLang(lang string) string { function prepareMTRReportHosts (line 526) | func prepareMTRReportHosts(stats []trace.MTRHopStat, opts MTRReportOptio... function buildMTRReportHost (line 539) | func buildMTRReportHost(s trace.MTRHopStat, opts MTRReportOptions, lang ... function computeWideMTRReportHostWidth (line 546) | func computeWideMTRReportHostWidth(hosts []string, srcHost string) int { function narrowMTRReportHostWidth (line 556) | func narrowMTRReportHostWidth() int { function truncateMTRReportHosts (line 571) | func truncateMTRReportHosts(hosts []string, hostColW int) { function printMTRReportHeader (line 579) | func printMTRReportHeader(opts MTRReportOptions, hostColW int) { function mtrReportHeaderMetrics (line 587) | func mtrReportHeaderMetrics() string { function printMTRReportRows (line 592) | func printMTRReportRows(stats []trace.MTRHopStat, hosts []string, hostCo... function mtrReportPrefix (line 600) | func mtrReportPrefix(ttl int, prevTTL int) string { function formatMTRReportMetrics (line 607) | func formatMTRReportMetrics(s trace.MTRHopStat) string { function reportDisplayWidth (line 614) | func reportDisplayWidth(s string) int { function reportTruncateToWidth (line 619) | func reportTruncateToWidth(s string, maxW int) string { function reportPadRight (line 627) | func reportPadRight(s string, width int) string { FILE: printer/mtr_table_test.go function captureStdout (line 16) | func captureStdout(t *testing.T, fn func()) string { function TestMTRRenderTable_HeaderOrder (line 41) | func TestMTRRenderTable_HeaderOrder(t *testing.T) { function TestMTRRenderTable_NumericFormatting (line 80) | func TestMTRRenderTable_NumericFormatting(t *testing.T) { function TestMTRRenderTable_NilGeo (line 111) | func TestMTRRenderTable_NilGeo(t *testing.T) { function TestMTRRenderTable_EmptyHostname (line 125) | func TestMTRRenderTable_EmptyHostname(t *testing.T) { function TestMTRRenderTable_HostnameAndIP (line 143) | func TestMTRRenderTable_HostnameAndIP(t *testing.T) { function TestMTRRenderTable_MultiPath (line 158) | func TestMTRRenderTable_MultiPath(t *testing.T) { function TestMTRRenderTable_UnknownHost (line 183) | func TestMTRRenderTable_UnknownHost(t *testing.T) { function TestFormatLoss (line 194) | func TestFormatLoss(t *testing.T) { function TestFormatMs (line 212) | func TestFormatMs(t *testing.T) { function TestMTRTUIRenderString_Header (line 234) | func TestMTRTUIRenderString_Header(t *testing.T) { function TestMTRTUIRenderString_UsesCRLFOnly (line 274) | func TestMTRTUIRenderString_UsesCRLFOnly(t *testing.T) { function TestMTRTablePrinter_NoRoundText (line 305) | func TestMTRTablePrinter_NoRoundText(t *testing.T) { function TestMTRTUIRenderString_FramePrefix (line 325) | func TestMTRTUIRenderString_FramePrefix(t *testing.T) { function TestMTRTUIRenderString_PausedStatus (line 349) | func TestMTRTUIRenderString_PausedStatus(t *testing.T) { function TestMTRTUIRenderString_HopRows (line 363) | func TestMTRTUIRenderString_HopRows(t *testing.T) { function TestMTRTUIRenderString_MultiPath (line 390) | func TestMTRTUIRenderString_MultiPath(t *testing.T) { function TestFormatTUIHopPrefix (line 409) | func TestFormatTUIHopPrefix(t *testing.T) { function TestTruncateStr (line 430) | func TestTruncateStr(t *testing.T) { function TestTUI_RightAlignedMetricsBlock (line 454) | func TestTUI_RightAlignedMetricsBlock(t *testing.T) { function TestTUI_HostExpandsOnWideTerminal (line 503) | func TestTUI_HostExpandsOnWideTerminal(t *testing.T) { function TestTUI_ComputeLayout_NonZeroSntHint (line 515) | func TestTUI_ComputeLayout_NonZeroSntHint(t *testing.T) { function TestTUI_HostShrinksWhenWidthReduced (line 536) | func TestTUI_HostShrinksWhenWidthReduced(t *testing.T) { function TestTUI_DualHeaderPacketsPings (line 548) | func TestTUI_DualHeaderPacketsPings(t *testing.T) { function TestTUI_VeryNarrowNoPanic (line 611) | func TestTUI_VeryNarrowNoPanic(t *testing.T) { function TestTUI_DisplayWidthCJK (line 641) | func TestTUI_DisplayWidthCJK(t *testing.T) { function TestTUI_ComputeLayoutZeroWidth (line 670) | func TestTUI_ComputeLayoutZeroWidth(t *testing.T) { function TestTUI_TotalWidthInvariant (line 682) | func TestTUI_TotalWidthInvariant(t *testing.T) { function TestTUI_NarrowRightAnchor (line 697) | func TestTUI_NarrowRightAnchor(t *testing.T) { function TestMTRTUI_HeaderContainsVersion (line 712) | func TestMTRTUI_HeaderContainsVersion(t *testing.T) { function TestMTRTUI_HeaderContainsDomainAndIP (line 725) | func TestMTRTUI_HeaderContainsDomainAndIP(t *testing.T) { function TestMTRTUI_HeaderContainsResetKey (line 745) | func TestMTRTUI_HeaderContainsResetKey(t *testing.T) { function TestMTRTUI_HeaderIPOnlyWhenNoDomain (line 757) | func TestMTRTUI_HeaderIPOnlyWhenNoDomain(t *testing.T) { function TestFormatTUIHopPrefix_MinimalStyle (line 779) | func TestFormatTUIHopPrefix_MinimalStyle(t *testing.T) { function TestFormatMTRHost_IncludesMPLS (line 813) | func TestFormatMTRHost_IncludesMPLS(t *testing.T) { function TestFormatMTRHost_NoMPLS (line 834) | func TestFormatMTRHost_NoMPLS(t *testing.T) { function TestMTRTUI_HeaderIPNoDuplicate (line 849) | func TestMTRTUI_HeaderIPNoDuplicate(t *testing.T) { function TestFormatMTRHostByMode_Base (line 872) | func TestFormatMTRHostByMode_Base(t *testing.T) { function TestFormatMTRHostByMode_Base_NilGeo (line 898) | func TestFormatMTRHostByMode_Base_NilGeo(t *testing.T) { function TestBuildTUIHostParts_BaseModeNoASNPlaceholder (line 906) | func TestBuildTUIHostParts_BaseModeNoASNPlaceholder(t *testing.T) { function TestBuildTUIHostParts_ASNModeHasPlaceholder (line 923) | func TestBuildTUIHostParts_ASNModeHasPlaceholder(t *testing.T) { function TestFormatMTRHostByMode_ASN (line 936) | func TestFormatMTRHostByMode_ASN(t *testing.T) { function TestFormatMTRHostByMode_City (line 954) | func TestFormatMTRHostByMode_City(t *testing.T) { function TestFormatMTRHostByMode_Owner (line 972) | func TestFormatMTRHostByMode_Owner(t *testing.T) { function TestFormatMTRHostByMode_Full (line 988) | func TestFormatMTRHostByMode_Full(t *testing.T) { function TestFormatMTRHostByMode_NilGeo (line 1006) | func TestFormatMTRHostByMode_NilGeo(t *testing.T) { function TestFormatMTRHostByMode_NoASN (line 1016) | func TestFormatMTRHostByMode_NoASN(t *testing.T) { function TestGeoField_CN (line 1033) | func TestGeoField_CN(t *testing.T) { function TestGeoField_EN (line 1040) | func TestGeoField_EN(t *testing.T) { function TestGeoField_Fallback (line 1047) | func TestGeoField_Fallback(t *testing.T) { function TestFormatMTRHostByMode_LangCN (line 1060) | func TestFormatMTRHostByMode_LangCN(t *testing.T) { function TestTUI_MPLSMultiLine (line 1091) | func TestTUI_MPLSMultiLine(t *testing.T) { function TestTUI_MPLSMultiLine_NoMPLS (line 1121) | func TestTUI_MPLSMultiLine_NoMPLS(t *testing.T) { function TestMTRTUI_HeaderSrcDstFormat (line 1136) | func TestMTRTUI_HeaderSrcDstFormat(t *testing.T) { function TestMTRTUI_HeaderNoSrcInfo (line 1172) | func TestMTRTUI_HeaderNoSrcInfo(t *testing.T) { function TestMTRTUI_DisplayModeInKeys (line 1193) | func TestMTRTUI_DisplayModeInKeys(t *testing.T) { function TestMTRTUI_DisplayModeAffectsHopData (line 1209) | func TestMTRTUI_DisplayModeAffectsHopData(t *testing.T) { function TestFormatMTRHostByMode_IPOnly_ShowsIP (line 1250) | func TestFormatMTRHostByMode_IPOnly_ShowsIP(t *testing.T) { function TestFormatMTRHostByMode_PTRorIP_ShowsPTR (line 1269) | func TestFormatMTRHostByMode_PTRorIP_ShowsPTR(t *testing.T) { function TestFormatMTRHostByMode_IPOnly_NoPTR (line 1287) | func TestFormatMTRHostByMode_IPOnly_NoPTR(t *testing.T) { function TestMTRRenderTable_IPOnly (line 1301) | func TestMTRRenderTable_IPOnly(t *testing.T) { function TestFormatMTRHostByMode_ShowIPs_PTRAndIP (line 1318) | func TestFormatMTRHostByMode_ShowIPs_PTRAndIP(t *testing.T) { function TestFormatMTRHostByMode_ShowIPs_NoPTRFallsBackToIP (line 1332) | func TestFormatMTRHostByMode_ShowIPs_NoPTRFallsBackToIP(t *testing.T) { function TestFormatMTRHostByMode_ShowIPs_PTREqualsIP_NoDup (line 1345) | func TestFormatMTRHostByMode_ShowIPs_PTREqualsIP_NoDup(t *testing.T) { function TestFormatMTRHostByMode_IPOnly_IgnoreShowIPs (line 1359) | func TestFormatMTRHostByMode_IPOnly_IgnoreShowIPs(t *testing.T) { function TestFormatReportHost_ShowIPs_PTRAndIP (line 1374) | func TestFormatReportHost_ShowIPs_PTRAndIP(t *testing.T) { function TestMTRTUI_HeaderAPIInfo (line 1392) | func TestMTRTUI_HeaderAPIInfo(t *testing.T) { function TestMTRTUI_HeaderNoAPIInfo (line 1417) | func TestMTRTUI_HeaderNoAPIInfo(t *testing.T) { function TestMTRTUI_NameModeInKeys (line 1430) | func TestMTRTUI_NameModeInKeys(t *testing.T) { function TestMTRTUI_NameModeInKeys_ShowIPs (line 1446) | func TestMTRTUI_NameModeInKeys_ShowIPs(t *testing.T) { function TestMTRTUI_ShowIPsRendersPTRAndIP (line 1463) | func TestMTRTUI_ShowIPsRendersPTRAndIP(t *testing.T) { function TestMTRTUI_FirstLineCentered (line 1496) | func TestMTRTUI_FirstLineCentered(t *testing.T) { function TestMTRTUI_FirstLineTruncatedOnNarrow (line 1519) | func TestMTRTUI_FirstLineTruncatedOnNarrow(t *testing.T) { function TestTUI_WaitingForReplyOn100Loss (line 1561) | func TestTUI_WaitingForReplyOn100Loss(t *testing.T) { function TestTUI_HostSeparators_ManualSpaceAlignment (line 1588) | func TestTUI_HostSeparators_ManualSpaceAlignment(t *testing.T) { function TestFormatTUIHost_ManualASNAlignment (line 1640) | func TestFormatTUIHost_ManualASNAlignment(t *testing.T) { function TestBuildTUIHostParts_MissingASNUsesPlaceholder (line 1663) | func TestBuildTUIHostParts_MissingASNUsesPlaceholder(t *testing.T) { function TestBuildTUIHostParts_WaitingDoesNotUsePlaceholder (line 1681) | func TestBuildTUIHostParts_WaitingDoesNotUsePlaceholder(t *testing.T) { function TestTUI_MissingASNRenderedAsPlaceholder (line 1694) | func TestTUI_MissingASNRenderedAsPlaceholder(t *testing.T) { function TestTUI_ManualASNAlignment_StillRightAnchored (line 1722) | func TestTUI_ManualASNAlignment_StillRightAnchored(t *testing.T) { function TestReport_WaitingForReplyOn100Loss (line 1784) | func TestReport_WaitingForReplyOn100Loss(t *testing.T) { function TestReport_FullExtrasUseSpaces_NoComma (line 1810) | func TestReport_FullExtrasUseSpaces_NoComma(t *testing.T) { function TestFormatCompactReportHost_Waiting (line 1833) | func TestFormatCompactReportHost_Waiting(t *testing.T) { function TestFormatCompactReportHost_BaseOnly_NoASNNoGeoNoMPLS (line 1842) | func TestFormatCompactReportHost_BaseOnly_NoASNNoGeoNoMPLS(t *testing.T) { function TestFormatCompactReportHost_ShowIPs (line 1866) | func TestFormatCompactReportHost_ShowIPs(t *testing.T) { function TestMTRReportPrint_NonWideUsesBaseHostOnly (line 1878) | func TestMTRReportPrint_NonWideUsesBaseHostOnly(t *testing.T) { function TestMTRReportPrint_WideStillIncludesGeoOrMPLS (line 1914) | func TestMTRReportPrint_WideStillIncludesGeoOrMPLS(t *testing.T) { function TestTUI_ThreeDigitTTLAlignment (line 1953) | func TestTUI_ThreeDigitTTLAlignment(t *testing.T) { function TestTUI_PrefixWidthForMaxTTL (line 2011) | func TestTUI_PrefixWidthForMaxTTL(t *testing.T) { function TestTUI_TotalWidthInvariant_ThreeDigitTTL (line 2033) | func TestTUI_TotalWidthInvariant_ThreeDigitTTL(t *testing.T) { function TestMTRRenderTable_WaitingMetricsBlank (line 2053) | func TestMTRRenderTable_WaitingMetricsBlank(t *testing.T) { function TestTUI_WaitingMetricsBlank (line 2089) | func TestTUI_WaitingMetricsBlank(t *testing.T) { function TestFormatMTRRawLine_Success (line 2120) | func TestFormatMTRRawLine_Success(t *testing.T) { function TestFormatMTRRawLine_TimeoutFixedColumns (line 2142) | func TestFormatMTRRawLine_TimeoutFixedColumns(t *testing.T) { function TestMTRTUI_PacketsColorByLoss (line 2155) | func TestMTRTUI_PacketsColorByLoss(t *testing.T) { function TestMTRTUI_ColorDisabled_NoANSI (line 2179) | func TestMTRTUI_ColorDisabled_NoANSI(t *testing.T) { FILE: printer/mtr_tui.go type MTRTUIStatus (line 21) | type MTRTUIStatus constant MTRTUIRunning (line 24) | MTRTUIRunning MTRTUIStatus = iota constant MTRTUIPaused (line 25) | MTRTUIPaused type MTRTUIHeader (line 29) | type MTRTUIHeader struct type mtrTUILayout (line 54) | type mtrTUILayout struct method metricsWidth (line 69) | func (lo *mtrTUILayout) metricsWidth() int { method totalWidth (line 74) | func (lo *mtrTUILayout) totalWidth() int { constant tuiPrefixW (line 80) | tuiPrefixW = 4 constant tuiPrefixGap (line 81) | tuiPrefixGap = 0 constant tuiHostGap (line 82) | tuiHostGap = 2 constant tuiMetricGap (line 83) | tuiMetricGap = 1 constant tuiDefaultTerm (line 84) | tuiDefaultTerm = 120 constant tuiTabStop (line 85) | tuiTabStop = 8 constant tuiLossDefault (line 87) | tuiLossDefault = 5 constant tuiSntDefault (line 88) | tuiSntDefault = 3 constant tuiRTTDefault (line 89) | tuiRTTDefault = 7 constant tuiHostDefault (line 90) | tuiHostDefault = 40 constant tuiHostMin (line 91) | tuiHostMin = 8 constant tuiLossMin (line 92) | tuiLossMin = 5 constant tuiSntMin (line 93) | tuiSntMin = 3 constant tuiRTTMin (line 94) | tuiRTTMin = 5 function tuiPrefixWidthForMaxTTL (line 99) | func tuiPrefixWidthForMaxTTL(maxTTL int) int { function sntWidthForMax (line 122) | func sntWidthForMax(maxSnt int) int { function computeLayout (line 130) | func computeLayout(termWidth, prefixW, sntHint int) mtrTUILayout { function shrinkMetrics (line 190) | func shrinkMetrics(available, sntDefault int) (lossW, sntW, lastW, avgW,... function displayWidth (line 244) | func displayWidth(s string) int { function truncateByDisplayWidth (line 250) | func truncateByDisplayWidth(s string, max int) string { function padRight (line 265) | func padRight(s string, width int) string { function padLeft (line 274) | func padLeft(s string, width int) string { function displayWidthWithTabs (line 288) | func displayWidthWithTabs(s string, tabStop int) int { function truncateWithTabs (line 301) | func truncateWithTabs(s string, maxW int, tabStop int) string { function fitRight (line 325) | func fitRight(s string, width int) string { function fitLeft (line 334) | func fitLeft(s string, width int) string { function tuiLine (line 348) | func tuiLine(b *strings.Builder, format string, a ...any) { function MTRTUIRender (line 364) | func MTRTUIRender(w io.Writer, header MTRTUIHeader, stats []trace.MTRHop... function mtrTUIRenderWithWidth (line 369) | func mtrTUIRenderWithWidth(w io.Writer, header MTRTUIHeader, stats []tra... function buildMTRTUILayout (line 380) | func buildMTRTUILayout(stats []trace.MTRHopStat, termWidth int) mtrTUILa... function scanMTRTUIStats (line 386) | func scanMTRTUIStats(stats []trace.MTRHopStat) (int, int) { function writeMTRTUIFramePrefix (line 400) | func writeMTRTUIFramePrefix(b *strings.Builder) { function renderMTRTUIHeader (line 404) | func renderMTRTUIHeader(b *strings.Builder, header MTRTUIHeader, termWid... function buildMTRTUITitleLine (line 410) | func buildMTRTUITitleLine(header MTRTUIHeader, termWidth int) string { function resolveMTRTUITitleParts (line 432) | func resolveMTRTUITitleParts(header MTRTUIHeader) (string, string) { function buildMTRTUIRouteLine (line 444) | func buildMTRTUIRouteLine(header MTRTUIHeader, termWidth int, now time.T... function buildMTRTUIRouteText (line 460) | func buildMTRTUIRouteText(header MTRTUIHeader) string { function resolveMTRTUISourceLabel (line 469) | func resolveMTRTUISourceLabel(header MTRTUIHeader) string { function resolveMTRTUIDestinationLabel (line 480) | func resolveMTRTUIDestinationLabel(header MTRTUIHeader) string { function buildMTRTUIControlsLine (line 493) | func buildMTRTUIControlsLine(header MTRTUIHeader, termWidth int) string { function buildMTRTUIKeyItems (line 505) | func buildMTRTUIKeyItems(header MTRTUIHeader) []string { function mtrTUIStatusText (line 517) | func mtrTUIStatusText(status MTRTUIStatus) string { function mtrTUIDisplayModeLabel (line 524) | func mtrTUIDisplayModeLabel(mode int) string { function mtrTUINameModeLabel (line 532) | func mtrTUINameModeLabel(nameMode int, showIPs bool) string { function mtrTUIMPLSLabel (line 542) | func mtrTUIMPLSLabel(disabled bool) string { function renderMTRTUIRows (line 549) | func renderMTRTUIRows(b *strings.Builder, header MTRTUIHeader, stats []t... function buildTUIHostPartSet (line 561) | func buildTUIHostPartSet(stats []trace.MTRHopStat, header MTRTUIHeader) ... function renderMTRTUIMPLSRows (line 573) | func renderMTRTUIMPLSRows(b *strings.Builder, lo mtrTUILayout, labels []... function computeTUIASNWidth (line 585) | func computeTUIASNWidth(stats []trace.MTRHopStat, mode int, nameMode int... function computeTUIASNWidthFromParts (line 593) | func computeTUIASNWidthFromParts(allParts []mtrHostParts) int { function renderDualHeader (line 617) | func renderDualHeader(b *strings.Builder, lo mtrTUILayout) { function centerIn (line 658) | func centerIn(s string, width int) string { function renderDataRow (line 672) | func renderDataRow(b *strings.Builder, lo mtrTUILayout, hopPrefix, host ... function MTRTUIRenderString (line 727) | func MTRTUIRenderString(header MTRTUIHeader, stats []trace.MTRHopStat) s... function mtrTUIRenderStringWithWidth (line 734) | func mtrTUIRenderStringWithWidth(header MTRTUIHeader, stats []trace.MTRH... function formatTUIHopPrefix (line 744) | func formatTUIHopPrefix(ttl, prevTTL, prefixW int) string { function truncateStr (line 757) | func truncateStr(s string, maxLen int) string { function MTRTUIPrinter (line 769) | func MTRTUIPrinter(target, domain, targetIP, version string, startTime t... FILE: printer/mtr_tui_color.go function mtrColorLossBucket (line 24) | func mtrColorLossBucket(loss float64, waiting bool) color.Attribute { function mtrColorPacketsByLoss (line 42) | func mtrColorPacketsByLoss(lossCell, sntCell string, loss float64, waiti... FILE: printer/printer.go constant RED_PREFIX (line 25) | RED_PREFIX = "\033[1;31m" constant GREEN_PREFIX (line 26) | GREEN_PREFIX = "\033[1;32m" constant YELLOW_PREFIX (line 27) | YELLOW_PREFIX = "\033[1;33m" constant BLUE_PREFIX (line 28) | BLUE_PREFIX = "\033[1;34m" constant CYAN_PREFIX (line 29) | CYAN_PREFIX = "\033[1;36m" constant RESET_PREFIX (line 30) | RESET_PREFIX = "\033[0m" function HopPrinter (line 33) | func HopPrinter(h trace.Hop, info HopInfo) { function FormatIPGeoData (line 71) | func FormatIPGeoData(ip string, data *ipgeo.IPGeoData) string { FILE: printer/realtime_common.go function printRealtimeTTL (line 16) | func printRealtimeTTL(ttl int) { function printRealtimeEmptyHop (line 20) | func printRealtimeEmptyHop() { function displayRealtimeIP (line 24) | func displayRealtimeIP(ip string) string { function printRealtimeIPColumn (line 31) | func printRealtimeIPColumn(ip string) bool { function ensureHopGeo (line 41) | func ensureHopGeo(hop *trace.Hop) { function formatWhoisPrefix (line 47) | func formatWhoisPrefix(whois string, suppressReserved bool) string { function highlightRealtimeBackbone (line 62) | func highlightRealtimeBackbone(hop *trace.Hop, whoisPrefix string) bool { function printASNColumn (line 89) | func printASNColumn(hop *trace.Hop, highlight bool) { function printWhoisColumn (line 101) | func printWhoisColumn(prefix string, highlight bool) { function displayRealtimeHostname (line 109) | func displayRealtimeHostname(ip, hostname string) string { function printLocationLine (line 116) | func printLocationLine(hop *trace.Hop, ip string, isIPv6 bool) { function printTimingSeries (line 133) | func printTimingSeries(values []string) { function printHopMPLS (line 143) | func printHopMPLS(labels []string) { function renderRealtimeHopLine (line 149) | func renderRealtimeHopLine(res *trace.Result, ttl int, group hoprender.G... function prepareRouterGeo (line 171) | func prepareRouterGeo(hop *trace.Hop) { function renderRouterHopLine (line 179) | func renderRouterHopLine(res *trace.Result, ttl int, group hoprender.Gro... FILE: printer/realtime_printer.go function RealtimePrinter (line 8) | func RealtimePrinter(res *trace.Result, ttl int) { FILE: printer/realtime_printer_router.go function RealtimePrinterWithRouter (line 12) | func RealtimePrinterWithRouter(res *trace.Result, ttl int) { function renderRouterSummary (line 30) | func renderRouterSummary(res *trace.Result, ttl int) { function GetRouter (line 46) | func GetRouter(r *map[string][]string, node string) { FILE: printer/tableprinter.go type rowData (line 16) | type rowData struct function writeTracerouteTable (line 28) | func writeTracerouteTable(w io.Writer, res *trace.Result, clearScreen bo... function TracerouteTablePrinter (line 58) | func TracerouteTablePrinter(res *trace.Result, clearScreen bool) { function New (line 62) | func New() table.Table { function tableDataGenerator (line 72) | func tableDataGenerator(h trace.Hop) *rowData { FILE: printer/tableprinter_test.go function testTracerouteTableResult (line 16) | func testTracerouteTableResult() *trace.Result { function TestWriteTracerouteTableNonTTYOmitsClearScreenANSI (line 36) | func TestWriteTracerouteTableNonTTYOmitsClearScreenANSI(t *testing.T) { function TestWriteTracerouteTableTTYIncludesClearScreenANSI (line 55) | func TestWriteTracerouteTableTTYIncludesClearScreenANSI(t *testing.T) { FILE: reporter/reporter.go type Reporter (line 13) | type Reporter interface function New (line 17) | func New(rs *trace.Result, ip string) Reporter { type reporter (line 26) | type reporter struct method generateRouteReportNode (line 46) | func (r *reporter) generateRouteReportNode(ip string, ipGeoData ipgeo.... method appendRouteReportNode (line 102) | func (r *reporter) appendRouteReportNode(ttl uint16, node routeReportN... method InitialBaseData (line 108) | func (r *reporter) InitialBaseData() Reporter { method Print (line 130) | func (r *reporter) Print() { type routeReportNode (line 35) | type routeReportNode struct function experimentTag (line 42) | func experimentTag() { function routeReportNodeIX (line 65) | func routeReportNodeIX(ip string, ipGeoData ipgeo.IPGeoData) bool { function routeReportContainsIX (line 73) | func routeReportContainsIX(value string) bool { function routeReportNodeASN (line 78) | func routeReportNodeASN(ip string, ipGeoData ipgeo.IPGeoData) string { function routeReportNodeGeo (line 85) | func routeReportNodeGeo(ip string, ipGeoData ipgeo.IPGeoData, targetIP s... function routeReportNodeISP (line 95) | func routeReportNodeISP(ipGeoData ipgeo.IPGeoData) string { FILE: reporter/reporter_test.go function captureStdout (line 117) | func captureStdout(t *testing.T, fn func()) string { function TestPrint (line 137) | func TestPrint(t *testing.T) { FILE: server/browser_access.go constant maxTraceRequestBodyBytes (line 14) | maxTraceRequestBodyBytes = 64 << 10 constant maxWSInitMessageBytes (line 15) | maxWSInitMessageBytes = 64 << 10 function browserOriginAllowed (line 18) | func browserOriginAllowed(r *http.Request) bool { function browserAccessMiddleware (line 36) | func browserAccessMiddleware() gin.HandlerFunc { FILE: server/browser_access_test.go function TestTraceUpgraderCheckOrigin_DefaultsToSameOriginOnly (line 13) | func TestTraceUpgraderCheckOrigin_DefaultsToSameOriginOnly(t *testing.T) { function TestTraceUpgraderCheckOrigin_CanBeRelaxedViaEnv (line 35) | func TestTraceUpgraderCheckOrigin_CanBeRelaxedViaEnv(t *testing.T) { function TestBrowserAccessMiddleware_DefaultRejectsCrossOriginHTTP (line 46) | func TestBrowserAccessMiddleware_DefaultRejectsCrossOriginHTTP(t *testin... function TestBrowserAccessMiddleware_CanEnableCORSViaEnv (line 67) | func TestBrowserAccessMiddleware_CanEnableCORSViaEnv(t *testing.T) { FILE: server/cache_handler.go function cacheClearHandler (line 11) | func cacheClearHandler(c *gin.Context) { FILE: server/handlers.go function optionsHandler (line 38) | func optionsHandler(c *gin.Context) { FILE: server/mtr.go type mtrAggregator (line 17) | type mtrAggregator struct method ensureHopAccum (line 164) | func (agg *mtrAggregator) ensureHopAccum(ttl int, accMap map[string]*h... method Update (line 233) | func (agg *mtrAggregator) Update(res *trace.Result, queries int) []mtr... method Snapshot (line 261) | func (agg *mtrAggregator) Snapshot() []mtrHopJSON { method buildSnapshotLocked (line 267) | func (agg *mtrAggregator) buildSnapshotLocked() []mtrHopJSON { type hopAccum (line 23) | type hopAccum struct type groupMetrics (line 40) | type groupMetrics struct type mtrHopJSON (line 54) | type mtrHopJSON struct type mtrSnapshot (line 72) | type mtrSnapshot struct function newMTRAggregator (line 77) | func newMTRAggregator() *mtrAggregator { function buildAttemptGroups (line 83) | func buildAttemptGroups(attempts []trace.Hop) map[string]*groupMetrics { function mergeAttemptIntoGroup (line 107) | func mergeAttemptIntoGroup(group *groupMetrics, attempt trace.Hop) { function addGroupMPLS (line 125) | func addGroupMPLS(group *groupMetrics, labels []string) { function updateGroupRTT (line 140) | func updateGroupRTT(group *groupMetrics, attempt trace.Hop) { function attemptErrorKey (line 153) | func attemptErrorKey(attempt trace.Hop) string { function mergeGroup (line 182) | func mergeGroup(acc *hopAccum, group *groupMetrics) { function mergeErrorCounts (line 209) | func mergeErrorCounts(acc *hopAccum, errors map[string]int) { function mergeMPLSSet (line 221) | func mergeMPLSSet(acc *hopAccum, mpls map[string]struct{}) { function hopKey (line 336) | func hopKey(ip, host string) string { function copyErrors (line 348) | func copyErrors(src map[string]int) map[string]int { function sortedSet (line 359) | func sortedSet(set map[string]struct{}) []string { function failureTypeFromErrors (line 371) | func failureTypeFromErrors(errors map[string]int, received, lossCount in... FILE: server/server.go constant defaultListenAddr (line 22) | defaultListenAddr = ":1080" function init (line 27) | func init() { function Run (line 41) | func Run(listenAddr string) error { FILE: server/trace_handler.go type traceExecution (line 35) | type traceExecution struct type traceRequest (line 47) | type traceRequest struct type hopAttempt (line 86) | type hopAttempt struct type hopResponse (line 96) | type hopResponse struct type traceResponse (line 101) | type traceResponse struct type traceProtocolSelection (line 112) | type traceProtocolSelection struct function normalizeTraceRequest (line 118) | func normalizeTraceRequest(req *traceRequest) (int, error) { function resolveTraceProtocol (line 145) | func resolveTraceProtocol(req traceRequest) (traceProtocolSelection, int... function resolveTraceDataProvider (line 179) | func resolveTraceDataProvider(req *traceRequest) (string, bool) { function resolveTraceIPVersion (line 203) | func resolveTraceIPVersion(req traceRequest) string { function prepareTrace (line 214) | func prepareTrace(ctx context.Context, req traceRequest) (*traceExecutio... function traceHandler (line 255) | func traceHandler(c *gin.Context) { function buildTraceConfig (line 335) | func buildTraceConfig(req traceRequest, method trace.Method, ip net.IP, ... function withTraceSetupContext (line 426) | func withTraceSetupContext[T any](setup *traceExecution, callback func()... function withTraceGeoDNSScope (line 453) | func withTraceGeoDNSScope[T any](setup *traceExecution, callback func() ... function traceMapURLForResult (line 465) | func traceMapURLForResult(setup *traceExecution, res *trace.Result) stri... function convertHops (line 486) | func convertHops(res *trace.Result, lang string) []hopResponse { function buildHopResponse (line 502) | func buildHopResponse(attempts []trace.Hop, idx int, lang string) hopRes... function parseTargetURLHost (line 533) | func parseTargetURLHost(target string) (string, string, error) { function extractTargetHost (line 552) | func extractTargetHost(target, fallbackSource string) (string, error) { function stripTargetPort (line 577) | func stripTargetPort(target string) string { function normalizeTarget (line 596) | func normalizeTarget(input string) (string, error) { function normalizeDataProvider (line 618) | func normalizeDataProvider(provider string, alias string) string { function contains (line 654) | func contains(list []string, v string) bool { function shouldGenerateMap (line 663) | func shouldGenerateMap(provider string) bool { function validateSourceDevice (line 673) | func validateSourceDevice(device string) error { function ensureLeoMoeConnection (line 692) | func ensureLeoMoeConnection() { function localizeGeo (line 709) | func localizeGeo(src *ipgeo.IPGeoData, lang string) *ipgeo.IPGeoData { FILE: server/trace_handler_test.go function TestPrepareTrace_DoesNotForceLegacyInterval (line 19) | func TestPrepareTrace_DoesNotForceLegacyInterval(t *testing.T) { function TestResolveWebMTRHopInterval_DefaultsToOneSecond (line 33) | func TestResolveWebMTRHopInterval_DefaultsToOneSecond(t *testing.T) { function TestResolveWebMTRHopInterval_PrefersHopIntervalMs (line 40) | func TestResolveWebMTRHopInterval_PrefersHopIntervalMs(t *testing.T) { function TestBuildTraceConfig_PropagatesSessionScopedFields (line 47) | func TestBuildTraceConfig_PropagatesSessionScopedFields(t *testing.T) { function TestBuildTraceConfig_PreservesNegativePacketSizeAndTOS (line 75) | func TestBuildTraceConfig_PreservesNegativePacketSizeAndTOS(t *testing.T) { function TestBuildTraceConfig_DefaultsPacketSizeByProtocolAndFamily (line 93) | func TestBuildTraceConfig_DefaultsPacketSizeByProtocolAndFamily(t *testi... function TestNormalizeTraceRequest_RejectsInvalidTOS (line 106) | func TestNormalizeTraceRequest_RejectsInvalidTOS(t *testing.T) { function TestPrepareTrace_RejectsUnknownSourceDevice (line 117) | func TestPrepareTrace_RejectsUnknownSourceDevice(t *testing.T) { function TestNormalizeTarget (line 131) | func TestNormalizeTarget(t *testing.T) { function TestTraceHandler_RejectsOversizedJSONBody (line 169) | func TestTraceHandler_RejectsOversizedJSONBody(t *testing.T) { function TestExecuteMTRRaw_PerHopDoesNotMutateSessionGlobals (line 186) | func TestExecuteMTRRaw_PerHopDoesNotMutateSessionGlobals(t *testing.T) { function TestTraceMapURLForResult_UsesRequestScopedMapHelper (line 253) | func TestTraceMapURLForResult_UsesRequestScopedMapHelper(t *testing.T) { function TestPrepareTraceHonorsCanceledContext (line 304) | func TestPrepareTraceHonorsCanceledContext(t *testing.T) { FILE: server/web/assets/app.js constant MTR_RENDER_MIN_INTERVAL_MS (line 51) | const MTR_RENDER_MIN_INTERVAL_MS = 100; function t (line 194) | function t(key) { function updateStatusDisplay (line 198) | function updateStatusDisplay(state, text) { function setStatus (line 203) | function setStatus(state, message, translate = true) { function refreshStatus (line 213) | function refreshStatus() { function loadOptions (line 221) | async function loadOptions() { function fillSelect (line 247) | function fillSelect(selectEl, values, defaultValue) { function readNumericValue (line 260) | function readNumericValue(inputEl) { function clearResult (line 269) | function clearResult(resetState = false) { function renderMeta (line 288) | function renderMeta(summary = {}) { function renderAttemptsGrouped (line 315) | function renderAttemptsGrouped(attempts) { function renderHops (line 550) | function renderHops(hops) { function renderHopsFromStore (line 587) | function renderHopsFromStore() { function escapeHTML (line 592) | function escapeHTML(str) { function createMetaItem (line 601) | function createMetaItem(label, value, allowHTML = false) { function buildPayload (line 613) | function buildPayload() { function closeExistingSocket (line 634) | function closeExistingSocket(hideStop = true) { function flushMTRRender (line 652) | function flushMTRRender(force = false) { function scheduleMTRRender (line 680) | function scheduleMTRRender() { function cancelScheduledMTRRender (line 709) | function cancelScheduledMTRRender() { function handleSocketMessage (line 721) | function handleSocketMessage(event) { function runTrace (line 821) | function runTrace(evt) { function clearCache (line 891) | async function clearCache(silent = false) { function toggleLanguage (line 912) | function toggleLanguage() { function applyTranslations (line 918) | function applyTranslations() { function updateDstPortState (line 961) | function updateDstPortState() { function updateStartButtonText (line 996) | function updateStartButtonText() { function updateModeUI (line 1004) | function updateModeUI() { function stopTrace (line 1043) | function stopTrace() { function mtrRawKey (line 1056) | function mtrRawKey(rec) { function onlyTimeoutErrors (line 1061) | function onlyTimeoutErrors(errors) { function recomputeMTRRawDerived (line 1072) | function recomputeMTRRawDerived(row) { function ingestMTRRawRecord (line 1085) | function ingestMTRRawRecord(rec) { function buildMTRStatsFromRawAgg (line 1209) | function buildMTRStatsFromRawAgg() { function renderMTRStats (line 1222) | function renderMTRStats(stats) { function getHostDisplayParts (line 1316) | function getHostDisplayParts(stat) { function formatMPLSText (line 1328) | function formatMPLSText(mpls) { function formatLatency (line 1336) | function formatLatency(value, received) { function formatGeoDisplay (line 1343) | function formatGeoDisplay(geo) { FILE: server/web/assets/mtr_agg.js function normalizeErrorKey (line 12) | function normalizeErrorKey(key) { function mergeErrorMaps (line 20) | function mergeErrorMaps(target, source) { function cloneErrors (line 46) | function cloneErrors(source) { function pickFailureType (line 61) | function pickFailureType(current, candidate) { function cloneStat (line 77) | function cloneStat(stat) { function isKnownStat (line 86) | function isKnownStat(stat) { function aggregateUnknown (line 92) | function aggregateUnknown(group) { function mergeUnknownIntoSingleKnown (line 108) | function mergeUnknownIntoSingleKnown(rows) { function normalizeRenderableMTRStats (line 151) | function normalizeRenderableMTRStats(stats) { FILE: server/web/assets/mtr_truncation.test.cjs function createCtx (line 13) | function createCtx(resolvedIP) { FILE: server/web/assets/trace_form.js function readNumericValueFromRaw (line 8) | function readNumericValueFromRaw(raw) { function defaultOptionValue (line 17) | function defaultOptionValue(defaultOptions, key, fallback) { function buildTracePayload (line 24) | function buildTracePayload(values) { FILE: server/ws_handler.go constant wsSendQueueSize (line 30) | wsSendQueueSize = 1024 constant wsWriteTimeout (line 31) | wsWriteTimeout = 5 * time.Second function sanitizeLogParam (line 42) | func sanitizeLogParam(s string) string { function newWSSessionContext (line 58) | func newWSSessionContext(parent context.Context) (context.Context, conte... type wsEnvelope (line 65) | type wsEnvelope struct type wsConn (line 72) | type wsConn interface type wsInitConn (line 80) | type wsInitConn interface type wsTraceSession (line 86) | type wsTraceSession struct method writeLoop (line 130) | func (s *wsTraceSession) writeLoop() { method send (line 157) | func (s *wsTraceSession) send(msg wsEnvelope) error { method closeWithCode (line 172) | func (s *wsTraceSession) closeWithCode(code int, reason string) { method finish (line 182) | func (s *wsTraceSession) finish() { function newWSTraceSession (line 99) | func newWSTraceSession(conn wsConn, lang string, queueSize int) *wsTrace... function readWSInitMessage (line 115) | func readWSInitMessage(conn wsInitConn) ([]byte, error) { function traceWebsocketHandler (line 197) | func traceWebsocketHandler(c *gin.Context) { function runSingleTrace (line 279) | func runSingleTrace(ctx context.Context, session *wsTraceSession, setup ... function runMTRTrace (line 346) | func runMTRTrace(parentCtx context.Context, session *wsTraceSession, set... function executeMTRRaw (line 376) | func executeMTRRaw(ctx context.Context, session *wsTraceSession, setup *... function executeTrace (line 423) | func executeTrace(ctx context.Context, session *wsTraceSession, setup *t... function resolveWebMTRHopInterval (line 449) | func resolveWebMTRHopInterval(req traceRequest) time.Duration { FILE: server/ws_handler_test.go type fakeWSConn (line 15) | type fakeWSConn struct method WriteJSON (line 35) | func (f *fakeWSConn) WriteJSON(v interface{}) error { method SetWriteDeadline (line 62) | func (f *fakeWSConn) SetWriteDeadline(time.Time) error { method WriteControl (line 69) | func (f *fakeWSConn) WriteControl(messageType int, data []byte, deadli... method Close (line 76) | func (f *fakeWSConn) Close() error { method NextReader (line 88) | func (f *fakeWSConn) NextReader() (messageType int, r io.Reader, err e... function newFakeWSConn (line 26) | func newFakeWSConn(blockWrites bool) *fakeWSConn { type fakeWSInitConn (line 92) | type fakeWSInitConn struct method SetReadDeadline (line 100) | func (f *fakeWSInitConn) SetReadDeadline(t time.Time) error { method SetReadLimit (line 110) | func (f *fakeWSInitConn) SetReadLimit(limit int64) { method ReadMessage (line 114) | func (f *fakeWSInitConn) ReadMessage() (messageType int, p []byte, err... function TestReadWSInitMessage_ClearsDeadlineAfterSuccessfulRead (line 121) | func TestReadWSInitMessage_ClearsDeadlineAfterSuccessfulRead(t *testing.... function TestReadWSInitMessage_ReturnsInitialDeadlineError (line 145) | func TestReadWSInitMessage_ReturnsInitialDeadlineError(t *testing.T) { function TestReadWSInitMessage_ReturnsClearDeadlineError (line 156) | func TestReadWSInitMessage_ReturnsClearDeadlineError(t *testing.T) { function TestNewWSSessionContextInheritsParentCancellation (line 167) | func TestNewWSSessionContextInheritsParentCancellation(t *testing.T) { function TestWSTraceSessionSend_QueueOverflowReturnsErrSlowConsumer (line 184) | func TestWSTraceSessionSend_QueueOverflowReturnsErrSlowConsumer(t *testi... function TestWSTraceSessionWriter_PreservesEnvelopeOrder (line 207) | func TestWSTraceSessionWriter_PreservesEnvelopeOrder(t *testing.T) { function TestWSTraceSessionClose_IsIdempotent (line 230) | func TestWSTraceSessionClose_IsIdempotent(t *testing.T) { function TestSanitizeLogParam (line 252) | func TestSanitizeLogParam(t *testing.T) { FILE: trace/cache.go function ClearCaches (line 3) | func ClearCaches() { FILE: trace/globalping.go function GlobalpingTraceroute (line 20) | func GlobalpingTraceroute(opts *GlobalpingOptions, config *Config) (*Res... function newGlobalpingClient (line 38) | func newGlobalpingClient(ctx context.Context) globalping.Client { function newContextBoundTransport (line 55) | func newContextBoundTransport(ctx context.Context) http.RoundTripper { type roundTripperFunc (line 68) | type roundTripperFunc method RoundTrip (line 70) | func (fn roundTripperFunc) RoundTrip(req *http.Request) (*http.Respons... function buildGlobalpingMeasurement (line 74) | func buildGlobalpingMeasurement(opts *GlobalpingOptions) *globalping.Mea... function globalpingProtocol (line 92) | func globalpingProtocol(opts *GlobalpingOptions) string { function assignGlobalpingIPVersion (line 103) | func assignGlobalpingIPVersion(options *globalping.MeasurementOptions, o... function createGlobalpingMeasurement (line 112) | func createGlobalpingMeasurement(ctx context.Context, client globalping.... function awaitGlobalpingMeasurement (line 120) | func awaitGlobalpingMeasurement(ctx context.Context, client globalping.C... function decodeGlobalpingMeasurementHops (line 145) | func decodeGlobalpingMeasurementHops(measurement *globalping.Measurement... function resolveGlobalpingHopLimit (line 159) | func resolveGlobalpingHopLimit(opts *GlobalpingOptions, config *Config, ... function buildGlobalpingResult (line 170) | func buildGlobalpingResult(gpHops []globalping.MTRHop, limit int, config... function maxGlobalpingTimings (line 180) | func maxGlobalpingTimings(gpHops []globalping.MTRHop, limit int) int { function buildGlobalpingTTLHops (line 190) | func buildGlobalpingTTLHops(ttl int, gpHop *globalping.MTRHop, maxTiming... function globalpingTimingAt (line 198) | func globalpingTimingAt(gpHop *globalping.MTRHop, index int) *globalping... function mapGlobalpingHop (line 205) | func mapGlobalpingHop(ttl int, gpHop *globalping.MTRHop, timing *globalp... function hasGlobalpingProbeLocation (line 246) | func hasGlobalpingProbeLocation(probe globalping.ProbeDetails) bool { function formatGlobalpingCity (line 255) | func formatGlobalpingCity(probe globalping.ProbeDetails) string { function formatGlobalpingNetwork (line 265) | func formatGlobalpingNetwork(probe globalping.ProbeDetails) string { function appendGlobalpingPart (line 279) | func appendGlobalpingPart(parts []string, value string) []string { function GlobalpingFormatLocation (line 286) | func GlobalpingFormatLocation(m *globalping.ProbeMeasurement) string { FILE: trace/globalping_test.go type fakeGlobalpingClient (line 14) | type fakeGlobalpingClient struct method CreateMeasurement (line 19) | func (f fakeGlobalpingClient) CreateMeasurement(measurement *globalpin... method GetMeasurement (line 23) | func (f fakeGlobalpingClient) GetMeasurement(id string) (*globalping.M... method AwaitMeasurement (line 27) | func (f fakeGlobalpingClient) AwaitMeasurement(id string) (*globalping... method GetMeasurementRaw (line 31) | func (f fakeGlobalpingClient) GetMeasurementRaw(id string) ([]byte, er... method Authorize (line 35) | func (f fakeGlobalpingClient) Authorize(func(error)) (*globalping.Auth... method TokenIntrospection (line 39) | func (f fakeGlobalpingClient) TokenIntrospection(string) (*globalping.... method Logout (line 43) | func (f fakeGlobalpingClient) Logout() error { method RevokeToken (line 47) | func (f fakeGlobalpingClient) RevokeToken(string) error { method Limits (line 51) | func (f fakeGlobalpingClient) Limits() (*globalping.LimitsResponse, er... function TestAwaitGlobalpingMeasurementReturnsCanceled (line 55) | func TestAwaitGlobalpingMeasurementReturnsCanceled(t *testing.T) { function TestCreateGlobalpingMeasurementHonorsCanceledContext (line 81) | func TestCreateGlobalpingMeasurementHonorsCanceledContext(t *testing.T) { FILE: trace/globalping_types.go type GlobalpingOptions (line 6) | type GlobalpingOptions struct FILE: trace/icmp_ipv4.go type ICMPTracer (line 23) | type ICMPTracer struct method waitAllReady (line 39) | func (t *ICMPTracer) waitAllReady(ctx context.Context) { method ttlComp (line 55) | func (t *ICMPTracer) ttlComp(ttl int) bool { method PrintFunc (line 62) | func (t *ICMPTracer) PrintFunc(ctx context.Context, cancel context.Can... method launchTTL (line 95) | func (t *ICMPTracer) launchTTL(ctx context.Context, s *internal.ICMPSp... method initEchoID (line 123) | func (t *ICMPTracer) initEchoID() { method markPending (line 137) | func (t *ICMPTracer) markPending(seq int) { method clearPending (line 143) | func (t *ICMPTracer) clearPending(seq int) bool { method storeSent (line 151) | func (t *ICMPTracer) storeSent(seq int, start time.Time) { method lookupSent (line 157) | func (t *ICMPTracer) lookupSent(seq int) (start time.Time, ok bool) { method dropSent (line 167) | func (t *ICMPTracer) dropSent(seq int) { method addHopWithIndex (line 173) | func (t *ICMPTracer) addHopWithIndex(peer net.Addr, ttl, i int, rtt ti... method matchWorker (line 200) | func (t *ICMPTracer) matchWorker(ctx context.Context) { method Execute (line 246) | func (t *ICMPTracer) Execute() (res *Result, err error) { method handleICMPMessage (line 353) | func (t *ICMPTracer) handleICMPMessage(msg internal.ReceivedMessage, f... method send (line 366) | func (t *ICMPTracer) send(ctx context.Context, s *internal.ICMPSpec, t... FILE: trace/icmp_ipv6.go type ICMPTracerv6 (line 23) | type ICMPTracerv6 struct method waitAllReady (line 39) | func (t *ICMPTracerv6) waitAllReady(ctx context.Context) { method ttlComp (line 55) | func (t *ICMPTracerv6) ttlComp(ttl int) bool { method PrintFunc (line 62) | func (t *ICMPTracerv6) PrintFunc(ctx context.Context, cancel context.C... method launchTTL (line 95) | func (t *ICMPTracerv6) launchTTL(ctx context.Context, s *internal.ICMP... method initEchoID (line 123) | func (t *ICMPTracerv6) initEchoID() { method markPending (line 137) | func (t *ICMPTracerv6) markPending(seq int) { method clearPending (line 143) | func (t *ICMPTracerv6) clearPending(seq int) bool { method storeSent (line 151) | func (t *ICMPTracerv6) storeSent(seq int, start time.Time) { method lookupSent (line 157) | func (t *ICMPTracerv6) lookupSent(seq int) (start time.Time, ok bool) { method dropSent (line 167) | func (t *ICMPTracerv6) dropSent(seq int) { method addHopWithIndex (line 173) | func (t *ICMPTracerv6) addHopWithIndex(peer net.Addr, ttl, i int, rtt ... method matchWorker (line 200) | func (t *ICMPTracerv6) matchWorker(ctx context.Context) { method Execute (line 246) | func (t *ICMPTracerv6) Execute() (res *Result, err error) { method handleICMPMessage (line 353) | func (t *ICMPTracerv6) handleICMPMessage(msg internal.ReceivedMessage,... method send (line 366) | func (t *ICMPTracerv6) send(ctx context.Context, s *internal.ICMPSpec,... FILE: trace/internal/icmp_common.go type ipLayer (line 17) | type ipLayer interface function NewICMPSpec (line 22) | func NewICMPSpec(IPVersion, ICMPMode, echoID int, srcIP, dstIP net.IP) *... method InitICMP (line 26) | func (s *ICMPSpec) InitICMP() { method listenICMPSock (line 48) | func (s *ICMPSpec) listenICMPSock(ctx context.Context, ready chan struct... method decodeICMPSocketMessage (line 69) | func (s *ICMPSpec) decodeICMPSocketMessage(msg ReceivedMessage) (time.Ti... FILE: trace/internal/icmp_darwin.go type ICMPSpec (line 23) | type ICMPSpec struct method Close (line 396) | func (s *ICMPSpec) Close() { method ListenICMP (line 400) | func (s *ICMPSpec) ListenICMP(ctx context.Context, ready chan struct{}... method SendICMP (line 404) | func (s *ICMPSpec) SendICMP(ctx context.Context, ipHdr gopacket.Networ... type icmpPacketConn (line 42) | type icmpPacketConn struct method ReadFrom (line 55) | func (c *icmpPacketConn) ReadFrom(b []byte) (int, net.Addr, error) { method WriteTo (line 95) | func (c *icmpPacketConn) WriteTo(b []byte, addr net.Addr) (int, error) { method Close (line 117) | func (c *icmpPacketConn) Close() error { return c.file.Close() } method LocalAddr (line 119) | func (c *icmpPacketConn) LocalAddr() net.Addr { method RemoteAddr (line 126) | func (c *icmpPacketConn) RemoteAddr() net.Addr { return ... method SetDeadline (line 127) | func (c *icmpPacketConn) SetDeadline(t time.Time) error { return ... method SetReadDeadline (line 128) | func (c *icmpPacketConn) SetReadDeadline(t time.Time) error { return ... method SetWriteDeadline (line 129) | func (c *icmpPacketConn) SetWriteDeadline(t time.Time) error { return ... method Read (line 133) | func (c *icmpPacketConn) Read(b []byte) (int, error) { method Write (line 139) | func (c *icmpPacketConn) Write(b []byte) (int, error) { method ReadMsgIP (line 146) | func (c *icmpPacketConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int,... method SyscallConn (line 189) | func (c *icmpPacketConn) SyscallConn() (syscall.RawConn, error) { retu... function recvmsgRaw (line 182) | func recvmsgRaw(fd int, b, oob []byte) (n, oobn int, err error, sa sysca... function addrToSockaddr (line 192) | func addrToSockaddr(addr net.Addr, af int) (syscall.Sockaddr, error) { function stripIPv4Header (line 214) | func stripIPv4Header(n int, b []byte) int { function zoneToName (line 230) | func zoneToName(idx uint32) string { type darwinICMPSocketSpec (line 252) | type darwinICMPSocketSpec struct function darwinICMPSocketSpecForNetwork (line 257) | func darwinICMPSocketSpecForNetwork(network string) (darwinICMPSocketSpe... function mustOpenDarwinICMPSocket (line 268) | func mustOpenDarwinICMPSocket(spec darwinICMPSocketSpec) int { function interfaceHasIP (line 279) | func interfaceHasIP(iface net.Interface, target net.IP) bool { function interfaceIndexByIP (line 293) | func interfaceIndexByIP(ip net.IP) (int, error) { function setDarwinBoundInterface (line 306) | func setDarwinBoundInterface(fd, proto, ifIndex int) error { function bindDarwinICMPInterface (line 319) | func bindDarwinICMPInterface(fd, proto int, laddr string) error { function darwinICMPBindSockaddr (line 330) | func darwinICMPBindSockaddr(af int, laddr string) syscall.Sockaddr { function bindDarwinICMPSocket (line 346) | func bindDarwinICMPSocket(fd, af int, laddr string) error { function finalizeDarwinICMPSocket (line 353) | func finalizeDarwinICMPSocket(fd, af int) (net.PacketConn, error) { function ListenPacket (line 377) | func ListenPacket(network string, laddr string) (net.PacketConn, error) { FILE: trace/internal/icmp_decode.go function parseSocketICMPMessage (line 13) | func parseSocketICMPMessage(ipVersion int, raw []byte) (*icmp.Message, b... function matchSocketICMPEchoReply (line 25) | func matchSocketICMPEchoReply(ipVersion int, rm *icmp.Message, peerIP, d... function isSocketICMPEchoReply (line 39) | func isSocketICMPEchoReply(ipVersion int, rm *icmp.Message) bool { function extractSocketICMPPayload (line 50) | func extractSocketICMPPayload(ipVersion int, rm *icmp.Message, dstIP net... function extractSocketICMPErrorBody (line 58) | func extractSocketICMPErrorBody(ipVersion int, rm *icmp.Message) ([]byte... function extractSocketICMPv4Body (line 69) | func extractSocketICMPv4Body(rm *icmp.Message) ([]byte, bool) { function extractSocketICMPv6Body (line 82) | func extractSocketICMPv6Body(rm *icmp.Message) ([]byte, bool) { function icmpTimeExceededData (line 98) | func icmpTimeExceededData(body *icmp.TimeExceeded, ok bool) ([]byte, boo... function icmpDstUnreachData (line 105) | func icmpDstUnreachData(body *icmp.DstUnreach, ok bool) ([]byte, bool) { function icmpPacketTooBigData (line 112) | func icmpPacketTooBigData(body *icmp.PacketTooBig, ok bool) ([]byte, boo... function matchesEmbeddedDstIP (line 119) | func matchesEmbeddedDstIP(ipVersion int, data []byte, dstIP net.IP) bool { function extractEmbeddedDstIP (line 127) | func extractEmbeddedDstIP(ipVersion int, data []byte) (net.IP, bool) { function extractEmbeddedICMPSeq (line 144) | func extractEmbeddedICMPSeq(data []byte, echoID int) (int, bool) { FILE: trace/internal/icmp_decode_test.go function mustMarshalICMP (line 13) | func mustMarshalICMP(t *testing.T, message icmp.Message) []byte { function buildIPv4InnerPacket (line 22) | func buildIPv4InnerPacket(dstIP net.IP, echoID, seq int) []byte { function buildIPv6InnerPacket (line 31) | func buildIPv6InnerPacket(dstIP net.IP, echoID, seq int) []byte { function TestMatchSocketICMPEchoReplyIPv4 (line 41) | func TestMatchSocketICMPEchoReplyIPv4(t *testing.T) { function TestMatchSocketICMPEchoReplyIPv6 (line 59) | func TestMatchSocketICMPEchoReplyIPv6(t *testing.T) { function TestExtractSocketICMPPayloadIPv4 (line 77) | func TestExtractSocketICMPPayloadIPv4(t *testing.T) { function TestExtractSocketICMPPayloadIPv6 (line 99) | func TestExtractSocketICMPPayloadIPv6(t *testing.T) { function TestExtractSocketICMPPayloadRejectsWrongDestination (line 121) | func TestExtractSocketICMPPayloadRejectsWrongDestination(t *testing.T) { FILE: trace/internal/icmp_unix.go type ICMPSpec (line 19) | type ICMPSpec struct method Close (line 35) | func (s *ICMPSpec) Close() { method ListenICMP (line 39) | func (s *ICMPSpec) ListenICMP(ctx context.Context, ready chan struct{}... method SendICMP (line 43) | func (s *ICMPSpec) SendICMP(ctx context.Context, ipHdr gopacket.Networ... function ListenPacket (line 31) | func ListenPacket(network string, laddr string) (net.PacketConn, error) { FILE: trace/internal/icmp_windows.go type ICMPSpec (line 22) | type ICMPSpec struct method Close (line 40) | func (s *ICMPSpec) Close() { method resolveICMPMode (line 59) | func (s *ICMPSpec) resolveICMPMode() int { method ListenICMP (line 88) | func (s *ICMPSpec) ListenICMP(ctx context.Context, ready chan struct{}... method listenICMPWinDivert (line 97) | func (s *ICMPSpec) listenICMPWinDivert(ctx context.Context, ready chan... method SendICMP (line 135) | func (s *ICMPSpec) SendICMP(ctx context.Context, ipHdr gopacket.Networ... method sendICMPv6WithWinDivert (line 229) | func (s *ICMPSpec) sendICMPv6WithWinDivert(ip6 *layers.IPv6, icmpHdr, ... method ensureICMPSendHandle (line 253) | func (s *ICMPSpec) ensureICMPSendHandle(ipv6 bool) error { function ListenPacket (line 36) | func ListenPacket(network string, laddr string) (net.PacketConn, error) { function winDivertAvailable (line 48) | func winDivertAvailable() (bool, error) { function shouldUseICMPv6RawSend (line 225) | func shouldUseICMPv6RawSend(ip6 *layers.IPv6) bool { FILE: trace/internal/icmp_windows_test.go function TestShouldUseICMPv6RawSend (line 11) | func TestShouldUseICMPv6RawSend(t *testing.T) { FILE: trace/internal/packet_listener.go type ReceivedMessage (line 10) | type ReceivedMessage struct type PacketListener (line 18) | type PacketListener struct method Start (line 33) | func (l *PacketListener) Start(ctx context.Context) { function NewPacketListener (line 27) | func NewPacketListener(conn net.PacketConn) *PacketListener { FILE: trace/internal/tcp_common.go function NewTCPSpec (line 13) | func NewTCPSpec(IPVersion, ICMPMode int, srcIP, dstIP net.IP, dstPort in... method InitICMP (line 17) | func (s *TCPSpec) InitICMP() { method listenICMPSock (line 33) | func (s *TCPSpec) listenICMPSock(ctx context.Context, ready chan struct{... method decodeICMPSocketMessage (line 54) | func (s *TCPSpec) decodeICMPSocketMessage(msg ReceivedMessage) (time.Tim... FILE: trace/internal/tcp_darwin.go type TCPSpec (line 23) | type TCPSpec struct method InitTCP (line 38) | func (s *TCPSpec) InitTCP() { method Close (line 60) | func (s *TCPSpec) Close() { method ListenICMP (line 65) | func (s *TCPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method captureDevice (line 69) | func (s *TCPSpec) captureDevice() string { method tcpCaptureFilter (line 79) | func (s *TCPSpec) tcpCaptureFilter() string { method ListenTCP (line 106) | func (s *TCPSpec) ListenTCP(ctx context.Context, ready chan struct{}, ... method SendTCP (line 133) | func (s *TCPSpec) SendTCP(ctx context.Context, ipHdr gopacket.NetworkL... function mustOpenDarwinTCPSniffHandle (line 86) | func mustOpenDarwinTCPSniffHandle(dev string) *pcap.Handle { function mustSetDarwinTCPFilter (line 97) | func mustSetDarwinTCPFilter(handle *pcap.Handle, filter string) { FILE: trace/internal/tcp_probe_decode.go function tcpIPVersionPrefix (line 10) | func tcpIPVersionPrefix(ipVersion int) string { function tcpProbeReply (line 17) | func tcpProbeReply(tcp *layers.TCP) (seq int, ack int, ok bool) { function tcpProbePeerIP (line 30) | func tcpProbePeerIP(ipVersion int, pkt gopacket.Packet) (net.IP, bool) { function decodeTCPProbePacket (line 46) | func decodeTCPProbePacket(ipVersion, dstPort int, pkt gopacket.Packet) (... FILE: trace/internal/tcp_probe_decode_test.go function mustSerializeTCPProbePacket (line 11) | func mustSerializeTCPProbePacket(t *testing.T, ipLayer gopacket.NetworkL... function TestDecodeTCPProbePacketIPv4RSTAck (line 40) | func TestDecodeTCPProbePacketIPv4RSTAck(t *testing.T) { function TestDecodeTCPProbePacketIPv6SYNAck (line 71) | func TestDecodeTCPProbePacketIPv6SYNAck(t *testing.T) { function TestDecodeTCPProbePacketRejectsUnexpectedPort (line 101) | func TestDecodeTCPProbePacketRejectsUnexpectedPort(t *testing.T) { FILE: trace/internal/tcp_unix.go type TCPSpec (line 22) | type TCPSpec struct method InitTCP (line 37) | func (s *TCPSpec) InitTCP() { method Close (line 59) | func (s *TCPSpec) Close() { method ListenICMP (line 64) | func (s *TCPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method ListenTCP (line 68) | func (s *TCPSpec) ListenTCP(ctx context.Context, ready chan struct{}, ... method SendTCP (line 114) | func (s *TCPSpec) SendTCP(ctx context.Context, ipHdr gopacket.NetworkL... FILE: trace/internal/tcp_windows.go type TCPSpec (line 19) | type TCPSpec struct method sourceDeviceUnsupportedErr (line 32) | func (s *TCPSpec) sourceDeviceUnsupportedErr() error { method InitTCP (line 39) | func (s *TCPSpec) InitTCP() { method Close (line 62) | func (s *TCPSpec) Close() { method resolveICMPMode (line 68) | func (s *TCPSpec) resolveICMPMode() int { method ListenICMP (line 90) | func (s *TCPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method listenICMPWinDivert (line 99) | func (s *TCPSpec) listenICMPWinDivert(ctx context.Context, ready chan ... method ListenTCP (line 135) | func (s *TCPSpec) ListenTCP(ctx context.Context, ready chan struct{}, ... method SendTCP (line 172) | func (s *TCPSpec) SendTCP(ctx context.Context, ipHdr ipLayer, tcpHdr *... FILE: trace/internal/udp_common.go function NewUDPSpec (line 13) | func NewUDPSpec(IPVersion, ICMPMode int, srcIP, dstIP net.IP, dstPort in... method InitICMP (line 17) | func (s *UDPSpec) InitICMP() { method listenICMPSock (line 33) | func (s *UDPSpec) listenICMPSock(ctx context.Context, ready chan struct{... method decodeICMPSocketMessage (line 54) | func (s *UDPSpec) decodeICMPSocketMessage(msg ReceivedMessage) (time.Tim... FILE: trace/internal/udp_darwin.go type UDPSpec (line 22) | type UDPSpec struct method InitUDP (line 36) | func (s *UDPSpec) InitUDP() { method Close (line 58) | func (s *UDPSpec) Close() { method ListenOut (line 63) | func (s *UDPSpec) ListenOut(ctx context.Context, ready chan struct{}, ... method ListenICMP (line 139) | func (s *UDPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method SendUDP (line 143) | func (s *UDPSpec) SendUDP(ctx context.Context, ipHdr gopacket.NetworkL... FILE: trace/internal/udp_unix.go type UDPSpec (line 22) | type UDPSpec struct method InitUDP (line 37) | func (s *UDPSpec) InitUDP() { method Close (line 73) | func (s *UDPSpec) Close() { method ListenOut (line 78) | func (s *UDPSpec) ListenOut(_ context.Context, _ chan struct{}, _ func... method ListenICMP (line 81) | func (s *UDPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method sendUDPIPv4 (line 107) | func (s *UDPSpec) sendUDPIPv4(ipHdr *layers.IPv4, udpHdr *layers.UDP, ... method sendUDPIPv6 (line 145) | func (s *UDPSpec) sendUDPIPv6(ipHdr *layers.IPv6, udpHdr *layers.UDP, ... method SendUDP (line 174) | func (s *UDPSpec) SendUDP(ctx context.Context, ipHdr ipLayer, udpHdr *... function serializeUDPPacket (line 85) | func serializeUDPPacket(payload []byte, layersToSerialize ...gopacket.Se... function parseIPv4Packet (line 98) | func parseIPv4Packet(packet []byte) (*ipv4.Header, []byte, error) { FILE: trace/internal/udp_windows.go type UDPSpec (line 19) | type UDPSpec struct method InitUDP (line 31) | func (s *UDPSpec) InitUDP() { method Close (line 47) | func (s *UDPSpec) Close() { method ListenOut (line 52) | func (s *UDPSpec) ListenOut(_ context.Context, _ chan struct{}, _ func... method resolveICMPMode (line 56) | func (s *UDPSpec) resolveICMPMode() int { method ListenICMP (line 78) | func (s *UDPSpec) ListenICMP(ctx context.Context, ready chan struct{},... method listenICMPWinDivert (line 87) | func (s *UDPSpec) listenICMPWinDivert(ctx context.Context, ready chan ... method SendUDP (line 116) | func (s *UDPSpec) SendUDP(ctx context.Context, ipHdr ipLayer, udpHdr *... FILE: trace/internal/windivert_sniff_windows.go type winDivertICMPPacket (line 20) | type winDivertICMPPacket struct method message (line 178) | func (p *winDivertICMPPacket) message() ReceivedMessage { method echoReplyFor (line 185) | func (p *winDivertICMPPacket) echoReplyFor(dstIP net.IP, echoID int) (... method errorPayloadFor (line 192) | func (p *winDivertICMPPacket) errorPayloadFor(dstIP net.IP) ([]byte, b... function winDivertICMPFilter (line 30) | func winDivertICMPFilter(ipVersion int, srcIP net.IP) string { function winDivertTCPFilter (line 37) | func winDivertTCPFilter(ipVersion int, dstIP, srcIP net.IP, dstPort int)... function openWinDivertSniffHandle (line 50) | func openWinDivertSniffHandle(ctx context.Context, filter, action string... function packetDecoderForIPVersion (line 71) | func packetDecoderForIPVersion(ipVersion int) gopacket.Decoder { function receiveWinDivertPacket (line 78) | func receiveWinDivertPacket(ctx context.Context, handle wd.Handle, buf [... function decodeWinDivertICMPPacket (line 101) | func decodeWinDivertICMPPacket(ipVersion int, raw []byte) (*winDivertICM... function decodeWinDivertTCPPacket (line 109) | func decodeWinDivertTCPPacket(ipVersion int, raw []byte, dstPort int) (s... function decodeWinDivertICMPv4Packet (line 114) | func decodeWinDivertICMPv4Packet(pkt gopacket.Packet, raw []byte) (*winD... function decodeWinDivertICMPv6Packet (line 144) | func decodeWinDivertICMPv6Packet(pkt gopacket.Packet, raw []byte) (*winD... FILE: trace/mtr_loop_runtime.go type mtrLoopRuntime (line 10) | type mtrLoopRuntime struct method run (line 53) | func (rt *mtrLoopRuntime) run() error { method snapshotContextError (line 85) | func (rt *mtrLoopRuntime) snapshotContextError() error { method emitSnapshot (line 93) | func (rt *mtrLoopRuntime) emitSnapshot() { method handleReset (line 99) | func (rt *mtrLoopRuntime) handleReset() { method waitWhilePaused (line 113) | func (rt *mtrLoopRuntime) waitWhilePaused() error { method runProbeRound (line 129) | func (rt *mtrLoopRuntime) runProbeRound() (*Result, error) { method runProbeRoundWithPreview (line 137) | func (rt *mtrLoopRuntime) runProbeRoundWithPreview(peeker mtrPeeker) (... method emitPreview (line 168) | func (rt *mtrLoopRuntime) emitPreview(peeker mtrPeeker) { method handleProbeError (line 177) | func (rt *mtrLoopRuntime) handleProbeError(err error) (bool, error) { method waitBackoff (line 199) | func (rt *mtrLoopRuntime) waitBackoff() error { method recordSuccess (line 211) | func (rt *mtrLoopRuntime) recordSuccess(res *Result) { method waitInterval (line 226) | func (rt *mtrLoopRuntime) waitInterval() error { function newMTRLoopRuntime (line 24) | func newMTRLoopRuntime( FILE: trace/mtr_raw.go type MTRRawOptions (line 16) | type MTRRawOptions struct type MTRRawRecord (line 36) | type MTRRawRecord struct type MTRRawOnRecord (line 55) | type MTRRawOnRecord function RunMTRRaw (line 63) | func RunMTRRaw(ctx context.Context, method Method, cfg Config, opts MTRR... function runMTRRawPerHop (line 71) | func runMTRRawPerHop(ctx context.Context, method Method, cfg Config, opt... function runMTRRawRoundBased (line 130) | func runMTRRawRoundBased(ctx context.Context, method Method, cfg Config,... function buildMTRRawRecord (line 217) | func buildMTRRawRecord(iteration int, h Hop, cfg Config) MTRRawRecord { function addrToIPString (line 259) | func addrToIPString(addr net.Addr) string { function geoTextByLang (line 281) | func geoTextByLang(lang, cn, en string) string { function buildMTRRawRecordFromProbe (line 297) | func buildMTRRawRecordFromProbe(iteration int, pr mtrProbeResult, cfg Co... function newMTRRawRecord (line 306) | func newMTRRawRecord(iteration int, pr mtrProbeResult) MTRRawRecord { function applyMTRRawProbeMetadata (line 324) | func applyMTRRawProbeMetadata(rec *MTRRawRecord, pr mtrProbeResult, cfg ... function applyMTRRawGeo (line 339) | func applyMTRRawGeo(rec *MTRRawRecord, geo *ipgeo.IPGeoData, lang string) { function applyMTRRawHostname (line 356) | func applyMTRRawHostname(rec *MTRRawRecord, hostname string) { FILE: trace/mtr_raw_test.go function TestRunMTRRaw_EmitsPerAttemptRecords (line 13) | func TestRunMTRRaw_EmitsPerAttemptRecords(t *testing.T) { function TestRunMTRRaw_RespectsMaxRoundsAndInterval (line 74) | func TestRunMTRRaw_RespectsMaxRoundsAndInterval(t *testing.T) { function TestRunMTRRaw_ContextCancelStopsLoop (line 101) | func TestRunMTRRaw_ContextCancelStopsLoop(t *testing.T) { function TestRunMTRRaw_UsesRunRoundOverride (line 133) | func TestRunMTRRaw_UsesRunRoundOverride(t *testing.T) { function TestRunMTRRaw_RoundBasedNormalizesRuntimeConfig (line 153) | func TestRunMTRRaw_RoundBasedNormalizesRuntimeConfig(t *testing.T) { FILE: trace/mtr_runner.go type MTROptions (line 24) | type MTROptions struct type MTROnSnapshot (line 46) | type MTROnSnapshot type mtrBackoffCfg (line 49) | type mtrBackoffCfg struct type mtrProber (line 62) | type mtrProber interface type mtrResetter (line 68) | type mtrResetter interface type mtrPeeker (line 74) | type mtrPeeker interface function RunMTR (line 87) | func RunMTR(ctx context.Context, method Method, baseConfig Config, opts ... function runMTRPerHop (line 95) | func runMTRPerHop(ctx context.Context, method Method, baseConfig Config,... function runMTRRoundBased (line 149) | func runMTRRoundBased(ctx context.Context, method Method, baseConfig Con... function mtrLoop (line 199) | func mtrLoop( function mtrFillGeoRDNS (line 216) | func mtrFillGeoRDNS(res *Result, config Config) { type mtrICMPEngine (line 239) | type mtrICMPEngine struct method start (line 325) | func (e *mtrICMPEngine) start(ctx context.Context) error { method close (line 350) | func (e *mtrICMPEngine) close() { method resetFinalTTL (line 358) | func (e *mtrICMPEngine) resetFinalTTL() { method peekPartialResult (line 364) | func (e *mtrICMPEngine) peekPartialResult() *Result { method rotateEngine (line 420) | func (e *mtrICMPEngine) rotateEngine(ctx context.Context) error { method onICMP (line 458) | func (e *mtrICMPEngine) onICMP(msg internal.ReceivedMessage, finish ti... method shouldDiscardProbeReplyLocked (line 479) | func (e *mtrICMPEngine) shouldDiscardProbeReplyLocked(seq int, start m... method validProbeRTT (line 491) | func (e *mtrICMPEngine) validProbeRTT(rtt time.Duration) bool { method discardProbeLocked (line 499) | func (e *mtrICMPEngine) discardProbeLocked(seq int) { method storeProbeReplyLocked (line 504) | func (e *mtrICMPEngine) storeProbeReplyLocked(seq int, msg internal.Re... method closeProbeNotifyLocked (line 514) | func (e *mtrICMPEngine) closeProbeNotifyLocked(seq int) { method detectRoundFinalTTLCandidate (line 521) | func (e *mtrICMPEngine) detectRoundFinalTTLCandidate(peer net.Addr, tt... method updateRoundFinalTTL (line 542) | func (e *mtrICMPEngine) updateRoundFinalTTL(ttl int32) { method signalReplyReady (line 552) | func (e *mtrICMPEngine) signalReplyReady() { method sendProbe (line 560) | func (e *mtrICMPEngine) sendProbe(ctx context.Context, ttl, seq int) (... method probeRound (line 609) | func (e *mtrICMPEngine) probeRound(ctx context.Context) (*Result, erro... method prepareProbeRound (line 629) | func (e *mtrICMPEngine) prepareProbeRound(ctx context.Context) mtrProb... method resetProbeRoundMaps (line 659) | func (e *mtrICMPEngine) resetProbeRoundMaps() { method drainNotifySignal (line 666) | func (e *mtrICMPEngine) drainNotifySignal() { method rotateProbeEngineIfNeeded (line 673) | func (e *mtrICMPEngine) rotateProbeEngineIfNeeded(ctx context.Context,... method effectiveProbeRoundMax (line 680) | func (e *mtrICMPEngine) effectiveProbeRoundMax(maxHops int) int { method initProbeRoundPreview (line 687) | func (e *mtrICMPEngine) initProbeRoundPreview(beginHop, effectiveMax i... method probeRoundDelay (line 695) | func (e *mtrICMPEngine) probeRoundDelay() time.Duration { method sendProbeSweep (line 703) | func (e *mtrICMPEngine) sendProbeSweep(ctx context.Context, round mtrP... method sendProbeForTTL (line 722) | func (e *mtrICMPEngine) sendProbeForTTL(ctx context.Context, ttl int, ... method waitProbeInterval (line 757) | func (e *mtrICMPEngine) waitProbeInterval(ctx context.Context, delay t... method waitForProbeReplies (line 766) | func (e *mtrICMPEngine) waitForProbeReplies(ctx context.Context) { method probeResponseTimeout (line 779) | func (e *mtrICMPEngine) probeResponseTimeout() time.Duration { method hasPendingProbeReplies (line 787) | func (e *mtrICMPEngine) hasPendingProbeReplies() bool { method finalizeProbeRound (line 793) | func (e *mtrICMPEngine) finalizeProbeRound(effectiveMax int) int { method updateKnownFinalTTLFromRound (line 798) | func (e *mtrICMPEngine) updateKnownFinalTTLFromRound() { method roundFinalMax (line 807) | func (e *mtrICMPEngine) roundFinalMax(effectiveMax int) int { method buildProbeRoundResult (line 814) | func (e *mtrICMPEngine) buildProbeRoundResult(beginHop, finalMax int) ... method probeRoundHop (line 824) | func (e *mtrICMPEngine) probeRoundHop(ttl int) Hop { method ProbeTTL (line 866) | func (e *mtrICMPEngine) ProbeTTL(ctx context.Context, ttl int) (mtrPro... method Reset (line 956) | func (e *mtrICMPEngine) Reset() error { method Close (line 973) | func (e *mtrICMPEngine) Close() error { type mtrProbeMeta (line 276) | type mtrProbeMeta struct type mtrProbeReply (line 282) | type mtrProbeReply struct function newMTRICMPEngine (line 288) | func newMTRICMPEngine(config Config) (*mtrICMPEngine, error) { function seqWillWrap (line 410) | func seqWillWrap(seqCounter uint32, probeCount int) bool { function mtrPeerIP (line 529) | func mtrPeerIP(addr net.Addr) net.IP { type mtrProbeRoundState (line 621) | type mtrProbeRoundState struct type mtrFallbackProber (line 849) | type mtrFallbackProber struct method probeRound (line 854) | func (p *mtrFallbackProber) probeRound(ctx context.Context) (*Result, ... method close (line 858) | func (p *mtrFallbackProber) close() {} type mtrFallbackTTLProber (line 983) | type mtrFallbackTTLProber struct method ProbeTTL (line 988) | func (p *mtrFallbackTTLProber) ProbeTTL(ctx context.Context, ttl int) ... method Reset (line 1020) | func (p *mtrFallbackTTLProber) Reset() error { return nil } method Close (line 1021) | func (p *mtrFallbackTTLProber) Close() error { return nil } FILE: trace/mtr_runner_test.go type mockProber (line 18) | type mockProber struct method probeRound (line 23) | func (m *mockProber) probeRound(ctx context.Context) (*Result, error) { method close (line 27) | func (m *mockProber) close() { function constantResultProber (line 31) | func constantResultProber(res *Result) *mockProber { function TestMTRLoopMaxRounds (line 50) | func TestMTRLoopMaxRounds(t *testing.T) { function TestMTRLoopCancel (line 78) | func TestMTRLoopCancel(t *testing.T) { function TestMTRLoopErrorBackoff (line 108) | func TestMTRLoopErrorBackoff(t *testing.T) { function TestMTRLoopErrorRecovery (line 147) | func TestMTRLoopErrorRecovery(t *testing.T) { function TestMTRLoopTimeoutHops (line 180) | func TestMTRLoopTimeoutHops(t *testing.T) { function TestMTRLoopSnapshotIterations (line 208) | func TestMTRLoopSnapshotIterations(t *testing.T) { function TestMTRLoopCloseCalledOnError (line 242) | func TestMTRLoopCloseCalledOnError(t *testing.T) { function TestMTRLoopCloseCalledOnSuccess (line 259) | func TestMTRLoopCloseCalledOnSuccess(t *testing.T) { function TestMTRLoopNilOnSnapshot (line 275) | func TestMTRLoopNilOnSnapshot(t *testing.T) { function TestMTRLoopCancelDuringIntervalCallsSnapshot (line 298) | func TestMTRLoopCancelDuringIntervalCallsSnapshot(t *testing.T) { function TestMTRLoopCancelDuringBackoffCallsSnapshot (line 338) | func TestMTRLoopCancelDuringBackoffCallsSnapshot(t *testing.T) { function TestMTRLoopPause (line 385) | func TestMTRLoopPause(t *testing.T) { function newTestICMPEngine (line 433) | func newTestICMPEngine(timeout time.Duration) *mtrICMPEngine { function TestOnICMP_NormalReply (line 446) | func TestOnICMP_NormalReply(t *testing.T) { function TestOnICMP_StaleRoundReply (line 466) | func TestOnICMP_StaleRoundReply(t *testing.T) { function TestOnICMP_SeqWrapStaleReply (line 496) | func TestOnICMP_SeqWrapStaleReply(t *testing.T) { function TestOnICMP_NegativeRTT (line 526) | func TestOnICMP_NegativeRTT(t *testing.T) { function TestOnICMP_ExactTimeoutBoundary (line 545) | func TestOnICMP_ExactTimeoutBoundary(t *testing.T) { function TestOnICMP_UnknownSeq (line 565) | func TestOnICMP_UnknownSeq(t *testing.T) { function TestSeqWillWrap_NoWrap (line 581) | func TestSeqWillWrap_NoWrap(t *testing.T) { function TestSeqWillWrap_JustBelowBoundary (line 588) | func TestSeqWillWrap_JustBelowBoundary(t *testing.T) { function TestSeqWillWrap_OneOver (line 596) | func TestSeqWillWrap_OneOver(t *testing.T) { function TestSeqWillWrap_AtMax (line 604) | func TestSeqWillWrap_AtMax(t *testing.T) { function TestSeqWillWrap_HighBitsIgnored (line 611) | func TestSeqWillWrap_HighBitsIgnored(t *testing.T) { function TestSeqWillWrap_HighBitsWrap (line 619) | func TestSeqWillWrap_HighBitsWrap(t *testing.T) { function TestSeqWillWrap_ZeroProbes (line 627) | func TestSeqWillWrap_ZeroProbes(t *testing.T) { function TestSeqWillWrap_NegativeProbes (line 633) | func TestSeqWillWrap_NegativeProbes(t *testing.T) { function TestProbeRound_BeginHopExceedsMaxHops (line 644) | func TestProbeRound_BeginHopExceedsMaxHops(t *testing.T) { function TestMTRLoop_RestartStatistics (line 681) | func TestMTRLoop_RestartStatistics(t *testing.T) { function TestResetClearsKnownFinalTTL (line 748) | func TestResetClearsKnownFinalTTL(t *testing.T) { function TestOnICMP_DetectsDestination (line 764) | func TestOnICMP_DetectsDestination(t *testing.T) { function TestOnICMP_NonDestinationDoesNotSetFinal (line 784) | func TestOnICMP_NonDestinationDoesNotSetFinal(t *testing.T) { function TestPeekPartialResult_EmptyBeforeRound (line 807) | func TestPeekPartialResult_EmptyBeforeRound(t *testing.T) { function TestPeekPartialResult_PartialReplies (line 815) | func TestPeekPartialResult_PartialReplies(t *testing.T) { function TestPeekPartialResult_UnsentTTLsAreNil (line 852) | func TestPeekPartialResult_UnsentTTLsAreNil(t *testing.T) { function TestPeekPartialResult_TrimsByRoundFinalTTL (line 892) | func TestPeekPartialResult_TrimsByRoundFinalTTL(t *testing.T) { type mockPeekerProber (line 916) | type mockPeekerProber struct method peekPartialResult (line 921) | func (m *mockPeekerProber) peekPartialResult() *Result { function TestMTRLoop_StreamingProgress (line 928) | func TestMTRLoop_StreamingProgress(t *testing.T) { function TestMTRLoop_NonPeekerNoStreaming (line 973) | func TestMTRLoop_NonPeekerNoStreaming(t *testing.T) { FILE: trace/mtr_scheduler.go type mtrProbeResult (line 16) | type mtrProbeResult struct type mtrTTLProber (line 27) | type mtrTTLProber interface type mtrSchedulerConfig (line 37) | type mtrSchedulerConfig struct type mtrHopState (line 56) | type mtrHopState struct type mtrCompletedProbe (line 65) | type mtrCompletedProbe struct function runMTRScheduler (line 81) | func runMTRScheduler( function mtrAddrToIP (line 98) | func mtrAddrToIP(addr net.Addr) net.IP { FILE: trace/mtr_scheduler_runtime.go type mtrSchedulerRuntime (line 11) | type mtrSchedulerRuntime struct method run (line 109) | func (rt *mtrSchedulerRuntime) run() error { method effectiveMax (line 137) | func (rt *mtrSchedulerRuntime) effectiveMax() int { method computeIteration (line 145) | func (rt *mtrSchedulerRuntime) computeIteration() int { method maybeSnapshot (line 163) | func (rt *mtrSchedulerRuntime) maybeSnapshot(force bool) { method launchProbe (line 175) | func (rt *mtrSchedulerRuntime) launchProbe(ttl int) { method processResult (line 193) | func (rt *mtrSchedulerRuntime) processResult(cp mtrCompletedProbe) { method processProbeError (line 214) | func (rt *mtrSchedulerRuntime) processProbeError(ttl int, err error) { method recordSyntheticTimeout (line 231) | func (rt *mtrSchedulerRuntime) recordSyntheticTimeout(ttl int) { method resultHopCount (line 239) | func (rt *mtrSchedulerRuntime) resultHopCount() int { method timeoutProbeResult (line 249) | func (rt *mtrSchedulerRuntime) timeoutProbeResult(ttl int) *Result { method processProbeSuccess (line 258) | func (rt *mtrSchedulerRuntime) processProbeSuccess(ttl int, result mtr... method detectDestination (line 278) | func (rt *mtrSchedulerRuntime) detectDestination(ttl int, result mtrPr... method disableHigherTTLs (line 303) | func (rt *mtrSchedulerRuntime) disableHigherTTLs(fromTTL int) { method probeBudgetReached (line 309) | func (rt *mtrSchedulerRuntime) probeBudgetReached(ttl int) bool { method markProbeCompleted (line 313) | func (rt *mtrSchedulerRuntime) markProbeCompleted(ttl int) { method singleProbeResult (line 318) | func (rt *mtrSchedulerRuntime) singleProbeResult(ttl int, result mtrPr... method scheduleReady (line 341) | func (rt *mtrSchedulerRuntime) scheduleReady() { method canLaunchProbe (line 358) | func (rt *mtrSchedulerRuntime) canLaunchProbe(ttl int, now time.Time) ... method isDone (line 372) | func (rt *mtrSchedulerRuntime) isDone() bool { method handleReset (line 390) | func (rt *mtrSchedulerRuntime) handleReset() { method handleCancel (line 404) | func (rt *mtrSchedulerRuntime) handleCancel() error { method drainInFlight (line 410) | func (rt *mtrSchedulerRuntime) drainInFlight() { function newMTRSchedulerRuntime (line 33) | func newMTRSchedulerRuntime( FILE: trace/mtr_scheduler_test.go type mockTTLProber (line 20) | type mockTTLProber struct method ProbeTTL (line 29) | func (m *mockTTLProber) ProbeTTL(ctx context.Context, ttl int) (mtrPro... method Reset (line 40) | func (m *mockTTLProber) Reset() error { method Close (line 45) | func (m *mockTTLProber) Close() error { method getProbeCount (line 50) | func (m *mockTTLProber) getProbeCount() int { function TestScheduler_ResultBuildersUseBoundedHopCount (line 58) | func TestScheduler_ResultBuildersUseBoundedHopCount(t *testing.T) { function TestScheduler_MaxPerHopCompletion (line 87) | func TestScheduler_MaxPerHopCompletion(t *testing.T) { function TestScheduler_ContextCancel (line 154) | func TestScheduler_ContextCancel(t *testing.T) { function TestScheduler_DestinationDetection (line 190) | func TestScheduler_DestinationDetection(t *testing.T) { function TestScheduler_Reset (line 243) | func TestScheduler_Reset(t *testing.T) { function TestScheduler_Pause (line 308) | func TestScheduler_Pause(t *testing.T) { function TestScheduler_IterationIsMinSnt (line 355) | func TestScheduler_IterationIsMinSnt(t *testing.T) { function TestScheduler_OnProbeCallback (line 405) | func TestScheduler_OnProbeCallback(t *testing.T) { function TestScheduler_BeginHopGreaterThanMaxHops (line 457) | func TestScheduler_BeginHopGreaterThanMaxHops(t *testing.T) { function TestScheduler_ConcurrencyLimit (line 474) | func TestScheduler_ConcurrencyLimit(t *testing.T) { function TestMtrAddrToIP (line 519) | func TestMtrAddrToIP(t *testing.T) { function TestScheduler_ErrorBudgetExhausted (line 540) | func TestScheduler_ErrorBudgetExhausted(t *testing.T) { function TestScheduler_ErrorBudgetEmitsOnProbe (line 575) | func TestScheduler_ErrorBudgetEmitsOnProbe(t *testing.T) { function TestScheduler_ErrorResetsOnSuccess (line 626) | func TestScheduler_ErrorResetsOnSuccess(t *testing.T) { function TestScheduler_FallbackGeoCarriedToAggregator (line 677) | func TestScheduler_FallbackGeoCarriedToAggregator(t *testing.T) { function TestBuildMTRRawRecordFromProbe_PreResolvedGeo (line 732) | func TestBuildMTRRawRecordFromProbe_PreResolvedGeo(t *testing.T) { function TestBuildMTRRawRecordFromProbe_NoGeoNoSource_NoHostname (line 770) | func TestBuildMTRRawRecordFromProbe_NoGeoNoSource_NoHostname(t *testing.... function TestScheduler_RawRecordCountMatchesAggSnt_ErrorBudget (line 795) | func TestScheduler_RawRecordCountMatchesAggSnt_ErrorBudget(t *testing.T) { function TestBuildMTRRawRecordFromProbe_RDNSOnlyPath (line 864) | func TestBuildMTRRawRecordFromProbe_RDNSOnlyPath(t *testing.T) { function TestScheduler_HigherTTLDestinationRepliesDiscarded (line 902) | func TestScheduler_HigherTTLDestinationRepliesDiscarded(t *testing.T) { function TestScheduler_DiscardedDestinationRepliesCannotExceedMaxPerHop (line 995) | func TestScheduler_DiscardedDestinationRepliesCannotExceedMaxPerHop(t *t... function TestScheduler_NonDestinationRepliesOnDisabledHigherTTLDiscarded (line 1058) | func TestScheduler_NonDestinationRepliesOnDisabledHigherTTLDiscarded(t *... function TestScheduler_FinalTTLLowered_MigratesStatsToNewFinal (line 1129) | func TestScheduler_FinalTTLLowered_MigratesStatsToNewFinal(t *testing.T) { function TestScheduler_FinalTTLLowered_ChainMigration (line 1227) | func TestScheduler_FinalTTLLowered_ChainMigration(t *testing.T) { function TestScheduler_LateHigherTTLDestinationReply_Discarded_NoSntBump (line 1300) | func TestScheduler_LateHigherTTLDestinationReply_Discarded_NoSntBump(t *... function TestScheduler_DiscardedOverFinal_DoesNotEmitOnProbe (line 1384) | func TestScheduler_DiscardedOverFinal_DoesNotEmitOnProbe(t *testing.T) { function TestScheduler_FinalTTLLowering_Chain_WithMaxPerHop_NoGhostRow_StableStats (line 1459) | func TestScheduler_FinalTTLLowering_Chain_WithMaxPerHop_NoGhostRow_Stabl... function TestScheduler_FinalHopSntNotInflated_NoLowering (line 1604) | func TestScheduler_FinalHopSntNotInflated_NoLowering(t *testing.T) { function TestScheduler_FinalHopSntNotInflated_WithLowering (line 1656) | func TestScheduler_FinalHopSntNotInflated_WithLowering(t *testing.T) { function TestScheduler_MultiInFlightPerHop_HighLossEqualSnt (line 1728) | func TestScheduler_MultiInFlightPerHop_HighLossEqualSnt(t *testing.T) { function TestScheduler_MultiInFlightPerHop_TimeoutHopsKeepUp (line 1794) | func TestScheduler_MultiInFlightPerHop_TimeoutHopsKeepUp(t *testing.T) { function TestScheduler_NextAtBasedOnLaunchTime (line 1860) | func TestScheduler_NextAtBasedOnLaunchTime(t *testing.T) { function TestScheduler_MaxPerHopRespectedWithMultiInFlight (line 1921) | func TestScheduler_MaxPerHopRespectedWithMultiInFlight(t *testing.T) { function TestScheduler_SingleInFlightPerHopConfig (line 1975) | func TestScheduler_SingleInFlightPerHopConfig(t *testing.T) { function TestScheduler_DynamicMaxInFlightPerHop (line 2021) | func TestScheduler_DynamicMaxInFlightPerHop(t *testing.T) { function TestScheduler_DynamicMaxInFlightPerHop_SmallTimeout (line 2083) | func TestScheduler_DynamicMaxInFlightPerHop_SmallTimeout(t *testing.T) { FILE: trace/mtr_stats.go type MTRHopStat (line 16) | type MTRHopStat struct type MTRSnapshot (line 33) | type MTRSnapshot struct type mtrHopAccum (line 42) | type mtrHopAccum struct type MTRAggregator (line 60) | type MTRAggregator struct method Update (line 74) | func (agg *MTRAggregator) Update(res *Result, queries int) []MTRHopStat { method Reset (line 100) | func (agg *MTRAggregator) Reset() { method ClearHop (line 110) | func (agg *MTRAggregator) ClearHop(ttl int) { method MigrateStats (line 120) | func (agg *MTRAggregator) MigrateStats(fromTTL, toTTL, maxPerHop int) { method Clone (line 149) | func (agg *MTRAggregator) Clone() *MTRAggregator { method Snapshot (line 177) | func (agg *MTRAggregator) Snapshot() []MTRHopStat { method snapshotLocked (line 183) | func (agg *MTRAggregator) snapshotLocked() []MTRHopStat { function NewMTRAggregator (line 67) | func NewMTRAggregator() *MTRAggregator { constant mtrUnknownKey (line 218) | mtrUnknownKey = "unknown" function mtrHopKey (line 220) | func mtrHopKey(ip, host string) string { function mergeUnknownIntoSingleKnown (line 237) | func mergeUnknownIntoSingleKnown(accMap map[string]*mtrHopAccum) { FILE: trace/mtr_stats_helpers.go type mtrHopGroup (line 12) | type mtrHopGroup struct method includeAttempt (line 53) | func (g *mtrHopGroup) includeAttempt(attempt Hop) { function newMTRHopGroup (line 26) | func newMTRHopGroup(host, ip string) *mtrHopGroup { function groupMTRHopAttempts (line 34) | func groupMTRHopAttempts(attempts []Hop) map[string]*mtrHopGroup { method accMapForTTLLocked (line 76) | func (agg *MTRAggregator) accMapForTTLLocked(ttl int) map[string]*mtrHop... method newHopAccum (line 85) | func (agg *MTRAggregator) newHopAccum(ttl int, key string) *mtrHopAccum { method mergeGroupedHopLocked (line 97) | func (agg *MTRAggregator) mergeGroupedHopLocked(ttl int, accMap map[stri... function mergeMTRHopGroupIntoAccum (line 106) | func mergeMTRHopGroupIntoAccum(acc *mtrHopAccum, group *mtrHopGroup) { function mergeMTRHopAccum (line 132) | func mergeMTRHopAccum(dst, src *mtrHopAccum) { function mergeMTRLabels (line 158) | func mergeMTRLabels(dst *map[string]struct{}, labels []string) { function mergeMTRLabelSet (line 173) | func mergeMTRLabelSet(dst, src map[string]struct{}) { function capMTRHopAccum (line 179) | func capMTRHopAccum(acc *mtrHopAccum, maxPerHop int) { function buildMTRHopStat (line 211) | func buildMTRHopStat(acc *mtrHopAccum) MTRHopStat { FILE: trace/mtr_stats_test.go function mkHop (line 12) | func mkHop(ttl int, ip string, rtt time.Duration) Hop { function mkTimeoutHop (line 21) | func mkTimeoutHop(ttl int) Hop { function mkResult (line 30) | func mkResult(hopsByTTL ...[]Hop) *Result { function roundN (line 38) | func roundN(v float64, n int) float64 { function TestSinglePath (line 43) | func TestSinglePath(t *testing.T) { function TestMultiPath (line 112) | func TestMultiPath(t *testing.T) { function TestErrorMix (line 144) | func TestErrorMix(t *testing.T) { function TestGeoPropagation (line 176) | func TestGeoPropagation(t *testing.T) { function TestStDevSingleSample (line 194) | func TestStDevSingleSample(t *testing.T) { function TestAllTimeout (line 206) | func TestAllTimeout(t *testing.T) { function TestUpdate_NilResult (line 228) | func TestUpdate_NilResult(t *testing.T) { function TestHostnamePropagation (line 238) | func TestHostnamePropagation(t *testing.T) { function TestMTRAggregator_Reset (line 252) | func TestMTRAggregator_Reset(t *testing.T) { function TestMTRAggregator_CloneIsolation (line 278) | func TestMTRAggregator_CloneIsolation(t *testing.T) { function TestUnknownMergedAfterLaterReply_SinglePath (line 327) | func TestUnknownMergedAfterLaterReply_SinglePath(t *testing.T) { function TestUnknownPreserved_Multipath (line 359) | func TestUnknownPreserved_Multipath(t *testing.T) { function TestMTRAggregator_ClearHop_RemovesData (line 396) | func TestMTRAggregator_ClearHop_RemovesData(t *testing.T) { function TestMTRAggregator_ClearHop_NoopIfMissing (line 430) | func TestMTRAggregator_ClearHop_NoopIfMissing(t *testing.T) { function TestMTRAggregator_ClearHop_DoesNotAffectOtherTTLs (line 456) | func TestMTRAggregator_ClearHop_DoesNotAffectOtherTTLs(t *testing.T) { function TestMTRAggregator_MigrateStats_MovesToNewTTL (line 491) | func TestMTRAggregator_MigrateStats_MovesToNewTTL(t *testing.T) { function TestMTRAggregator_MigrateStats_MergesIntoExisting (line 532) | func TestMTRAggregator_MigrateStats_MergesIntoExisting(t *testing.T) { function TestMTRAggregator_MigrateStats_NoopIfFromEmpty (line 568) | func TestMTRAggregator_MigrateStats_NoopIfFromEmpty(t *testing.T) { function TestMTRAggregator_MigrateStats_CapsAtMaxPerHop (line 588) | func TestMTRAggregator_MigrateStats_CapsAtMaxPerHop(t *testing.T) { function TestMTRAggregator_MigrateStats_CapsReceived (line 623) | func TestMTRAggregator_MigrateStats_CapsReceived(t *testing.T) { function TestMTRAggregator_MigrateStats_CapsPreservesAvgStDev (line 666) | func TestMTRAggregator_MigrateStats_CapsPreservesAvgStDev(t *testing.T) { function TestMTRAggregator_MigrateStats_CapsPreservesNonZeroStDev (line 704) | func TestMTRAggregator_MigrateStats_CapsPreservesNonZeroStDev(t *testing... FILE: trace/mtu/decode.go constant probePayloadMinLen (line 13) | probePayloadMinLen = 8 type probeResponse (line 15) | type probeResponse struct function buildProbePayload (line 22) | func buildProbePayload(size int) []byte { function parseICMPProbeResult (line 29) | func parseICMPProbeResult(ipVersion int, raw []byte, peerIP, dstIP net.I... function matchesEmbeddedUDP (line 117) | func matchesEmbeddedUDP(data []byte, ipVersion int, dstIP net.IP, dstPor... type embeddedUDPPacket (line 127) | type embeddedUDPPacket struct function parseEmbeddedUDPPacket (line 133) | func parseEmbeddedUDPPacket(data []byte, ipVersion int) (embeddedUDPPack... function parseEmbeddedIPv6UDP (line 157) | func parseEmbeddedIPv6UDP(data []byte) (embeddedUDPPacket, bool) { function parseEmbeddedUDPFromOffsets (line 202) | func parseEmbeddedUDPFromOffsets(data []byte, udpOffset int, dstIP net.I... FILE: trace/mtu/decode_test.go function TestParseICMPProbeResultIPv4FragNeeded (line 15) | func TestParseICMPProbeResultIPv4FragNeeded(t *testing.T) { function TestParseICMPProbeResultIPv6PacketTooBig (line 46) | func TestParseICMPProbeResultIPv6PacketTooBig(t *testing.T) { function TestParseICMPProbeResultIPv4MatchesMinimumQuotedUDPHeader (line 73) | func TestParseICMPProbeResultIPv4MatchesMinimumQuotedUDPHeader(t *testin... function TestParseEmbeddedUDPPacketIPv6WithExtensionHeaders (line 99) | func TestParseEmbeddedUDPPacketIPv6WithExtensionHeaders(t *testing.T) { function mustSerializeIPv4UDP (line 123) | func mustSerializeIPv4UDP(t *testing.T, srcIP, dstIP net.IP, srcPort, ds... function mustSerializeIPv6UDP (line 142) | func mustSerializeIPv6UDP(t *testing.T, srcIP, dstIP net.IP, srcPort, ds... function mustSerializeLayers (line 161) | func mustSerializeLayers(t *testing.T, layersToSerialize ...gopacket.Ser... FILE: trace/mtu/metadata.go constant mtuTimeoutGeoSource (line 13) | mtuTimeoutGeoSource = "timeout" type mtuGeoLookupResult (line 17) | type mtuGeoLookupResult struct function enrichHopMetadata (line 22) | func enrichHopMetadata(ctx context.Context, cfg Config, hop Hop) (Hop, b... function shouldFetchHopMetadata (line 43) | func shouldFetchHopMetadata(cfg Config, hop Hop) bool { function startMTUPTRLookup (line 50) | func startMTUPTRLookup(ctx context.Context, ipStr string) <-chan []string { function applyMTUPTRResult (line 63) | func applyMTUPTRResult(h *Hop, ptrs []string) { function startMTUGeoLookup (line 70) | func startMTUGeoLookup(cfg Config, ipStr string) <-chan mtuGeoLookupResu... function waitForMTUGeoAndPTR (line 96) | func waitForMTUGeoAndPTR(ctx context.Context, cfg Config, hop Hop, geoCh... function ctxDoneChan (line 158) | func ctxDoneChan(ctx context.Context) <-chan struct{} { function normalizeMTUGeoData (line 165) | func normalizeMTUGeoData(geo *ipgeo.IPGeoData) *ipgeo.IPGeoData { function mtuTimeoutGeo (line 194) | func mtuTimeoutGeo() *ipgeo.IPGeoData { FILE: trace/mtu/metadata_test.go function TestEnrichHopMetadataGeoSuccess (line 12) | func TestEnrichHopMetadataGeoSuccess(t *testing.T) { function TestEnrichHopMetadataDisableGeoIPReturnsNoGeo (line 34) | func TestEnrichHopMetadataDisableGeoIPReturnsNoGeo(t *testing.T) { function TestEnrichHopMetadataRDNSOnly (line 48) | func TestEnrichHopMetadataRDNSOnly(t *testing.T) { function TestEnrichHopMetadataRDNSOnlyWithoutAlwaysWaitStillSetsHostname (line 69) | func TestEnrichHopMetadataRDNSOnlyWithoutAlwaysWaitStillSetsHostname(t *... function TestEnrichHopMetadataAlwaysWaitRDNSWaitsForPTR (line 89) | func TestEnrichHopMetadataAlwaysWaitRDNSWaitsForPTR(t *testing.T) { function TestEnrichHopMetadataGeoTimeout (line 119) | func TestEnrichHopMetadataGeoTimeout(t *testing.T) { function TestEnrichHopMetadataCancelStopsWaitingForPTR (line 135) | func TestEnrichHopMetadataCancelStopsWaitingForPTR(t *testing.T) { FILE: trace/mtu/runner.go type prober (line 12) | type prober interface type probePlan (line 17) | type probePlan struct type localMTUError (line 24) | type localMTUError struct method Error (line 28) | func (e *localMTUError) Error() string { function Run (line 38) | func Run(ctx context.Context, cfg Config) (*Result, error) { function RunStream (line 42) | func RunStream(ctx context.Context, cfg Config, sink StreamSink) (*Resul... function runWithProber (line 55) | func runWithProber(ctx context.Context, cfg Config, p prober) (*Result, ... function runStreamWithProber (line 59) | func runStreamWithProber(ctx context.Context, cfg Config, p prober, sink... function normalizeConfig (line 171) | func normalizeConfig(cfg Config) (Config, error) { method ipVersion (line 205) | func (cfg Config) ipVersion() int { function initialPathMTU (line 215) | func initialPathMTU(cfg Config) int { function initialProbeMTU (line 225) | func initialProbeMTU(ipVersion int) int { function payloadSizeForMTU (line 232) | func payloadSizeForMTU(pathMTU, ipVersion int) int { function minProbeMTU (line 243) | func minProbeMTU(ipVersion int) int { function nextLocalProbeMTU (line 250) | func nextLocalProbeMTU(currentProbeMTU, reportedMTU, ipVersion int) (int... function candidatePathMTU (line 262) | func candidatePathMTU(current, discovered int) int { function buildHop (line 272) | func buildHop(cfg Config, ttl int, resp probeResponse) Hop { function sleepContext (line 287) | func sleepContext(ctx context.Context, d time.Duration) error { function emitStreamEvent (line 298) | func emitStreamEvent(sink StreamSink, kind StreamEventKind, res *Result,... FILE: trace/mtu/runner_test.go type scriptedStep (line 13) | type scriptedStep struct type scriptedProber (line 18) | type scriptedProber struct method Probe (line 23) | func (p *scriptedProber) Probe(_ context.Context, plan probePlan) (pro... method Close (line 33) | func (p *scriptedProber) Close() error { return nil } function TestRunWithProberShrinksPMTUAndRetriesSameTTL (line 35) | func TestRunWithProberShrinksPMTUAndRetriesSameTTL(t *testing.T) { function TestRunWithProberKeepsLocalPMTUOffHopOutput (line 81) | func TestRunWithProberKeepsLocalPMTUOffHopOutput(t *testing.T) { function TestRunWithProberAnnotatesFirstHopWithLocalStartMTU (line 116) | func TestRunWithProberAnnotatesFirstHopWithLocalStartMTU(t *testing.T) { function TestRunWithProberAnnotatesFirstHopWithStartMTUWithoutLocalEvent (line 148) | func TestRunWithProberAnnotatesFirstHopWithStartMTUWithoutLocalEvent(t *... function TestRunWithProberStopsTTLAfterFirstNonTimeout (line 179) | func TestRunWithProberStopsTTLAfterFirstNonTimeout(t *testing.T) { function TestRunWithProberWritesTimeoutAfterExhaustingQueries (line 210) | func TestRunWithProberWritesTimeoutAfterExhaustingQueries(t *testing.T) { function TestRunWithProberTimeoutHopDoesNotExposeLocalPMTU (line 242) | func TestRunWithProberTimeoutHopDoesNotExposeLocalPMTU(t *testing.T) { function TestNormalizeConfigRejectsSourceDestinationFamilyMismatch (line 274) | func TestNormalizeConfigRejectsSourceDestinationFamilyMismatch(t *testin... function TestRunWithProberFallbackShrinksAfterRepeatedLocalMTUErrors (line 286) | func TestRunWithProberFallbackShrinksAfterRepeatedLocalMTUErrors(t *test... function TestRunStreamWithProberEmitsOrderedEvents (line 334) | func TestRunStreamWithProberEmitsOrderedEvents(t *testing.T) { function TestRunStreamWithProberEmitsTimeoutFinalEvent (line 396) | func TestRunStreamWithProberEmitsTimeoutFinalEvent(t *testing.T) { function TestRunStreamWithProberEmitsGeoUpdateBeforeFinal (line 434) | func TestRunStreamWithProberEmitsGeoUpdateBeforeFinal(t *testing.T) { function TestCandidatePathMTUNeverIncreases (line 492) | func TestCandidatePathMTUNeverIncreases(t *testing.T) { FILE: trace/mtu/socket_prober.go type socketProber (line 16) | type socketProber struct method Close (line 72) | func (p *socketProber) Close() error { method Probe (line 85) | func (p *socketProber) Probe(ctx context.Context, plan probePlan) (pro... method send (line 120) | func (p *socketProber) send(ttl int, payload []byte, dstPort int) error { method readICMPResponseFromSocket (line 177) | func (p *socketProber) readICMPResponseFromSocket(ctx context.Context,... function newSocketProber (line 30) | func newSocketProber(cfg Config) (*socketProber, error) { function probeDstPort (line 137) | func probeDstPort(base int, token uint32) int { function buildWinDivertMTUFilter (line 152) | func buildWinDivertMTUFilter(ipVersion int, srcIP net.IP) string { type icmpResponseCapture (line 165) | type icmpResponseCapture interface function deadlineFromStart (line 169) | func deadlineFromStart(ctx context.Context, start time.Time, timeout tim... FILE: trace/mtu/socket_prober_read_default.go method beginICMPResponseCapture (line 10) | func (p *socketProber) beginICMPResponseCapture(context.Context, time.Ti... method readICMPResponse (line 14) | func (p *socketProber) readICMPResponse(ctx context.Context, _ icmpRespo... FILE: trace/mtu/socket_prober_read_windows.go type winDivertCapture (line 16) | type winDivertCapture struct method Close (line 25) | func (c *winDivertCapture) Close() error { method beginICMPResponseCapture (line 39) | func (p *socketProber) beginICMPResponseCapture(ctx context.Context, _ t... method readICMPResponse (line 63) | func (p *socketProber) readICMPResponse(ctx context.Context, capture icm... method readICMPResponseViaWinDivert (line 70) | func (p *socketProber) readICMPResponseViaWinDivert(ctx context.Context,... function winDivertMTUFilter (line 111) | func winDivertMTUFilter(ipVersion int, localAddr net.Addr) string { function extractWinDivertICMPMessage (line 115) | func extractWinDivertICMPMessage(ipVersion int, raw []byte) (net.IP, []b... FILE: trace/mtu/socket_prober_test.go function TestProbeDstPortHandlesZeroToken (line 8) | func TestProbeDstPortHandlesZeroToken(t *testing.T) { function TestBuildWinDivertMTUFilter (line 14) | func TestBuildWinDivertMTUFilter(t *testing.T) { FILE: trace/mtu/socketopts_darwin.go function configurePMTUSocket (line 12) | func configurePMTUSocket(conn *net.UDPConn, ipVersion int) error { function socketPathMTU (line 30) | func socketPathMTU(_ *net.UDPConn, _ int) int { function isSendSizeErr (line 34) | func isSendSizeErr(err error) bool { function isRecvSizeErr (line 38) | func isRecvSizeErr(err error) bool { FILE: trace/mtu/socketopts_linux.go function configurePMTUSocket (line 12) | func configurePMTUSocket(conn *net.UDPConn, ipVersion int) error { function socketPathMTU (line 30) | func socketPathMTU(conn *net.UDPConn, ipVersion int) int { function isSendSizeErr (line 46) | func isSendSizeErr(err error) bool { function isRecvSizeErr (line 50) | func isRecvSizeErr(err error) bool { FILE: trace/mtu/socketopts_stub.go function configurePMTUSocket (line 7) | func configurePMTUSocket(_ *net.UDPConn, _ int) error { function socketPathMTU (line 11) | func socketPathMTU(_ *net.UDPConn, _ int) int { function isSendSizeErr (line 15) | func isSendSizeErr(_ error) bool { function isRecvSizeErr (line 19) | func isRecvSizeErr(_ error) bool { FILE: trace/mtu/socketopts_windows.go constant ipDontFragment (line 14) | ipDontFragment = 14 constant ipv6DontFrag (line 15) | ipv6DontFrag = 14 function configurePMTUSocket (line 18) | func configurePMTUSocket(conn *net.UDPConn, ipVersion int) error { function socketPathMTU (line 52) | func socketPathMTU(conn *net.UDPConn, _ int) int { function isSendSizeErr (line 63) | func isSendSizeErr(err error) bool { function isRecvSizeErr (line 67) | func isRecvSizeErr(err error) bool { FILE: trace/mtu/types.go type Event (line 10) | type Event constant EventTimeExceeded (line 13) | EventTimeExceeded Event = "time_exceeded" constant EventPacketTooBig (line 14) | EventPacketTooBig Event = "packet_too_big" constant EventFragNeeded (line 15) | EventFragNeeded Event = "frag_needed" constant EventDestination (line 16) | EventDestination Event = "destination" constant EventTimeout (line 17) | EventTimeout Event = "timeout" type StreamEventKind (line 20) | type StreamEventKind constant StreamEventTTLStart (line 23) | StreamEventTTLStart StreamEventKind = "ttl_start" constant StreamEventTTLUpdate (line 24) | StreamEventTTLUpdate StreamEventKind = "ttl_update" constant StreamEventTTLFinal (line 25) | StreamEventTTLFinal StreamEventKind = "ttl_final" constant StreamEventDone (line 26) | StreamEventDone StreamEventKind = "done" type Config (line 29) | type Config struct type Hop (line 47) | type Hop struct type Result (line 57) | type Result struct type StreamEvent (line 68) | type StreamEvent struct type StreamSink (line 81) | type StreamSink FILE: trace/packet_size.go constant ipv4HeaderBytes (line 12) | ipv4HeaderBytes = 20 constant ipv6HeaderBytes (line 13) | ipv6HeaderBytes = 40 constant icmpHeaderBytes (line 14) | icmpHeaderBytes = 8 constant udpHeaderBytes (line 15) | udpHeaderBytes = 8 constant tcpProbeHeaderBytes (line 16) | tcpProbeHeaderBytes = 24 constant udpV6MinPayload (line 17) | udpV6MinPayload = 2 type PacketSizeSpec (line 20) | type PacketSizeSpec struct function DefaultPacketSize (line 25) | func DefaultPacketSize(method Method, dstIP net.IP) int { function packetSizeIPHeaderBytes (line 29) | func packetSizeIPHeaderBytes(dstIP net.IP) int { function packetSizeProtocolHeaderBytes (line 36) | func packetSizeProtocolHeaderBytes(method Method) int { function packetSizeMinPayload (line 47) | func packetSizeMinPayload(method Method, dstIP net.IP) int { function MinPacketSize (line 54) | func MinPacketSize(method Method, dstIP net.IP) int { function NormalizePacketSize (line 58) | func NormalizePacketSize(method Method, dstIP net.IP, packetSize int) (P... function resolveProbePayloadSize (line 81) | func resolveProbePayloadSize(method Method, dstIP net.IP, maxPayloadSize... function packetSizeFamilyLabel (line 89) | func packetSizeFamilyLabel(dstIP net.IP) string { function FormatPacketSizeLabel (line 96) | func FormatPacketSizeLabel(packetSize int) string { FILE: trace/packet_size_test.go function TestNormalizePacketSize (line 8) | func TestNormalizePacketSize(t *testing.T) { function TestNormalizePacketSizeRejectsTooSmallValues (line 41) | func TestNormalizePacketSizeRejectsTooSmallValues(t *testing.T) { function TestMinPacketSize (line 65) | func TestMinPacketSize(t *testing.T) { function TestDefaultPacketSizeMatchesMinimum (line 86) | func TestDefaultPacketSizeMatchesMinimum(t *testing.T) { FILE: trace/quic.go function GenerateQuicPayloadWithRandomIds (line 12) | func GenerateQuicPayloadWithRandomIds() []byte { FILE: trace/tcp_ipv4.go type TCPTracer (line 23) | type TCPTracer struct method waitAllReady (line 39) | func (t *TCPTracer) waitAllReady(ctx context.Context) { method ttlComp (line 57) | func (t *TCPTracer) ttlComp(ttl int) bool { method PrintFunc (line 64) | func (t *TCPTracer) PrintFunc(ctx context.Context, cancel context.Canc... method launchTTL (line 97) | func (t *TCPTracer) launchTTL(ctx context.Context, s *internal.TCPSpec... method markPending (line 125) | func (t *TCPTracer) markPending(seq int) { method clearPending (line 131) | func (t *TCPTracer) clearPending(seq int) bool { method storeSent (line 139) | func (t *TCPTracer) storeSent(seq, srcPort, payloadSize int, start tim... method lookupSent (line 145) | func (t *TCPTracer) lookupSent(seq int) (srcPort int, start time.Time,... method lookupSentByAck (line 155) | func (t *TCPTracer) lookupSentByAck(srcPort, ack int) (seq int, start ... method dropSent (line 161) | func (t *TCPTracer) dropSent(seq int) { method addHopWithIndex (line 167) | func (t *TCPTracer) addHopWithIndex(peer net.Addr, ttl, i int, rtt tim... method matchWorker (line 194) | func (t *TCPTracer) matchWorker(ctx context.Context) { method Execute (line 250) | func (t *TCPTracer) Execute() (res *Result, err error) { method handleICMPMessage (line 372) | func (t *TCPTracer) handleICMPMessage(msg internal.ReceivedMessage, fi... method send (line 404) | func (t *TCPTracer) send(ctx context.Context, s *internal.TCPSpec, ttl... FILE: trace/tcp_ipv6.go type TCPTracerIPv6 (line 23) | type TCPTracerIPv6 struct method waitAllReady (line 39) | func (t *TCPTracerIPv6) waitAllReady(ctx context.Context) { method ttlComp (line 57) | func (t *TCPTracerIPv6) ttlComp(ttl int) bool { method PrintFunc (line 64) | func (t *TCPTracerIPv6) PrintFunc(ctx context.Context, cancel context.... method launchTTL (line 97) | func (t *TCPTracerIPv6) launchTTL(ctx context.Context, s *internal.TCP... method markPending (line 125) | func (t *TCPTracerIPv6) markPending(seq int) { method clearPending (line 131) | func (t *TCPTracerIPv6) clearPending(seq int) bool { method storeSent (line 139) | func (t *TCPTracerIPv6) storeSent(seq, srcPort, payloadSize int, start... method lookupSent (line 145) | func (t *TCPTracerIPv6) lookupSent(seq int) (srcPort int, start time.T... method lookupSentByAck (line 155) | func (t *TCPTracerIPv6) lookupSentByAck(srcPort, ack int) (seq int, st... method dropSent (line 161) | func (t *TCPTracerIPv6) dropSent(seq int) { method addHopWithIndex (line 167) | func (t *TCPTracerIPv6) addHopWithIndex(peer net.Addr, ttl, i int, rtt... method matchWorker (line 194) | func (t *TCPTracerIPv6) matchWorker(ctx context.Context) { method Execute (line 250) | func (t *TCPTracerIPv6) Execute() (res *Result, err error) { method handleICMPMessage (line 372) | func (t *TCPTracerIPv6) handleICMPMessage(msg internal.ReceivedMessage... method send (line 404) | func (t *TCPTracerIPv6) send(ctx context.Context, s *internal.TCPSpec,... FILE: trace/tcp_match.go function tcpReplyAckForProbe (line 5) | func tcpReplyAckForProbe(seq int, payloadSize int) int { function lookupTCPSentByAck (line 9) | func lookupTCPSentByAck(sentAt map[int]sentInfo, srcPort, ack int) (seq ... FILE: trace/tcp_match_test.go function TestLookupTCPSentByAck (line 8) | func TestLookupTCPSentByAck(t *testing.T) { FILE: trace/temp_printer.go function HopPrinter (line 10) | func HopPrinter(h Hop) { function formatIpGeoData (line 30) | func formatIpGeoData(ip string, data *ipgeo.IPGeoData) string { FILE: trace/trace.go type Config (line 33) | type Config struct type Method (line 65) | type Method constant ICMPTrace (line 68) | ICMPTrace Method = "icmp" constant UDPTrace (line 69) | UDPTrace Method = "udp" constant TCPTrace (line 70) | TCPTrace Method = "tcp" type attemptKey (line 73) | type attemptKey struct type attemptPort (line 78) | type attemptPort struct type sentInfo (line 83) | type sentInfo struct type matchTask (line 91) | type matchTask struct type Tracer (line 100) | type Tracer interface function applyTracerouteDefaults (line 104) | func applyTracerouteDefaults(config *Config) { function waitForTraceDelay (line 119) | func waitForTraceDelay(ctx context.Context, d time.Duration) bool { function stopAndDrainTimer (line 139) | func stopAndDrainTimer(timer *time.Timer) { function acquireTraceSemaphore (line 152) | func acquireTraceSemaphore(ctx context.Context, sem *semaphore.Weighted)... function normalizeICMPMode (line 165) | func normalizeICMPMode(config *Config) { function deriveMaxAttempts (line 179) | func deriveMaxAttempts(config *Config) { function selectTracer (line 201) | func selectTracer(method Method, config Config) (Tracer, error) { function waitForPendingGeoData (line 224) | func waitForPendingGeoData(ctx context.Context, result *Result) { function ctxDoneChan (line 243) | func ctxDoneChan(ctx context.Context) <-chan struct{} { function Traceroute (line 250) | func Traceroute(method Method, config Config) (*Result, error) { function TracerouteWithContext (line 269) | func TracerouteWithContext(ctx context.Context, method Method, config Co... function normalizeRuntimeConfig (line 277) | func normalizeRuntimeConfig(config *Config) { type Result (line 286) | type Result struct method add (line 344) | func (s *Result) add(hop Hop, attemptIdx, numMeasurements, maxAttempts... method setGeoWait (line 389) | func (s *Result) setGeoWait(numMeasurements int) { method reduce (line 393) | func (s *Result) reduce(final int) { method updateHop (line 453) | func (s *Result) updateHop(ttl, idx int, updated Hop) { method waitGeo (line 477) | func (s *Result) waitGeo(ctx context.Context, ttlIdx int) { method hasPendingGeo (line 507) | func (s *Result) hasPendingGeo(ttlIdx int) bool { method markPendingGeoTimeout (line 526) | func (s *Result) markPendingGeoTimeout(ttlIdx int) { method markAllPendingGeoTimeout (line 543) | func (s *Result) markAllPendingGeoTimeout() { method addWithGeoAsync (line 558) | func (s *Result) addWithGeoAsync(hop Hop, attemptIdx, numMeasurements,... constant PendingGeoSource (line 296) | PendingGeoSource = "pending" constant timeoutGeoSource (line 297) | timeoutGeoSource = "timeout" function isPendingGeo (line 299) | func isPendingGeo(geo *ipgeo.IPGeoData) bool { function pendingGeo (line 303) | func pendingGeo() *ipgeo.IPGeoData { function timeoutGeo (line 307) | func timeoutGeo() *ipgeo.IPGeoData { function geoWaitForMeasurements (line 315) | func geoWaitForMeasurements(numMeasurements int) time.Duration { function isValidHop (line 336) | func isValidHop(h Hop) bool { type Hop (line 402) | type Hop struct method resolveDN42Metadata (line 671) | func (h *Hop) resolveDN42Metadata(c Config, ipStr string) error { method startGeoLookup (line 692) | func (h *Hop) startGeoLookup(c Config, ipStr string) <-chan error { method waitForGeoAndPTR (line 716) | func (h *Hop) waitForGeoAndPTR(c Config, ipGeoCh <-chan error, rDNSSta... method fetchIPData (line 756) | func (h *Hop) fetchIPData(c Config) error { function isLDHASCII (line 414) | func isLDHASCII(label string) bool { function CanonicalHostname (line 428) | func CanonicalHostname(s string) string { function geoLookupMaxRetries (line 583) | func geoLookupMaxRetries(numMeasurements int) int { function geoTimeoutForAttempt (line 594) | func geoTimeoutForAttempt(attempt int) time.Duration { function lookupGeoWithRetry (line 602) | func lookupGeoWithRetry(c Config, cacheKey, query string, dn42 bool) (*i... function lookupPTR (line 643) | func lookupPTR(ctx context.Context, ipStr string) []string { function applyPTRResult (line 654) | func applyPTRResult(h *Hop, ptrs []string) { function startPTRLookup (line 660) | func startPTRLookup(ctx context.Context, ipStr string) <-chan []string { function parse (line 772) | func parse(s string, bitSize int) (uint64, bool) { function findValid (line 784) | func findValid(hexStr string) string { function extractMPLS (line 815) | func extractMPLS(msg internal.ReceivedMessage, disableMPLS bool) []string { FILE: trace/trace_runtime_test.go function TestWaitForTraceDelayCanceledContextReturnsImmediately (line 14) | func TestWaitForTraceDelayCanceledContextReturnsImmediately(t *testing.T) { function TestWaitForTraceDelayZeroDelaySucceeds (line 27) | func TestWaitForTraceDelayZeroDelaySucceeds(t *testing.T) { function TestAcquireTraceSemaphoreChecksCanceledContextFirst (line 33) | func TestAcquireTraceSemaphoreChecksCanceledContextFirst(t *testing.T) { function TestWaitForPendingGeoDataReturnsOnCanceledContext (line 58) | func TestWaitForPendingGeoDataReturnsOnCanceledContext(t *testing.T) { function TestWaitForPendingGeoDataReturnsImmediatelyForCompletedWorkers (line 92) | func TestWaitForPendingGeoDataReturnsImmediatelyForCompletedWorkers(t *t... FILE: trace/udp_ipv4.go type UDPTracer (line 23) | type UDPTracer struct method waitAllReady (line 42) | func (t *UDPTracer) waitAllReady(ctx context.Context) { method ttlComp (line 62) | func (t *UDPTracer) ttlComp(ttl int) bool { method PrintFunc (line 69) | func (t *UDPTracer) PrintFunc(ctx context.Context, cancel context.Canc... method launchTTL (line 102) | func (t *UDPTracer) launchTTL(ctx context.Context, s *internal.UDPSpec... method tryMatchTTLPort (line 130) | func (t *UDPTracer) tryMatchTTLPort(ttl, srcPort int) (int, bool) { method enqueueTTLPort (line 145) | func (t *UDPTracer) enqueueTTLPort(ttl, i, srcPort int) { method markPending (line 152) | func (t *UDPTracer) markPending(ttl, i int) { method clearPending (line 159) | func (t *UDPTracer) clearPending(ttl, i int) bool { method storeSent (line 168) | func (t *UDPTracer) storeSent(seq, ttl, i, srcPort int, start time.Tim... method lookupSent (line 178) | func (t *UDPTracer) lookupSent(seq int) (ttl, i, srcPort int, start ti... method dropSent (line 188) | func (t *UDPTracer) dropSent(seq int) { method dropByAttempt (line 194) | func (t *UDPTracer) dropByAttempt(ttl, i int) { method addHopWithIndex (line 205) | func (t *UDPTracer) addHopWithIndex(peer net.Addr, ttl, i int, rtt tim... method matchWorker (line 232) | func (t *UDPTracer) matchWorker(ctx context.Context) { method Execute (line 284) | func (t *UDPTracer) Execute() (res *Result, err error) { method handleICMPMessage (line 409) | func (t *UDPTracer) handleICMPMessage(msg internal.ReceivedMessage, fi... method acquireSendPermit (line 450) | func (t *UDPTracer) acquireSendPermit(ctx context.Context, ttl int) (f... method resolveSourcePort (line 469) | func (t *UDPTracer) resolveSourcePort() int { method buildUDPPacket (line 477) | func (t *UDPTracer) buildUDPPacket(ttl, i, srcPort int) (int, *layers.... method startSendTimeout (line 496) | func (t *UDPTracer) startSendTimeout(ctx context.Context, ttl, i, seq ... method prepareDarwinSend (line 529) | func (t *UDPTracer) prepareDarwinSend(ttl, i, srcPort int) { method finalizeSent (line 535) | func (t *UDPTracer) finalizeSent(seq, srcPort int, start time.Time) { method send (line 541) | func (t *UDPTracer) send(ctx context.Context, s *internal.UDPSpec, ttl... function randomPayload (line 441) | func randomPayload(size int, offset int) []byte { FILE: trace/udp_ipv6.go type UDPTracerIPv6 (line 23) | type UDPTracerIPv6 struct method waitAllReady (line 39) | func (t *UDPTracerIPv6) waitAllReady(ctx context.Context) { method ttlComp (line 57) | func (t *UDPTracerIPv6) ttlComp(ttl int) bool { method PrintFunc (line 64) | func (t *UDPTracerIPv6) PrintFunc(ctx context.Context, cancel context.... method launchTTL (line 97) | func (t *UDPTracerIPv6) launchTTL(ctx context.Context, s *internal.UDP... method markPending (line 125) | func (t *UDPTracerIPv6) markPending(seq int) { method clearPending (line 131) | func (t *UDPTracerIPv6) clearPending(seq int) bool { method storeSent (line 139) | func (t *UDPTracerIPv6) storeSent(seq, srcPort int, start time.Time) { method lookupSent (line 145) | func (t *UDPTracerIPv6) lookupSent(seq int) (srcPort int, start time.T... method dropSent (line 155) | func (t *UDPTracerIPv6) dropSent(seq int) { method addHopWithIndex (line 161) | func (t *UDPTracerIPv6) addHopWithIndex(peer net.Addr, ttl, i int, rtt... method matchWorker (line 188) | func (t *UDPTracerIPv6) matchWorker(ctx context.Context) { method Execute (line 238) | func (t *UDPTracerIPv6) Execute() (res *Result, err error) { method handleICMPMessage (line 345) | func (t *UDPTracerIPv6) handleICMPMessage(msg internal.ReceivedMessage... method send (line 377) | func (t *UDPTracerIPv6) send(ctx context.Context, s *internal.UDPSpec,... FILE: tracelog/log.go function formatTraceLogWhois (line 18) | func formatTraceLogWhois(whois string) string { function traceLogLocationLine (line 29) | func traceLogLocationLine(hop *trace.Hop, ip string) string { function traceLogTimingLine (line 40) | func traceLogTimingLine(values []string) string { function OpenFile (line 44) | func OpenFile(path string) (*os.File, error) { function WriteHeader (line 48) | func WriteHeader(w io.Writer, header string) error { function renderTraceLogLine (line 56) | func renderTraceLogLine(res *trace.Result, ttl int, group hoprender.Grou... function WriteRealtime (line 88) | func WriteRealtime(w io.Writer, res *trace.Result, ttl int) error { function NewRealtimePrinter (line 108) | func NewRealtimePrinter(w io.Writer) func(res *trace.Result, ttl int) { function RealtimePrinter (line 114) | func RealtimePrinter(res *trace.Result, ttl int) { FILE: tracelog/log_test.go function testTraceLogResult (line 17) | func testTraceLogResult() *trace.Result { function TestWriteHeader (line 37) | func TestWriteHeader(t *testing.T) { function TestWriteRealtimeUsesProvidedWriter (line 47) | func TestWriteRealtimeUsesProvidedWriter(t *testing.T) { function TestNewRealtimePrinterWrapsWriter (line 60) | func TestNewRealtimePrinterWrapsWriter(t *testing.T) { function captureStdIO (line 69) | func captureStdIO(t *testing.T, fn func()) (string, string) { function TestDefaultPathUsesTempDir (line 106) | func TestDefaultPathUsesTempDir(t *testing.T) { function TestRealtimePrinterFallsBackToStdoutWhenOpenFails (line 113) | func TestRealtimePrinterFallsBackToStdoutWhenOpenFails(t *testing.T) { FILE: tracemap/tracemap.go function GetMapUrl (line 23) | func GetMapUrl(r string) (string, error) { function GetMapUrlWithContext (line 27) | func GetMapUrlWithContext(ctx context.Context, r string) (string, error) { function newTraceMapHTTPClient (line 85) | func newTraceMapHTTPClient(host string) *http.Client { function PrintMapUrl (line 96) | func PrintMapUrl(r string) { FILE: tracemap/tracemap_test.go type blockingRoundTripper (line 13) | type blockingRoundTripper struct method RoundTrip (line 15) | func (blockingRoundTripper) RoundTrip(req *http.Request) (*http.Respon... function TestGetMapUrlWithContextReturnsCanceled (line 20) | func TestGetMapUrlWithContextReturnsCanceled(t *testing.T) { FILE: util/common.go function Dnspod (line 5) | func Dnspod() *net.Resolver { function Aliyun (line 9) | func Aliyun() *net.Resolver { function DNSSB (line 13) | func DNSSB() *net.Resolver { function Cloudflare (line 17) | func Cloudflare() *net.Resolver { function Google (line 21) | func Google() *net.Resolver { FILE: util/dns_resolver.go function setGeoResolverOverride (line 36) | func setGeoResolverOverride(resolver *net.Resolver) { function getGeoResolverOverride (line 42) | func getGeoResolverOverride() *net.Resolver { function SetGeoDNSResolver (line 50) | func SetGeoDNSResolver(dotServer string) { function SetGeoDNSFallback (line 57) | func SetGeoDNSFallback(enabled bool) { function WithGeoDNSResolver (line 65) | func WithGeoDNSResolver[T any](dotServer string, callback func() (T, err... function releaseGeoDNSResolverScope (line 97) | func releaseGeoDNSResolverScope() { function getGeoDNSConfig (line 122) | func getGeoDNSConfig() (dotServer string, fallback bool) { function ResolverForDot (line 130) | func ResolverForDot(dotServer string) *net.Resolver { function LookupHostForGeo (line 153) | func LookupHostForGeo(ctx context.Context, host string) ([]net.IP, error) { function resolveHost (line 189) | func resolveHost(ctx context.Context, r *net.Resolver, host string) ([]n... FILE: util/dns_resolver_test.go function TestResolverMapping (line 12) | func TestResolverMapping(t *testing.T) { function TestLookupHostForGeo_IPLiteral (line 34) | func TestLookupHostForGeo_IPLiteral(t *testing.T) { function TestLookupHostForGeo_DoTSuccess (line 54) | func TestLookupHostForGeo_DoTSuccess(t *testing.T) { function TestLookupHostForGeo_NoDotFallsToSystem (line 77) | func TestLookupHostForGeo_NoDotFallsToSystem(t *testing.T) { function TestLookupHostForGeo_DoTFailFallback (line 100) | func TestLookupHostForGeo_DoTFailFallback(t *testing.T) { function TestLookupHostForGeo_DoTFailNoFallback (line 133) | func TestLookupHostForGeo_DoTFailNoFallback(t *testing.T) { function TestGeoDNSConfig_ConcurrentAccess (line 160) | func TestGeoDNSConfig_ConcurrentAccess(t *testing.T) { function TestWithGeoDNSResolver_RestoresPreviousConfig (line 176) | func TestWithGeoDNSResolver_RestoresPreviousConfig(t *testing.T) { function TestWithGeoDNSResolver_AllowsNestedSameResolver (line 209) | func TestWithGeoDNSResolver_AllowsNestedSameResolver(t *testing.T) { FILE: util/dot.go function newDoTResolver (line 10) | func newDoTResolver(serverName string, addrs string) *net.Resolver { FILE: util/env.go constant EnvAllowCrossOriginKey (line 27) | EnvAllowCrossOriginKey = "NEXTTRACE_ALLOW_CROSS_ORIGIN" function GetEnvTrimmed (line 29) | func GetEnvTrimmed(key string) (string, bool) { function GetEnvBool (line 41) | func GetEnvBool(key string, def bool) bool { function GetEnvDefault (line 55) | func GetEnvDefault(key string, def string) string { function GetEnvInt (line 62) | func GetEnvInt(key string, def int) int { function AllowCrossOriginBrowserAccess (line 73) | func AllowCrossOriginBrowserAccess() bool { FILE: util/env_test.go function TestGetEnvTrimmed (line 9) | func TestGetEnvTrimmed(t *testing.T) { function TestGetEnvBool (line 20) | func TestGetEnvBool(t *testing.T) { function TestGetEnvDefault (line 31) | func TestGetEnvDefault(t *testing.T) { function TestGetEnvInt (line 38) | func TestGetEnvInt(t *testing.T) { function TestAllowCrossOriginBrowserAccess (line 48) | func TestAllowCrossOriginBrowserAccess(t *testing.T) { FILE: util/frag.go type IPv4Fragment (line 10) | type IPv4Fragment struct function getNamedDeviceMTU (line 15) | func getNamedDeviceMTU(srcDev string) (int, bool) { function addressIP (line 25) | func addressIP(addr net.Addr) net.IP { function matchInterfaceIP (line 36) | func matchInterfaceIP(candidate, target net.IP, isIPv6 bool) bool { function GetMTUByIPForDevice (line 49) | func GetMTUByIPForDevice(srcIP net.IP, srcDev string) int { function GetMTUByIP (line 78) | func GetMTUByIP(srcIP net.IP) int { function IPv4Fragmentize (line 83) | func IPv4Fragmentize(base *ipv4.Header, body []byte, mtu int) ([]IPv4Fra... FILE: util/http_client_geo.go function NewGeoHTTPClient (line 15) | func NewGeoHTTPClient(timeout time.Duration) *http.Client { FILE: util/http_client_geo_test.go function TestNewGeoHTTPClient_ReturnsValidClient (line 9) | func TestNewGeoHTTPClient_ReturnsValidClient(t *testing.T) { function TestNewGeoHTTPClient_HasCustomTransport (line 19) | func TestNewGeoHTTPClient_HasCustomTransport(t *testing.T) { function TestNewGeoHTTPClient_DifferentTimeouts (line 30) | func TestNewGeoHTTPClient_DifferentTimeouts(t *testing.T) { FILE: util/latency.go type ResponseInfo (line 18) | type ResponseInfo struct type FastIPMeta (line 36) | type FastIPMeta struct function GetFastIP (line 49) | func GetFastIP(domain string, port string, enableOutput bool) string { function GetFastIPCache (line 58) | func GetFastIPCache() string { function GetFastIPMetaCache (line 64) | func GetFastIPMetaCache() FastIPMeta { function SetFastIPCacheState (line 70) | func SetFastIPCacheState(ip string, meta FastIPMeta) { function GetFastIPWithContext (line 77) | func GetFastIPWithContext(ctx context.Context, domain string, port strin... function defaultFastIPCandidates (line 150) | func defaultFastIPCandidates() []net.IP { function defaultFastIP (line 157) | func defaultFastIP() string { function checkLatencyWithContext (line 161) | func checkLatencyWithContext(ctx context.Context, domain string, ip stri... FILE: util/latency_test.go function TestGetFastIPWithContextReturnsCanceled (line 11) | func TestGetFastIPWithContextReturnsCanceled(t *testing.T) { FILE: util/pcap.go function ipKey (line 17) | func ipKey(ip net.IP) string { function PcapDeviceByIP (line 25) | func PcapDeviceByIP(srcip net.IP) (string, error) { function OpenLiveImmediate (line 70) | func OpenLiveImmediate(dev string, snaplen int, promisc bool, bufferSize... FILE: util/privilege_stub.go function HasAdminPrivileges (line 5) | func HasAdminPrivileges() bool { FILE: util/privilege_windows.go function HasAdminPrivileges (line 12) | func HasAdminPrivileges() bool { FILE: util/trace.go function GetIPHeaderLength (line 8) | func GetIPHeaderLength(data []byte) (int, error) { function extractIPv4Payload (line 27) | func extractIPv4Payload(data []byte, hdrLen int) ([]byte, error) { function nextIPv6PayloadOffset (line 34) | func nextIPv6PayloadOffset(data []byte, offset int, next byte) (int, byt... function extractIPv6Payload (line 68) | func extractIPv6Payload(data []byte, hdrLen int) ([]byte, error) { function GetICMPResponsePayload (line 91) | func GetICMPResponsePayload(data []byte) ([]byte, error) { function GetICMPID (line 110) | func GetICMPID(data []byte) (int, error) { function GetICMPSeq (line 118) | func GetICMPSeq(data []byte) (int, error) { function GetTCPPorts (line 126) | func GetTCPPorts(data []byte) (int, int, error) { function GetTCPSeq (line 135) | func GetTCPSeq(data []byte) (int, error) { function GetUDPPorts (line 143) | func GetUDPPorts(data []byte) (int, int, error) { function GetUDPSeq (line 152) | func GetUDPSeq(data []byte) (int, error) { function GetUDPSeqv6 (line 167) | func GetUDPSeqv6(data []byte) (int, error) { FILE: util/trace_privilege.go type TracePrivilegeCheck (line 3) | type TracePrivilegeCheck struct FILE: util/trace_privilege_darwin.go function TracePrivilegeStatus (line 6) | func TracePrivilegeStatus(string, bool) TracePrivilegeCheck { FILE: util/trace_privilege_linux.go function TracePrivilegeStatus (line 12) | func TracePrivilegeStatus(appBinName string, _ bool) TracePrivilegeCheck { FILE: util/trace_privilege_stub.go function TracePrivilegeStatus (line 5) | func TracePrivilegeStatus(string, bool) TracePrivilegeCheck { FILE: util/trace_privilege_windows.go function TracePrivilegeStatus (line 5) | func TracePrivilegeStatus(_ string, requireWindowsAdmin bool) TracePrivi... FILE: util/trace_test.go function TestGetIPHeaderLength_IPv4_MinIHL (line 13) | func TestGetIPHeaderLength_IPv4_MinIHL(t *testing.T) { function TestGetIPHeaderLength_IPv4_WithOptions (line 21) | func TestGetIPHeaderLength_IPv4_WithOptions(t *testing.T) { function TestGetIPHeaderLength_IPv4_InvalidIHL (line 29) | func TestGetIPHeaderLength_IPv4_InvalidIHL(t *testing.T) { function TestGetIPHeaderLength_IPv6 (line 37) | func TestGetIPHeaderLength_IPv6(t *testing.T) { function TestGetIPHeaderLength_UnknownVersion (line 44) | func TestGetIPHeaderLength_UnknownVersion(t *testing.T) { function TestGetIPHeaderLength_Empty (line 51) | func TestGetIPHeaderLength_Empty(t *testing.T) { function TestGetICMPID_Valid (line 58) | func TestGetICMPID_Valid(t *testing.T) { function TestGetICMPID_TooShort (line 67) | func TestGetICMPID_TooShort(t *testing.T) { function TestGetICMPSeq_Valid (line 73) | func TestGetICMPSeq_Valid(t *testing.T) { function TestGetICMPSeq_TooShort (line 81) | func TestGetICMPSeq_TooShort(t *testing.T) { function TestGetTCPPorts_Valid (line 89) | func TestGetTCPPorts_Valid(t *testing.T) { function TestGetTCPPorts_TooShort (line 99) | func TestGetTCPPorts_TooShort(t *testing.T) { function TestGetTCPSeq_Valid (line 105) | func TestGetTCPSeq_Valid(t *testing.T) { function TestGetTCPSeq_TooShort (line 113) | func TestGetTCPSeq_TooShort(t *testing.T) { function TestGetUDPPorts_Valid (line 121) | func TestGetUDPPorts_Valid(t *testing.T) { function TestGetUDPPorts_TooShort (line 131) | func TestGetUDPPorts_TooShort(t *testing.T) { function TestGetUDPSeq_Valid (line 137) | func TestGetUDPSeq_Valid(t *testing.T) { function TestGetUDPSeq_TooShort (line 147) | func TestGetUDPSeq_TooShort(t *testing.T) { function TestGetUDPSeqv6_Valid (line 152) | func TestGetUDPSeqv6_Valid(t *testing.T) { function TestGetUDPSeqv6_TooShort (line 160) | func TestGetUDPSeqv6_TooShort(t *testing.T) { function TestGetICMPResponsePayload_IPv4_Simple (line 168) | func TestGetICMPResponsePayload_IPv4_Simple(t *testing.T) { function TestGetICMPResponsePayload_IPv6_NoExtHeaders (line 181) | func TestGetICMPResponsePayload_IPv6_NoExtHeaders(t *testing.T) { function TestGetICMPResponsePayload_IPv6_WithHopByHopHeader (line 195) | func TestGetICMPResponsePayload_IPv6_WithHopByHopHeader(t *testing.T) { function TestGetICMPResponsePayload_Empty (line 211) | func TestGetICMPResponsePayload_Empty(t *testing.T) { FILE: util/udp.go function newUDPResolver (line 7) | func newUDPResolver() *net.Resolver { FILE: util/util.go constant dnsLookupTimeout (line 33) | dnsLookupTimeout = 5 * time.Second type addrLookupResolver (line 35) | type addrLookupResolver interface function IsIPv6 (line 44) | func IsIPv6(ip net.IP) bool { function AddrIP (line 50) | func AddrIP(a net.Addr) net.IP { function RandomPortEnabled (line 63) | func RandomPortEnabled() bool { function LookupAddr (line 67) | func LookupAddr(addr string) ([]string, error) { function LookupAddrWithContext (line 71) | func LookupAddrWithContext(ctx context.Context, addr string) ([]string, ... function getLocalIPPort (line 107) | func getLocalIPPort(dstIP net.IP, srcIP net.IP, proto string) (net.IP, i... function getLocalIPPortv6 (line 162) | func getLocalIPPortv6(dstIP net.IP, srcIP net.IP, proto string) (net.IP,... function LocalIPPort (line 210) | func LocalIPPort(dstIP net.IP, srcIP net.IP, proto string) (net.IP, int) { function LocalIPPortv6 (line 228) | func LocalIPPortv6(dstIP net.IP, srcIP net.IP, proto string) (net.IP, in... type hostLookupResolver (line 245) | type hostLookupResolver interface type resolvedIPPrompt (line 249) | type resolvedIPPrompt function resolverFactory (line 251) | func resolverFactory(dotServer string) hostLookupResolver { function lookupIPs (line 268) | func lookupIPs(ctx context.Context, resolver hostLookupResolver, host st... function filterByFamily (line 283) | func filterByFamily(ips []net.IP, ipVersion string) []net.IP { function resolveFamilyLabel (line 301) | func resolveFamilyLabel(ipVersion string) string { function promptResolvedIPChoice (line 314) | func promptResolvedIPChoice(ips []net.IP) (int, error) { function selectResolvedIP (line 332) | func selectResolvedIP(ips []net.IP, disableOutput bool, prompt resolvedI... function DomainLookUp (line 353) | func DomainLookUp(host string, ipVersion string, dotServer string, disab... function DomainLookUpWithContext (line 357) | func DomainLookUpWithContext(ctx context.Context, host string, ipVersion... function GetHostAndPort (line 382) | func GetHostAndPort() (host string, port string) { function GetProxy (line 408) | func GetProxy() *url.URL { function GetPowProvider (line 420) | func GetPowProvider() string { function StringInSlice (line 433) | func StringInSlice(val string, list []string) bool { function HideIPPart (line 442) | func HideIPPart(ip string) string { function fold16 (line 457) | func fold16(sum uint32) uint16 { function addBytes (line 467) | func addBytes(sum uint32, data []byte) uint32 { function UDPBaseSum (line 482) | func UDPBaseSum(srcIP, dstIP net.IP, srcPort, dstPort, udpLen int, paylo... function FudgeWordForSeq (line 514) | func FudgeWordForSeq(S0, targetChecksum uint16) uint16 { function MakePayloadWithTargetChecksum (line 522) | func MakePayloadWithTargetChecksum(payload []byte, srcIP, dstIP net.IP, ... FILE: util/util_test.go function TestIsIPv6_True (line 17) | func TestIsIPv6_True(t *testing.T) { function TestIsIPv6_False (line 23) | func TestIsIPv6_False(t *testing.T) { function TestAddrIP_IPAddr (line 31) | func TestAddrIP_IPAddr(t *testing.T) { function TestAddrIP_TCPAddr (line 37) | func TestAddrIP_TCPAddr(t *testing.T) { function TestAddrIP_UDPAddr (line 43) | func TestAddrIP_UDPAddr(t *testing.T) { function TestAddrIP_UnixAddr (line 49) | func TestAddrIP_UnixAddr(t *testing.T) { function TestAddrIP_Nil (line 54) | func TestAddrIP_Nil(t *testing.T) { function TestStringInSlice_Found (line 61) | func TestStringInSlice_Found(t *testing.T) { function TestStringInSlice_NotFound (line 65) | func TestStringInSlice_NotFound(t *testing.T) { function TestStringInSlice_EmptySlice (line 69) | func TestStringInSlice_EmptySlice(t *testing.T) { function TestHideIPPart_IPv4 (line 75) | func TestHideIPPart_IPv4(t *testing.T) { function TestHideIPPart_IPv6 (line 79) | func TestHideIPPart_IPv6(t *testing.T) { function TestHideIPPart_Invalid (line 84) | func TestHideIPPart_Invalid(t *testing.T) { function TestUDPBaseSum_IPv4_KnownValue (line 90) | func TestUDPBaseSum_IPv4_KnownValue(t *testing.T) { function TestUDPBaseSum_IPv6_NonZero (line 100) | func TestUDPBaseSum_IPv6_NonZero(t *testing.T) { function TestFudgeWordForSeq_RoundTrip (line 111) | func TestFudgeWordForSeq_RoundTrip(t *testing.T) { function TestMakePayloadWithTargetChecksum_RoundTrip (line 128) | func TestMakePayloadWithTargetChecksum_RoundTrip(t *testing.T) { function TestMakePayloadWithTargetChecksum_TooShort (line 144) | func TestMakePayloadWithTargetChecksum_TooShort(t *testing.T) { function TestMakePayloadWithTargetChecksum_VersionMismatch (line 153) | func TestMakePayloadWithTargetChecksum_VersionMismatch(t *testing.T) { type fakeHostLookupResolver (line 162) | type fakeHostLookupResolver struct method LookupHost (line 167) | func (f fakeHostLookupResolver) LookupHost(context.Context, string) ([... type fakeHostLookupResolverWithContext (line 174) | type fakeHostLookupResolverWithContext struct method LookupHost (line 178) | func (f fakeHostLookupResolverWithContext) LookupHost(ctx context.Cont... type fakeAddrLookupResolver (line 182) | type fakeAddrLookupResolver struct method LookupAddr (line 186) | func (f fakeAddrLookupResolver) LookupAddr(ctx context.Context, addr s... function TestLookupIPs_SkipsInvalidValues (line 190) | func TestLookupIPs_SkipsInvalidValues(t *testing.T) { function TestLookupIPs_ReturnsWrappedError (line 200) | func TestLookupIPs_ReturnsWrappedError(t *testing.T) { function TestDomainLookUpWithContextReturnsContextCanceled (line 206) | func TestDomainLookUpWithContextReturnsContextCanceled(t *testing.T) { function TestLookupAddrWithContextUsesCache (line 232) | func TestLookupAddrWithContextUsesCache(t *testing.T) { function TestLookupAddrWithContextStoresResultInCache (line 250) | func TestLookupAddrWithContextStoresResultInCache(t *testing.T) { function TestLookupAddrWithContextReturnsContextCanceled (line 270) | func TestLookupAddrWithContextReturnsContextCanceled(t *testing.T) { function TestFilterByFamily_PicksFirstMatchingAddress (line 295) | func TestFilterByFamily_PicksFirstMatchingAddress(t *testing.T) { function TestSelectResolvedIP_PromptErrorFallsBackToFirst (line 306) | func TestSelectResolvedIP_PromptErrorFallsBackToFirst(t *testing.T) { function TestSelectResolvedIP_InvalidIndex (line 315) | func TestSelectResolvedIP_InvalidIndex(t *testing.T) { function TestResolveFamilyLabel (line 324) | func TestResolveFamilyLabel(t *testing.T) { function TestGetPowProvider_Default (line 332) | func TestGetPowProvider_Default(t *testing.T) { function TestGetPowProvider_Sakura (line 342) | func TestGetPowProvider_Sakura(t *testing.T) { FILE: wshandle/client.go function formatHostPort (line 23) | func formatHostPort(addr, port string) string { type wsWriteJob (line 32) | type wsWriteJob struct constant wsClientWriteQueueSize (line 38) | wsClientWriteQueueSize = 1024 constant wsClientWriteTimeout (line 39) | wsClientWriteTimeout = 5 * time.Second constant wsClientDialTimeout (line 40) | wsClientDialTimeout = 5 * time.Second type WsConn (line 43) | type WsConn struct method getConn (line 64) | func (c *WsConn) getConn() *websocket.Conn { method setConn (line 70) | func (c *WsConn) setConn(conn *websocket.Conn) { method getDoneChan (line 76) | func (c *WsConn) getDoneChan() chan struct{} { method setDoneChan (line 82) | func (c *WsConn) setDoneChan(done chan struct{}) { method initWriteLoop (line 90) | func (c *WsConn) initWriteLoop() { method writeLoop (line 97) | func (c *WsConn) writeLoop() { method enqueueWrite (line 122) | func (c *WsConn) enqueueWrite(job wsWriteJob) error { method startLoop (line 196) | func (c *WsConn) startLoop(fn func()) { method isClosed (line 204) | func (c *WsConn) isClosed() bool { method closeConn (line 226) | func (c *WsConn) closeConn() { method replaceConn (line 235) | func (c *WsConn) replaceConn(conn *websocket.Conn) { method Close (line 245) | func (c *WsConn) Close() { method setConnectionState (line 268) | func (c *WsConn) setConnectionState(connected, connecting bool) { method setConnected (line 275) | func (c *WsConn) setConnected(v bool) { method setConnecting (line 281) | func (c *WsConn) setConnecting(v bool) { method IsConnected (line 287) | func (c *WsConn) IsConnected() bool { method IsConnecting (line 293) | func (c *WsConn) IsConnecting() bool { method startReconnecting (line 299) | func (c *WsConn) startReconnecting() bool { method keepAlive (line 312) | func (c *WsConn) keepAlive() { method messageReceiveHandler (line 341) | func (c *WsConn) messageReceiveHandler() { method trySendReceiveMessage (line 385) | func (c *WsConn) trySendReceiveMessage(msg string) { method waitForNextDoneChan (line 394) | func (c *WsConn) waitForNextDoneChan(doneCh chan struct{}) chan struct... method sendQueuedMessage (line 408) | func (c *WsConn) sendQueuedMessage(msg string) { method handleInterrupt (line 424) | func (c *WsConn) handleInterrupt(doneCh chan struct{}) { method messageSendHandler (line 436) | func (c *WsConn) messageSendHandler() { method recreateWsConn (line 460) | func (c *WsConn) recreateWsConn() { function newWsConn (line 154) | func newWsConn(conn *websocket.Conn, interrupt chan os.Signal) *WsConn { function normalizeContext (line 167) | func normalizeContext(ctx context.Context) context.Context { function deriveOperationContext (line 174) | func deriveOperationContext(parent context.Context, stopCh <-chan struct... function closeSignalChan (line 216) | func closeSignalChan(ch chan struct{}) { function apiServerErrorMessage (line 381) | func apiServerErrorMessage(ip string) string { function createWsConn (line 553) | func createWsConn(ctx context.Context) *WsConn { function NewWithContext (line 649) | func NewWithContext(ctx context.Context) *WsConn { function New (line 669) | func New() *WsConn { function GetWsConn (line 673) | func GetWsConn() *WsConn { FILE: wshandle/client_test.go function newStartedTestWsConn (line 13) | func newStartedTestWsConn() *WsConn { function saveAndRestoreGlobalWsConn (line 22) | func saveAndRestoreGlobalWsConn(t *testing.T) { function TestWsConnCloseStopsBackgroundLoops (line 40) | func TestWsConnCloseStopsBackgroundLoops(t *testing.T) { function TestNewClosesPreviousGlobalWsConn (line 60) | func TestNewClosesPreviousGlobalWsConn(t *testing.T) { function TestGetWsConnDoesNotBlockWhileNewClosesPreviousConn (line 93) | func TestGetWsConnDoesNotBlockWhileNewClosesPreviousConn(t *testing.T) { function TestSendQueuedMessageDoesNotBlockWhenDisconnectedAndReceiveQueueIsUnavailable (line 154) | func TestSendQueuedMessageDoesNotBlockWhenDisconnectedAndReceiveQueueIsU... function TestSendQueuedMessageDoesNotBlockWhenEnqueueWriteFails (line 172) | func TestSendQueuedMessageDoesNotBlockWhenEnqueueWriteFails(t *testing.T) { function TestMessageReceiveHandlerCloseRaceDoesNotPanic (line 195) | func TestMessageReceiveHandlerCloseRaceDoesNotPanic(t *testing.T) { function TestCreateWsConnHonorsCanceledContextDuringFastIP (line 223) | func TestCreateWsConnHonorsCanceledContextDuringFastIP(t *testing.T) { function TestRecreateWsConnCloseCancelsFastIP (line 257) | func TestRecreateWsConnCloseCancelsFastIP(t *testing.T) {