Skip to content

Add QUIC draft-20 support#5594

Closed
maskit wants to merge 1380 commits intomasterfrom
quic-20
Closed

Add QUIC draft-20 support#5594
maskit wants to merge 1380 commits intomasterfrom
quic-20

Conversation

@maskit
Copy link
Copy Markdown
Member

@maskit maskit commented Jun 3, 2019

This adds QUIC (draft-20) support.

The QUIC module was tested with many client implementations on the last interop event, and no functional changes have not been made since the event. We continue the development on quit-latest branch and use this quic-20 branch for preparation for 9.0.

This PR will be merged to master after:

  • All depending PRs have been merged
  • Cleanup has been done (e.g. clang-tidy)

The action items are tracked on #5580.

maskit and others added 30 commits February 1, 2019 16:25
This removes tests for RetransmissionFrame
Below configs are added
- proxy.config.http3.header_table_size
- proxy.config.http3.max_header_list_size
- proxy.config.http3.qpack_blocked_streams
- proxy.config.http3.num_placeholders
@maskit maskit added the QUIC label Jun 3, 2019
@maskit maskit added this to the 9.0.0 milestone Jun 3, 2019
maskit added 15 commits June 17, 2019 10:49
* master: (54 commits)
  TextView: Fix bug in rtrim_if when entire view is cleared.
  Step 23: Renames Rollback object -> FileManager consistently
  Step 22: Renames Rollback.cc/.h -> ConfigManager.cc/.h
  Step 21: Removes the UNVERSIONED option flag completely
  Step 20: Removes incVersion/inc_version from Filemanager etc.
  Step 19: Removes the now unused Rollback member variables
  Step 18: Removes setLastModifiedTime, and simplifies code
  Step 17: Removes versionInfo, as well as currentVersion and highestSeen
  Step 16: Removes createPathStr() and cleans up statFile()
  Step 15: Removes getBaseName() and various unused members
  Step 14: Removes numberOfVersions() and getCurrentVersion()
  Step 13: Removes openFile() and closeFile()
  Step 12: Removes extractVersionInfo()
  Step 11: Removes statVersion()
  Step 10: Removes versionTimeStamp() and versionTimeStamp_ml()
  Step 9: Removes getVersion() and getVersion_ml()
  Step 8: Removes internalUpdate(), functionality was moved in 6
  Step 7: Removes updateVersion() and updateVersion_ml()
  Step 6: Simplifies checkForUserUpdate(), moving critical code here
  Step 5: Remove removeVersion() and removeVersion_ml()
  ...

 Conflicts:
	iocore/net/UnixNet.cc
	iocore/net/UnixUDPNet.cc
	iocore/net/libinknet_stub.cc
* master:
  Reenable redirect_actions Au test as it is working now.
  Fix the number of net_connections_currently_open_stat error increase
  Fix and reenable url_sig Au test.
  TS autest extension now auto selects both ssl and nonssl port
  cookie_remap plugin Au test case changes for compatability with PR 4964.
  Replaces Emergency() with Error() when parsing these records.config values
  use type info to assign an affinity thread
  HTTP/2: ignore unknown settings
  HTTP/2: cancel reading buffer when ATS received GOAWAY
  HTTP/2: increment write_vio.ndone by consumed size
  Cleanup debug log in mime_hdr_describe
  Fix default logging.yaml with new format.
  Update lua.en.rst
* master:
  Update MT_Hashtable interface to use smart pointer
  Allows for resizing librecords via command line option
  Program to test if multiple URLs can be cached and generates a report on the cache headers.
  Doc: Improve TSHttpTxnUrlEffectiveStringGet docs, cleanup other doc build errors.
  emergency shutdown
  update example directory structure and add examples for lua plugin
  Fix build error for pre openssl-1.1.1
  Use SSL_version() directly instead of SSL_get_version() which returns a string (Thanks @maskit for the pointer).
  Add metrics to track SSLv3 and TLS versions
  Auto port selection for more autests
(cherry picked from commit d034bd6)
* master:
  Combohandler: Set response as private if one of the origin responses is private
  Added end pointer to ink_atoi64 and used when parsing cache size
  Add ats_unique_buf
  Convert HdrHeap regression test into unit test using Catch
  This fixes issue #5642.  When the number of connections to a parent proxy exceeds proxy.config.http.per_server.connection.max a state machine loop will occur when using parent selection to select a parent for redundancy and/or load balancing.
  Fix options processing for ja3_fingerprint plugin

 Conflicts:
	proxy/hdrs/Makefile.am
(cherry picked from commit d88d887)
(cherry picked from commit 9629389)
(cherry picked from commit ec333e7)
* master:
  Log H2 errors with the codes
  Separate out common header compression logic to hdrs directory
  TSIOBufferReaderCopy: copy data from a reader to a fixed buffer.
  Remove unused header file ink_inout.h
  Remove unused LibBulkIO
  Reverse internal order of HPACK Dynamic Table Entries
  More Autest cleanup
* master: (46 commits)
  Add dest addr information to UDPPacket class
  Update UDPNet for QUIC
  Add HKDF wrapper
  Use un-deprecated records for SSL server verification
  Removes proxy.config.http.cache.allow_empty_doc
  Deprecate the mysql_remap plugin. See #5395
  Removes the stale_while_revalidate plugin. See #5395
  Removes the memcached_remap plugin. See #5395
  Removes the hipes plugin. See #5395
  Removes the header_normalize plugin. See #5395
  Removes the buffer_upload plugin. See #5395
  Removes the balancer plugin. See #5395
  Fixes spelling in lib/records
  Fixes memory leak in traffic_crashlog
  Promotes certifier to stable, see #5394
  Promotes remap_purge to stable, see #5394
  Promotes prefetch to stable, see #5394
  Promotes multiplexer to stable, see #5394
  Promotes cache_range_requests to stable, see #5394
  fix If-Match and If-Unmodified-Since priority problem,about rfc https://tools.ietf.org/html/rfc7232#section-3.3
  ...

 Conflicts:
	build/crypto.m4
	configure.ac
	include/tscore/HKDF.h
	iocore/net/P_UDPNet.h
	iocore/net/P_UnixNet.h
	iocore/net/UnixUDPNet.cc
	src/tscore/HKDF_boringssl.cc
	src/tscore/HKDF_openssl.cc
@maskit maskit marked this pull request as ready for review July 23, 2019 07:25
@maskit maskit mentioned this pull request Jul 23, 2019
12 tasks
@maskit
Copy link
Copy Markdown
Member Author

maskit commented Jul 23, 2019

It's ready!

I have no idea how I can squash the commits. git rebase -i master and marking commits with 's' doesn't seem to work to me because some merge commits (master -> quic-20) are on this branch.

Maybe GitHub's "Squash and merge" button is the easiest way to merge this as one commit.

@maskit maskit requested review from bryancall and zwoop July 23, 2019 07:55
@maskit
Copy link
Copy Markdown
Member Author

maskit commented Jul 30, 2019

I created another PR so that we can just push the merge button on GitHub.
#5753

@maskit maskit closed this Jul 30, 2019
@zwoop zwoop removed this from the 9.0.0 milestone Aug 27, 2019
@maskit maskit deleted the quic-20 branch April 16, 2021 01:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants