-
Notifications
You must be signed in to change notification settings - Fork 35
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
extensions-negotiation
definition
#112
base: main
Are you sure you want to change the base?
Conversation
concept ack |
@Fi3 @TheBlueMatt @jakubtrnka this PR is ready for review |
@Fi3 just a reminder to approve this, as we agreed during yesterday's call |
| Field Name | Data Type | Description | | ||
|------------------------|--------------|-----------------------------------------------| | ||
| request_id | U16 | Unique identifier for pairing the response. | | ||
| unsupported_extensions | SEQ0_64K[U16]| List of unsupported extension identifiers. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add a field called requested_extension
with extension that server require but are not in RequestExtensions
from client.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you think extensions should be requested only by the client? Do you some tangible examples for the opposite case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a pool accept only client that have an extension for example I want the client to use a specific accounting or auditing system
| request_id | U16 | Unique identifier for pairing the response. | | ||
| supported_extensions | SEQ0_64K[U16]| List of supported extension identifiers. | | ||
|
||
### `RequestExtensions.Error` (Server -> Client) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if upstream returns RequestExtensionsError
? are they expected to drop the connection?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we don't need to drop the connection here. Client based on the server response can decide if:
- continue with extension requested by up and/or continue without ext not supported by up
- drop connection (if for example up do not support an ext that is mandatory for cli)
This PR defines extension n.1 which allows for any implementation to support future extensions in a clean and scalable way.
Close #111