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

Reply via email to