Skip to content

A RPC selector for the SCION PAN library, with a scriptable Lua backend

License

Notifications You must be signed in to change notification settings

netsys-lab/pan-lua

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

A RPC selector for the SCION PAN library, with a scriptable Lua backend

Resources

License

Stars

Watchers

Forks

Packages

No packages published