Skip to content
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

H3 SETTINGS frame parsing and setting issues #556

Open
gmarzot opened this issue Jan 31, 2025 · 2 comments
Open

H3 SETTINGS frame parsing and setting issues #556

gmarzot opened this issue Jan 31, 2025 · 2 comments

Comments

@gmarzot
Copy link

gmarzot commented Jan 31, 2025

it looks like the parsing of the SETTINGS frame needs update. the rfc references appear outdated.

class Setting(IntEnum):
    QPACK_MAX_TABLE_CAPACITY = 0x1
    MAX_FIELD_SECTION_SIZE = 0x6
    QPACK_BLOCKED_STREAMS = 0x7

    # https://datatracker.ietf.org/doc/html/rfc9220#section-5
    ENABLE_CONNECT_PROTOCOL = 0x8
    # https://datatracker.ietf.org/doc/html/rfc9297#section-5.1
    H3_DATAGRAM = 0x33
    # https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http2-02#section-10.1
    ENABLE_WEBTRANSPORT = 0x2B603742

    # Dummy setting to check it is correctly ignored by the peer.
    # https://datatracker.ietf.org/doc/html/rfc9114#section-7.2.4.1
    DUMMY = 0x21

also there is no way to override issued SETTINGS frame data. this should support override at H3Connection instantiation

In connection with moxygen/proxygen Meta server I see SETTING frame like this

2025-01-31 09:12:34.974 DEBUG: QUIC EVENT: stream 3 data: 0x0004260150000680020000074064080180ffd277014276013301ab6037420140dbc0000000faceb00c
2025-01-31 09:12:34.975 DEBUG: H3 Received Settings:
2025-01-31 09:12:34.975 DEBUG:   Setting 0x1 = 4096
2025-01-31 09:12:34.975 DEBUG:   Setting 0x6 = 131072
2025-01-31 09:12:34.975 DEBUG:   Setting 0x7 = 100
2025-01-31 09:12:34.975 DEBUG:   Setting 0x8 = 1
2025-01-31 09:12:34.975 DEBUG:   Setting 0xffd277 = 1
2025-01-31 09:12:34.975 DEBUG:   Setting 0x276 = 1
2025-01-31 09:12:34.975 DEBUG:   Setting 0x33 = 1
2025-01-31 09:12:34.975 DEBUG:   Setting 0x2b603742 = 1
2025-01-31 09:12:34.975 DEBUG:   Setting 0xdb = 4207849484

current proxygen settings

@gmarzot
Copy link
Author

gmarzot commented Jan 31, 2025

I also observe that version compliance with various draft-ietf-webtrans-http3 draft versions is confusing . For instance the ENABLE_WEBTRANSPORT setting is no longer defined in the latest version of the draft. I can not tell what the "correct" set is .

So perhaps this issue is only a feature request to allow initial settings to be provided to H3Connection to support custom SETTINGS contents.

@jlaine
Copy link
Contributor

jlaine commented Feb 2, 2025

Yeah this is annoying. I was hoping by now there would be an actual published RFC instead of this endless stream of drafts. I'll see if I can find time to read the updated drafts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants