Dear TAPS,
In the context of a recently started EU NGI Pointer project[1], we
are currently involved in engineering[2] an open source transport
services system in Go, with support for SCION[4], a
next-generation path-aware Internet architecture, enabling
multi-path communication at the inter-domain level.
Our system, called PANAPI[3] (Path-Aware Networking API), aims to
hide complex automated processes (such as protocol racing) behind
convenient high-level abstractions. In the backend, PANAPI
consists of a (Lua) scriptable framework to support practical path
selection in the context of the SCION architecture. (We also aim
to provide UDP, TCP/IP and QUIC support, but achieving full
RFC8923[5] compliance is only a secondary goal.)
To avoid re-inventing the wheel on the frontend-side, we have
chosen to adopt the abstractions laid out in the current TAPS
Interface draft[6]. Most of these could be easily mapped to our Go
implementation, but in a few cases we decided to depart from the
specification. We are unsure to what degree our decisions[7] are
in violation of the TAPS vision and would appreciate feedback,
especially from folks who have some familiarity with Go.
Note that this email is not intended to announce a fait
accompli. PANAPI is still under development and only partially
usable in its current state. The user-facing API[8] is about two
thirds done, and we would be glad to incorporate your feedback on
our implementation choices[7]. While Candidate Gathering and
Candidate Racing are still waiting to be implemented, the main
SCION-based, scriptable path-selection framework for the backend
is nearly complete. We would highly appreciate any kind of
contributions, even only informal feedback, also from non-Go
programmers.
Finally, we believe we have identified a few minor mistakes in the
Interface draft[6]. What is the proper process of discussing
these?
Kind regards and happy new year,
Thorben Krüger
Otto-von-Guericke University, Magdeburg
[1]: https://www.ngi.eu/funded_solution/ngi-pointer-project-33/
[2]: https://github.com/netsys-lab/panapi/tree/taps
[3]: https://dl.acm.org/doi/10.1145/3472727.3472808
[4]: https://scion-architecture.net/
[5]: https://www.rfc-editor.org/rfc/rfc8923.html
[6]:
https://www.ietf.org/archive/id/draft-ietf-taps-interface-13.html
[7]:
https://github.com/netsys-lab/panapi/blob/taps/doc/Implementation.md
[8]:
https://pkg.go.dev/github.com/netsys-lab/[email protected]/taps
PS: PANAPI receives official funding from NGI Pointer[1]
_______________________________________________
Taps mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/taps