-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adapt control plane API while implementing #4434 #4552
Comments
This proposal would cause the switch to connect to be a breaking change. If we are introducing a breaking change, I would rather change the API quite heavily to follow a REST like pattern with pagination, search queries and the whole shabam |
I assumed that this would be a breaking change anyway, because we are switching from HTTP/2 to HTTP/3? Iḿ probably missing something? I forgot to mention (I will add note) that this proposal is meant as a catch-all, so please add other improvements. |
Ah, I think the network stack can be changed separately from the request handler? That makes sense. |
Regarding a breaking change...Is there anything terribly wrong with introducing a new API alongside the old one to enable an incremental transition? That's pretty much standard practice in cases like that. |
@jiceatscion no there is nothing wrong with that. I don't think we should, because as you say, introducing a new API alongside is not an issue, and designing and implementing a new API is quite a bit of effort. There is no concrete proposal how the new API would even look right now. |
Hi, I'm the student currently working on the Scion for embedded systems project. Marc asked me to provide my experience / feedback on this topic.
Personally, I think this change makes a lot of sense. When I was first reading the An additional advantage of this change is that it eliminates the necessity for the end hosts to know all Core ASes to be able to split the requests. I'm looking at this now specifically from my project's perspective. I don't know how often the Core ASes could change but I imagine it would be quite difficult to provide new configuration files to every embedded system if it happens.
I also agree that this would be a very nice feature to have, especially with the memory constraints of embedded systems. I'm currently fearing a bit that I could run out of memory when building the paths in a larger topology. A REST like API as suggested by @oncilla would of course solve this problem as well. |
Hi @olibeck Thank you for your insight. This is a sidenote, but have you considered running a centralized daemon outside of your embedded hosts? |
Hi @oncilla Yes, I have thought about some kind of proxy but so far I'm hopeful that I will manage without one. I'm not too worried about the cryptographic operations (especially with the chip that I'm using for the project). It is mostly a concern that the SegmentResponse messages could become too large to handle in larger topologies. Pagination, like you suggested, would already solve this problem. |
I'm not really talking about a proxy. I literally mean binding the daemon service to a public IP rather than localhost and point your application to talk to a remote daemon, rather than localhost. (Note this is currently all possible already and only needs configuration) |
With proxy I meant a service which offers very similar functionality, a
I was not aware that it's already possible, that makes it actually a quite interesting approach. If you are interested in continuing our discussion, maybe we should move it somewhere else, I feel like it would be too much off-topic 😅 |
@olibeck Sure. Feel free to reach out on slack or email. |
As discussed in #4434, SCION will soon get a new control plane communication API.
We could use this opportunity to look at the current API and propose some changes.
If it is okay (and desirable), I will provide a proper proposal document once we determined what actually needs doing...? Please let me know if I should turn this into a document right away.
Clean up deprecated items
E.g. remove the following from the
SegmentResponse
definition inseg.proto
?Adjust the
SegmentResponse
definition inseg.proto
to
Rationale
Advantages
Potential future advantages
This may be facilitated by future extensions such as providing simple route policies (fewest-hops, best-bandwidth, lowest-latency, ...).
Disadvantages
IsCore
in helper.go).Also, any additional computational cost is also (marginally?) offset by having to handle only a single RPC request instead of having to handle up to three requests, and potentially having to send fewer network packets in the response.
Can someone provide a short explanation for the additional cost?
EDIT
Please fell free to suggest other (smallish) changes here! "Smallish" because currently the idea is that the changes can implemented without delaying #4434 too much.
The text was updated successfully, but these errors were encountered: