Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gotwamp
command
Command gotwamp is the command line client of gotwampd.
|
Command gotwamp is the command line client of gotwampd. |
|
gotwampd
command
Command gotwampd is the gotwamp daemon: a TWAMP (RFC 5357) sender and reflector serving a gRPC API on a Unix domain socket (SPEC §9).
|
Command gotwampd is the gotwamp daemon: a TWAMP (RFC 5357) sender and reflector serving a gRPC API on a Unix domain socket (SPEC §9). |
|
internal
|
|
|
buildinfo
Package buildinfo identifies the gotwamp binaries: the version and commit the linker sets (-X main.version, -X main.commit), completed from the module build information.
|
Package buildinfo identifies the gotwamp binaries: the version and commit the linker sets (-X main.version, -X main.commit), completed from the module build information. |
|
cli
Package cli implements the gotwamp command (SPEC §10): a thin gRPC client of gotwampd over its Unix domain socket, or over TCP with mutual TLS (--server, ADR 0010).
|
Package cli implements the gotwamp command (SPEC §10): a thin gRPC client of gotwampd over its Unix domain socket, or over TCP with mutual TLS (--server, ADR 0010). |
|
clock
Package clock monitors the synchronization state and the maximum error of the local clock (SPEC §8.3).
|
Package clock monitors the synchronization state and the maximum error of the local clock (SPEC §8.3). |
|
config
Package config reads, defaults and validates the gotwampd configuration file (SPEC §9.2, appendix A).
|
Package config reads, defaults and validates the gotwampd configuration file (SPEC §9.2, appendix A). |
|
control/client
Package client implements the TWAMP-Control Control-Client (RFC 5357 §3, SPEC §5.6) in the unauthenticated, authenticated, encrypted and mixed modes (RFC 4656 §3.1, RFC 5618).
|
Package client implements the TWAMP-Control Control-Client (RFC 5357 §3, SPEC §5.6) in the unauthenticated, authenticated, encrypted and mixed modes (RFC 4656 §3.1, RFC 5618). |
|
control/keystore
Package keystore holds the shared secrets of the authenticated, encrypted and mixed TWAMP modes: the passphrase of each identity, which the Control-Client names in the KeyID of Set-Up-Response (RFC 4656 §3.1).
|
Package keystore holds the shared secrets of the authenticated, encrypted and mixed TWAMP modes: the passphrase of each identity, which the Control-Client names in the KeyID of Set-Up-Response (RFC 4656 §3.1). |
|
control/server
Package server implements the TWAMP-Control Server (RFC 5357 §3, SPEC §5.7) in the unauthenticated, authenticated, encrypted and mixed modes (RFC 4656 §3.1, RFC 5618).
|
Package server implements the TWAMP-Control Server (RFC 5357 §3, SPEC §5.7) in the unauthenticated, authenticated, encrypted and mixed modes (RFC 4656 §3.1, RFC 5618). |
|
daemon
Package daemon wires gotwampd together (SPEC §4.1, §4.2, §9): from the configuration it starts the reflector role (Light reflector, TWAMP-Control server and Full reflector), the clock monitor, the monitoring sessions with their result store and exporters, and the gRPC API on a Unix domain socket.
|
Package daemon wires gotwampd together (SPEC §4.1, §4.2, §9): from the configuration it starts the reflector role (Light reflector, TWAMP-Control server and Full reflector), the clock monitor, the monitoring sessions with their result store and exporters, and the gRPC API on a Unix domain socket. |
|
export/jsonl
Package jsonl writes results as JSON Lines (SPEC §9.7): one record per line, written by one goroutine behind a buffered channel, with rotation by size and by day.
|
Package jsonl writes results as JSON Lines (SPEC §9.7): one record per line, written by one goroutine behind a buffered channel, with rotation by size and by day. |
|
export/prom
Package prom exports the results and the state of gotwampd as Prometheus metrics (SPEC §9.6), and serves /metrics and /healthz.
|
Package prom exports the results and the state of gotwampd as Prometheus metrics (SPEC §9.6), and serves /metrics and /healthz. |
|
reflector
Package reflector implements the Session-Reflector of gotwampd.
|
Package reflector implements the Session-Reflector of gotwampd. |
|
schedule
Package schedule runs the monitoring sessions of gotwampd (SPEC §9.3): one scheduler goroutine per session starts periodic runs, or keeps one continuous run going, and publishes the results to a store.ResultSink.
|
Package schedule runs the monitoring sessions of gotwampd (SPEC §9.3): one scheduler goroutine per session starts periodic runs, or keeps one continuous run going, and publishes the results to a store.ResultSink. |
|
sender
Package sender runs the TWAMP Session-Sender (RFC 5357 §4.1, SPEC §6.5): it sends test packets on an absolute schedule, matches the reflected packets, and streams per-packet results and run or window summaries.
|
Package sender runs the TWAMP Session-Sender (RFC 5357 §4.1, SPEC §6.5): it sends test packets on an absolute schedule, matches the reflected packets, and streams per-packet results and run or window summaries. |
|
stats
Package stats computes TWAMP measurement statistics from timestamped packet records: RTT, one-way delays, IPDV, PDV, loss, duplication and reordering (SPEC §7).
|
Package stats computes TWAMP measurement statistics from timestamped packet records: RTT, one-way delays, IPDV, PDV, loss, duplication and reordering (SPEC §7). |
|
store
Package store keeps the results of the monitoring sessions (SPEC §9.4): a ring buffer of run and window summaries per session, the per-packet records of the latest run, and subscriptions to new results.
|
Package store keeps the results of the monitoring sessions (SPEC §9.4): a ring buffer of run and window summaries per session, the per-packet records of the latest run, and subscriptions to new results. |
|
store/sqlite
Package sqlite is the persistent result store (SPEC §9.4, §13): the run and window summaries and the run errors of the monitoring sessions, in an SQLite database that survives a restart of gotwampd.
|
Package sqlite is the persistent result store (SPEC §9.4, §13): the run and window summaries and the run errors of the monitoring sessions, in an SQLite database that survives a restart of gotwampd. |
|
store/storetest
Package storetest is the contract every store.Store implementation meets: one table of cases that the tests of the in-memory store and of each persistent one run (SPEC §13).
|
Package storetest is the contract every store.Store implementation meets: one table of cases that the tests of the in-memory store and of each persistent one run (SPEC §13). |
|
testpki
Package testpki makes the certificates of mutual TLS tests: a self-signed CA, a server certificate for the loopback and client certificates, all written as PEM files readable by their owner only.
|
Package testpki makes the certificates of mutual TLS tests: a self-signed CA, a server certificate for the loopback and client certificates, all written as PEM files readable by their owner only. |
|
tstamp
Package tstamp is the UDP socket layer of TWAMP-Test: it sends and receives datagrams with the send and receive timestamps, the TTL / Hop Limit and the TOS / Traffic Class that the measurement needs (SPEC §6.1, §8).
|
Package tstamp is the UDP socket layer of TWAMP-Test: it sends and receives datagrams with the send and receive timestamps, the TTL / Hop Limit and the TOS / Traffic Class that the measurement needs (SPEC §6.1, §8). |
|
twamp/errest
Package errest implements the TWAMP Error Estimate (RFC 4656 §4.1.2, with the Z bit of RFC 8186 §2.3).
|
Package errest implements the TWAMP Error Estimate (RFC 4656 §4.1.2, with the Z bit of RFC 8186 §2.3). |
|
twamp/ntptime
Package ntptime converts between time.Time and the 64-bit NTP timestamp format used by TWAMP (RFC 5905 §6, RFC 4656 §4.1.2).
|
Package ntptime converts between time.Time and the 64-bit NTP timestamp format used by TWAMP (RFC 5905 §6, RFC 4656 §4.1.2). |
|
twamp/wire
Package wire encodes and decodes TWAMP messages (RFC 5357, RFC 4656) and holds the cryptography of the authenticated, encrypted and mixed modes (RFC 4656 §3.1–§4, RFC 5618).
|
Package wire encodes and decodes TWAMP messages (RFC 5357, RFC 4656) and holds the cryptography of the authenticated, encrypted and mixed modes (RFC 4656 §3.1–§4, RFC 5618). |
|
ulid
Package ulid makes the run IDs of gotwamp: ULIDs, 48 bits of Unix milliseconds and 80 random bits written as 26 Crockford base32 characters, which sort by the time they were made.
|
Package ulid makes the run IDs of gotwamp: ULIDs, 48 bits of Unix milliseconds and 80 random bits written as 26 Crockford base32 characters, which sort by the time they were made. |
|
test
|
|
|
component
Package component holds component tests that run gotwamp parts against each other across network namespaces joined by a veth pair, with tc netem injecting delay, loss, duplication and reordering (PLAN §7).
|
Package component holds component tests that run gotwamp parts against each other across network namespaces joined by a veth pair, with tc netem injecting delay, loss, duplication and reordering (PLAN §7). |
|
interop/perfsonar
Package perfsonar holds the interoperability tests between gotwamp and perfSONAR's twampd and twping (PLAN §8, cases I-01 to I-04).
|
Package perfsonar holds the interoperability tests between gotwamp and perfSONAR's twampd and twping (PLAN §8, cases I-01 to I-04). |
|
soak
Package soak holds the long-running test of the monitoring path (PLAN §6 M5, SPEC §12.1, §12.2): the scheduler, the sender, the result store and both exporters run N sessions at R packets per second against a TWAMP Light reflector on loopback, all in one process, while goroutines, heap, RSS, file descriptors and CPU are sampled.
|
Package soak holds the long-running test of the monitoring path (PLAN §6 M5, SPEC §12.1, §12.2): the scheduler, the sender, the result store and both exporters run N sessions at R packets per second against a TWAMP Light reflector on loopback, all in one process, while goroutines, heap, RSS, file descriptors and CPU are sampled. |
Click to show internal directories.
Click to hide internal directories.