Ludovic Orban
0ea4b3f7c4
implement adaptive execution strategy for simple requests
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
16a91b04a8
Issue #6728 - QUIC and HTTP/3
...
- Fixed configuration of QuicConnection.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
cd161b491e
Issue #6728 - QUIC and HTTP/3
...
- Implemented goAway mechanism.
- Implemented idle timeout mechanism.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
3c2feabaf6
Issue #6728 - QUIC and HTTP/3
...
- Implemented GOAWAY parsing/generation.
- Implemented handling of GOAWAY frames.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
f061cc41db
Issue #6728 - QUIC and HTTP/3
...
- Added more configuration properties.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
c8107539df
Issue #6728 - QUIC and HTTP/3
...
- Implemented stream idle timeouts.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
2b966c04ee
Issue #6728 - QUIC and HTTP/3
...
- Fixed module-info.java canonical ordering.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
06ffd014f9
Issue #6728 - QUIC and HTTP/3
...
- Implemented support for GREASE for unidirectional and bidirectional streams.
- Implemented UnknownBodyParser.
- Strengthened validation of frames in control and message streams.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
49dc5617ac
cleanup jna mappings
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
b93436d0e8
Issue #6728 - QUIC and HTTP/3
...
- Fixed charset encoding handling.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
dc889bd7d8
Issue #6728 - QUIC and HTTP/3
...
- Initial support for closing HTTP/3 sessions and session failure events.
- Enforced HTTP/3 frame sequence.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
b09191d2f8
Fix application protocol to make it work with utf8
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
2e98931654
Issue #6728 - QUIC and HTTP/3
...
- Fixed module-info.java for HTTP/3 modules.
- Updated package-info.java for QUIC.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
2d4cb5abbf
Issue #6728 - QUIC and HTTP/3
...
- Avoid sending the last=true flag as a separate QUIC frame.
Apparently Quiche has problem notifying this frame to the receiving peer.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
161f8e4f82
Upgrade to quiche 0.10.0
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
8b3ae8a661
Issue #6728 - QUIC and HTTP/3
...
- More javadocs.
- Fixed QuicSession.fill() to also flush() to send to the remote peer the information that the data has been consumed.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
43551487ee
Issue #6728 - QUIC and HTTP/3
...
- Implemented data support.
- Implemented trailer support.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
8bf9227db2
add low-level quiche tests
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
fcdabeb933
Issue #6728 - QUIC and HTTP/3
...
- Changed the parsers to emit during parsing, rather than returning the event.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
b42bfa214a
Issue #6728 - QUIC and HTTP/3
...
- Fixed handling of the last frame, exposing a new API in QuicStreamEndPoint.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
a092078668
replace synchronized keyword with AutoLock
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet
7cb32b2d98
Issue #6728 - QUIC and HTTP/3
...
- Changed HTTP/3 parsers to return the Frame rather than notifying a listener.
- Correctly linked encoder and decoder streams to respectively QpackEncoder and QpackDecoder.
- Fixed buffer release.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
59664ecaf6
fix IPv6
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
a7a44f0d67
rename methods to get congestion window capacity
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
c303af990a
add method to get congestion window capacity
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
b6470f3973
#6730 add support for windows x86_64 quiche 0.9.0 binary lib
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Lachlan Roberts
47030b0ce0
Fix licence header in quic StreamType
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
7c75e9c22f
Issue #6728 - QUIC and HTTP/3
...
- Restructured code
- Split implementation of control and message parsing/generation.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
7c09800fe1
Issue #6728 - QUIC and HTTP/3
...
- Continued implementation of HTTP/3 APIs, frames and parsing, client and server.
- Figured out creation of streams, to support special HTTP/3 streams.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
3cbbb47742
generify sockaddr and sockaddr_storage to simplify native mappings
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
29c8256b39
add IPv6 support
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
3d8433b58c
keep quiche version check out of if (debug enabled) branch
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban
280bb4c887
split linux and macos native structures to account for native differences
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Greg Wilkins
feb3a24f06
Added puml diagram
...
More execution strategy ideas
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
ab16e625e0
#6730 : fix ip encoding endianness + move timespec to ffi
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Lachlan Roberts
80d2cee238
Issue #6728 - Fixes for QPACK
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Greg Wilkins
0d2fe5657a
Added puml diagram
...
More execution strategy ideas
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-12-20 09:33:38 +01:00
Greg Wilkins
125a4e03b9
Added puml diagram
...
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
730ef449a0
Issue #6728 - QUIC and HTTP/3
...
- Started implementation of HTTP/3 APIs, frames and parsing.
- Started implementation of server-side HTTP/3.
- Reworked the threading model in QUIC to be more efficient and avoid contending on the QPACK encoder/decoder.
- Updated QPACK NBitLongEncoder to support QUIC stream IDs of type long.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban
4b6bcca529
get rid of promoteSession()
...
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00