# README
Lua Selector
- Follows
pan.Selector
interface - Has additional
SetPreferences
feature - Supports state querying and manipulation via
JSON()
callback
Lua API
Lua scripts needs to implement the following functions:
-- gets called when a set of paths to addr is known
function panapi.Initialize(prefs, laddr, raddr, ps)
function panapi.SetPreferences(prefs, laddr, raddr)
-- gets called for every packet
-- implementation needs to be efficient
function panapi.Path(laddr, raddr)
-- gets called whenever a path disappears
function panapi.PathDown(laddr, raddr, fp, pi)
function panapi.Refresh(laddr, raddr, ps)
function panapi.Close(laddr, raddr)
function panapi.Periodic(seconds)
Lua scripts can call the following functions from the panapi module:
panapi.Log(...)
panapi.Now()
Changelog
Version 0.1.2
- Fix more Data Races due to insufficient locking
Version 0.1.1
- Fix Data Race due to insufficient locking
Version 0.1.0
- Improved JSON-Lua interface
- Improved code documentation
Version 0.0.2
- Improvements to JSON robustness
Version 0.0.1
- JSON Interface to/from Lua working (via
JSON
callback) - First stabs at better documentation
TODO
QUIC Tracer
QUIC connection properties are available in the following functions:
function stats.UpdatedMetrics(laddr, raddr, rttStats, cwnd, bytesInFlight, packetsInFlight)
function stats.SentPacket(laddr, raddr, size)
function stats.TracerForConnection(id, p, odcid)
function stats.StartedConnection(laddr, raddr, srcid, dstid)
function stats.NegotiatedVersion(laddr, raddr)
function stats.ClosedConnection(laddr, raddr)
function stats.Close(laddr, raddr)
function stats.SentTransportParameters(laddr, raddr)
function stats.ReceivedTransportParameters(laddr, raddr)
function stats.RestoredTransportParameters(laddr, raddr)
function stats.ReceivedVersionNegotiationPacket(laddr, raddr)
function stats.ReceivedRetry(laddr, raddr)
function stats.ReceivedPacket(laddr, raddr)
function stats.BufferedPacket(laddr, raddr)
function stats.DroppedPacket(laddr, raddr)
function stats.AcknowledgedPacket(laddr, raddr)
function stats.LostPacket(laddr, raddr)
function stats.UpdatedCongestionState(laddr, raddr)
function stats.UpdatedPTOCount(laddr, raddr)
function stats.UpdatedKeyFromTLS(laddr, raddr)
function stats.UpdatedKey(laddr, raddr)
function stats.DroppedEncryptionLevel(laddr, raddr)
function stats.DroppedKey(laddr, raddr)
function stats.SetLossTimer(laddr, raddr)
function stats.LossTimerExpired(laddr, raddr)
function stats.LossTimerCanceled(laddr, raddr)
function stats.Debug(laddr, raddr)
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
Copyright 2021-2024 Thorben Krüger ([email protected])
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Copyright 2021-2024 Thorben Krüger ([email protected])
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
func RPCClientHelper() (selector extra.Selector, tracer logging.Tracer, err error) {.