-
Notifications
You must be signed in to change notification settings - Fork 47
pan: Roadmap #286
Copy link
Copy link
Open
Description
The goal is to eventually merge pan into scionproto/scion. However, the library is not yet production-ready. The following items need to be addressed before it is ready for wider use.
API Redesign
- Redesign API: State should be shared between connections without being global
- Possible solution:
Clientstruct encapsulating all shared state- See API discussion: pan: API design discussion #285
- Remove global singleton host context (hardcodes SCIOND connection)
- Remove global pathpool and stats singletons
- Make path pool configurable (currently no configuration options)
- Reduce long parameter lists via options pattern or shared client state
- Possible solution:
Type Cleanup
- Use original types: Use types from snet and other SCION components instead of redefining it
-
addr.IA - maybe
pan.Path-> snetpath.Path - possibly other types
-
PingingSelector Improvements
- API:
SetActive()must be called at the correct time - refactor to call automatically - Replace object-wide mutex with RWLock (currently locks for every packet sent)
- Fix reliability issues with proper testing
- Port internal ping package to use SCION CLI ping logic (currently copied from early SCION version)
Policy Improvements
- Fix "With" pattern: Calling
WithPolicy()multiple times only sets the last policy - should build chain policy automatically
Code Organization
- Restructure into subpackages: Currently ~6000 LOC in 34 files, all in root package
- Drop RAINS support: Not actively used, adds maintenance burden
Testing
- Add unit tests: Improve test coverage across the library
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels