History log of /vpp/src/plugins/quic/quic.c
Revision Date Author Comments
# 92e13146 08-Apr-2020 Aloys Augustin <aloaugus@cisco.com>

quic: fix clean stream close

Properly close the stream sending side instead of resetting the entire
stream.

Change-Id: I2daca7e507daa7bf9cd6a27fa8828a9ea7d175f9
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 9f86d225 23-Mar-2020 Florin Coras <fcoras@cisco.com>

session tls: support tls descheduling

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ieb8bb9c6deb92479fdd3e045778fe5ae4782d1ea


# 00e01d3e 21-Oct-2019 Florin Coras <fcoras@cisco.com>

session: improve error reporting

Type: improvement

Change-Id: I9dd850a1ce85b0adb5136233f176117e0ee38817
Signed-off-by: Florin Coras <fcoras@cisco.com>


# d85666fd 03-Apr-2020 Florin Coras <fcoras@cisco.com>

session udp: fix transport flags and migration

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I840d43e79b1f826380bd56485441510e45bdfc7f


# 0a1e183e 29-Mar-2020 Florin Coras <fcoras@cisco.com>

session udp: support connect on listeners

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6aaaec20a2b6d4c6ddfbe659d9402acc1be2f7e2


# 87b7e3df 27-Mar-2020 Florin Coras <fcoras@cisco.com>

session udp: flag for connected udp

Type: improvement

This can be used as alternative to udpc

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic3f7efe6728b25d4a8a0b61ddb36de66b4672c4f


# ffdc72da 07-Feb-2020 MathiasRaoul <mathias.raoul@gmail.com>

quic: Check quicly version tag at compile time

- updates the quicly version to 0.1.0-vpp
- adds workaround for quicly_send()/assert_consistency() failure
Type: feature

Change-Id: I4c7e0ffc720ad9a685b89046a83646d59febd6cd
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 07063b8e 13-Mar-2020 Florin Coras <fcoras@cisco.com>

session: api to add new transport types

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If4dee6dba1ea942daa921d566b35cdecdda680ee


# 753b96f3 24-Mar-2020 MathiasRaoul <mathias.raoul@gmail.com>

quic: disable vnet_crypto and batching if no crypto engines are loaded

Type: fix

Change-Id: I95d3f8431b468cefc8777526dd3b988a299f0687
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# f22f4e56 20-Dec-2019 Florin Coras <fcoras@cisco.com>

svm: refactor fifo

Type: refactor

Switch from a wrapped byte space to a "continuous" one wherein fifo
chunks are appended to the fifo as more data is enqueued and chunks are
removed as data is dequeued.

The fifo is still subject to a maximum size, i.e., maximum number of
bytes that can be enqueued, so the max number of chunks associated to
the fifo is also constrained.

When enqueueing data, which must fit within the available free space, if
not enough "supporting" chunk memory is available, the fifo asks the
fifo segment for enough chunk memory to ensure that the write can
succeed. To avoid allocating large amounts of small chunks due to small
writes, if possible, the size of the chunks requested is lower capped by
min_alloc.

When dequeuing data, all the chunks that have been completely drained,
i.e., head moved beyond the chunks’ end bytes, are unlinked from the
fifo and returned to the fifo segment. The one exception to this is the
last chunk which is never unlinked.

Change-Id: I98c1dbd9135fb79650365c7e40c29238b96cd4ee
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 92de6b65 09-Jan-2020 MathiasRaoul <mathias.raoul@gmail.com>

quic: quicly crypto offloading

- Implement our own quic packet allocator to allocate more memory at the end of the
packet to store crypto offloading related data
- 1RTT packets offloading encryption/decryption using vnet crypto
- Add cli to change max packet per key

Type: feature

Change-Id: I7557fd457d7ba492329d5d8ed192509cbd727f9c
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# 62b1cea6 31-Jan-2020 MathiasRaoul <mathias.raoul@gmail.com>

quic: update quicly to v0.0.10-vpp

Type: feature

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: I5452f8bbd0ff9e2a57f7bd7d134a8824efa5f30a


# 7abab303 20-Dec-2019 Aloys Augustin <aloaugus@cisco.com>

quic: call quic_send_packets only once per ctx

This prevents unnecessary calls to quic_send_packets.

Type: fix
Change-Id: I7abe509aa8b7b9d5a01c9876046cf0f4507a79cf
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 95cd8643 31-Dec-2019 Florin Coras <fcoras@cisco.com>

session: fix listener global endpoint lookup

Type: fix

Ensure listeners for app transport protocols are added to lookup tables
using their session endpoints instead of their transport connections,
which can override the network connection id in the transport connection.

Change-Id: I56fa3666bb1422c0799fc7143cd099751ff6e2e6
Signed-off-by: Florin Coras <fcoras@cisco.com>


# cfffeae1 19-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix accept failure

Type: fix

Change-Id: Ic85cedae268a3abc452a2b1d4cc6672a464e2d2c
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# d9942bcc 18-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Hotfix crypto context on migrate

Type: fix

quicly_connections have internal references to crypto
contexts which need to be updated when we switch thread
as the supporting pools are thread-based.
This under the assumption that the new contexts will be
exactly identical

Change-Id: I38083e59657ff068e347d9e7b47abe91a1167b6c
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# d1b9e706 07-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Implement crypto contexts

Type: feature

Make quic use the crypto contexts. This introduces a crypto context
pool backed by a hashtable giving ctx indexes by connect params
(ckpair, engine, rx & tx fifo sizes).
Applications keep the initialization vector common.

Change-Id: I22ed6711196cd70a2f2f74240f12113c7af8dfcd
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# ecb9d18c 10-Dec-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: update quicly to v0.0.8-vpp

Type: feature

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: I7470d79d1e39716ff83ba2d2b320813d79e2554c


# c00f480b 03-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Add support for unidirectional streams

Type: feature

Change-Id: I3a642626a444504594c5e3df40dbc92df54136f0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 038c7e66 10-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Use per thread next_cid

Type: fix

Change-Id: Ia89427257b78f6f7ba62c9d1076bf0593ee2dca7
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# deaf97f4 10-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Add aggregated quicly stats

Type: feature

Change-Id: Ice8de7030a0330cfe77a58657701f0703e0695dd
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 1802fcc5 06-Dec-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: add more detailed statistics

Type: feature

Change-Id: I3df7b054ec08c7b307413d24468fc3df6a5aacc3
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# 05d7312e 27-Nov-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: removing quicly_send call from quic_accept_connection

Type: fix

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: I429b50b88c8e029b06854c7433d0bc77619e98a3


# c9cb8f6d 03-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix stream tx_fifo race condition

Type: fix

There is a race condition in when receiving TX from
a client application :
As egress_emit writes as much data as possible to
the stream, if during egress_emit the app writes
to the fifo, the data will be directly passed to
quicly. Then TX callback happens and triggers
a scheduler update telling quilcy the stream has
data to send. When the next egress_emit is called
and no more data has come, we have nothing to write,
we return len = 0 to quicly which breaks an assert if
a loss happens later on.

Change-Id: I47e00a14dfc9068b5dac7b5c090a89124aea004f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# d9577b4a 02-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: clean accept/connect error codepath

Type: fix

First attempt to clean the leftover state when
accept_notify / connect_notify fails due to mq
size constraints. vpp should now be left in a
state such that clean state will eventually be
reached when timers fire.

Change-Id: I9e1166dab2778bf05d5af42d437769651369cae0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# deb268fe 02-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: refactor connection search fn

Type: refactor

Change-Id: I55aace44773e4fab0470d27b14dd68544f7d99c5
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 2f566c23 02-Dec-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: add conn-timeout config option

Type: feature

Change-Id: Ia9cb57b9f7c2d14a137556d6918763f1cb11850d
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 65f6cfcd 27-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix import typo

Type: fix

Change-Id: Iab96ebc1579b0be5b711f975163f9ac96648d2ad
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# c298f376 12-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Refactor for crypto contexts

Type: refactor

Change-Id: I5ec7079d34826edd7a3048ae1d44037386f5d3ff
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# f9623ca2 21-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Refactor quic rx callback for offload

Type: refactor

Change-Id: I1d90c8807e7eea4a77403bafc0628ec0d393c572
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 7bd1fd77 20-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Remove qctx opening pool

Type: fix

We don't need the pool anymore as we store
the ctx index in the underlying UDP session opaque

Change-Id: Iec9be9c84a1f929d94b084176a143d304b0acb83
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 0b6c9c48 20-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Increase logging

Type: fix

Change-Id: I689649ad163e76fecdabe96a8c2be5be3068ffde
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 331c428a 19-Nov-2019 Dave Wallace <dwallacelf@gmail.com>

quic: handle duplicate packet from quicly

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ia4b1eb3c704374e27b260d88ae6ab628754468d3


# dcbbf283 06-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Add support for ckpair & crypto engine

quic choice used ckpair is now the one passed to
connect or listen via mq.
The crypto engine is chosen with the value passed to
connect or listen via mq:
* If NONE(0) is provided, we default to quic_main.
default_crypto_engine (picotls at init, can be changed
via debug cli : quic set crypto api [crypto engine])
* If PICTOLS/VPP is provided, use this one
* Other values return an error

Type: feature

Change-Id: Ifab893d6d03c83f202e6c7e7a9936f546a4b1530
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 7f39e91f 05-Nov-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: free qctx after udp cleanup

Type: fix

As udp_session.opaque is qctx index, qctx free
needs to happen after session cleanup. This patch
also introduces
* assert timer stop on ctx free
* debug cli for listing quic ctx

Change-Id: I3a58d226b094a0bbdf090b4f3eccbc2e11c6329b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 3a23f9e3 01-Nov-2019 Dave Wallace <dwallacelf@gmail.com>

quic: enhance error reporting

Type: refactor

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I710d00e4a6c4356d0f00f7592bf14b55596ec6ae


# 34d92ebd 30-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

quic: remove redundant function calls

- session_transport_delete_notify() is called before
and inside quic_connection_delete()

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I5c79a3269e36c4aab5aa99fdfdac06c1334f0f6f


# f9d784b6 30-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

quic: fifo size is u32

- Fix cli / config fifo size to only accept u32
size input.
- Make cli / config fifo-size input type handling
to be the same as vpp hoststack
- Update external transfer tests to use new
syntax with different fifo sizes for
vpp_echo client/server and vpp.

Type: fix

Change-Id: Ia5ddb2b8d3d9908ab502352819eebeec8ac0971d
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# ea7d4fe1 31-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

quic: fix wrong error checking

- Revert error checking to previous ASSERT

Type: fix
Fixes: 7c7fa9066

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I6d915d88bf932c74f9b866aec3bd1531e0cb47f4


# 7c7fa906 30-Oct-2019 Dave Wallace <dwallacelf@gmail.com>

quic: fix quicly fifo size mismatch

- This fixes an intermittent failure of the
test_quic_ext_transfer test due to quicly
being configured with the wrong fifo size
which was taken from the cli or startup.conf
file. The fifo size from the application
context is now used when creating the
quicly context.
- Emit an error message if the entire chunk
of a stream is not enqueued in the svm fifo.

Type: fix

Change-Id: I03847ea7d4cd7a617b577697dfe3afa969850937
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 82fc5fd4 13-Sep-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

hsa: use crypto_engine_type_t for TLS

Type: refactor

This patch does the following conversions
TLS_ENGINE_X -> CRYPTO_ENGINE_X
tls_engine_type_t -> crypto_engine_t
It does not change numbering of engines

Change-Id: I872dfaec3a6713bf4229c84d1ffd98b8b2419995
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 79f89537 13-Sep-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: Add certificate store

Type: feature

This changes the behavior of both API calls
APPLICATION_TLS_CERT_ADD & APPLICATION_TLS_KEY_ADD
certificates and keys aren't bound to an app, they are
passed to it via connect / listen using the message
queue.

This should be followed by a per protocol (QUIC/TLS)
crypto_context store to save devrived structs

Change-Id: I36873bc8b63b5c72776c69e8cd9febc9cae31882
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 8095b602 12-Sep-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

hsa: make vpp_echo use mq instead of bapi

Type: refactor

Change-Id: I4f370b09e22dbbc8920272df9a042dae04825bfc
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# caa7acf5 02-Oct-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: add is_migrating flag

Type: fix

Add SESSION_F_IS_MIGRATING flag for session. It is set by the session
layer before poking the transport for migration. It's the transport
responsibility to unset the flag & act apropriatly if RX happens on
a migrating session.

Change-Id: Ie722917f1cf9344d8f041cad4ed8b064fb5853b6
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# cc702410 07-Oct-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: fix wrong condition in update_fifo_size

Type: fix

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: If371cde9412be29634164830c58634da248ad0ae


# 1dc90824 01-Oct-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Refactor naming & clibs

Type: refactor

Change-Id: I067fc7dbcc0985277df01384d9dcdb0bdf62fba5
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 00078b99 04-Oct-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: make quic fifo size configurable via cli

Type: feature

Change-Id: I6d6ac649094ef4bee2aed311915dd58f11972e79
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# 72c159e6 02-Oct-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: update quicly to v0.0.5

-Update quicly patches
-Remove event logger (removed from quicly).
-Update quicly functions calls

Type: feature

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: I0355befeb5ce961928f17225c83890ba87cf6ebc


# dd4d8ac2 26-Sep-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: Create custom event logger

Type: feature

Change-Id: I20acfe6a53cf9f15e3e4b8847b6f76757962f1c7
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# ff1f6faa 26-Sep-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: Add Tx, Rx and packet drop counters

Type: feature

Change-Id: I25aeeed49fc569315296a73c5595c2e2e302434f
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# 922f0b21 26-Sep-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic: add cli command for stats

add command to display stats from quicly (rtt, packet loss)

Type: feature

Change-Id: Iaa18bc78fbf80a9367ef150a8cf4997a456c6b39
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# b28349e8 17-Sep-2019 MathiasRaoul <mathias.raoul@gmail.com>

quic : refactor function naming

- functions renaming to be consistent with the other plugin functions name
- removing useless logs

Type: style

Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: Iea212a799448975e01a92f16cc329de13907ff07
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>


# 6d6456ab 11-Sep-2019 Benoît Ganne <bganne@cisco.com>

quic: fix use-after-free

Type: fix

Change-Id: I5e5e37684e336ca992dae8ea1d39b1fb103802b1
Signed-off-by: Benoît Ganne <bganne@cisco.com>


# b840c773 10-Sep-2019 Benoît Ganne <bganne@cisco.com>

quic: fix non-null terminated hostname string

Type: fix

Change-Id: I089d359d5726050f32f69366547086216fdb3098
Signed-off-by: Benoît Ganne <bganne@cisco.com>


# ffbfe3a2 05-Sep-2019 Aloys Augustin <aloaugus@cisco.com>

quic: fix server opening stream immediately

Previously, if the first thing a server did was to open a stream and
send data, this could trigger a crash on the clilent side VPP as the
quic session wouldn't be allocated.

Change-Id: I43990ce2a71217d6719ecae4da60111d05fbcfc0
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# baf1c7cc 02-Sep-2019 Aloys Augustin <aloaugus@cisco.com>

quic: disable quic plugin by default

Change-Id: I8eb243e80ff043a23cb3efae186164dad6c11ca8
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 1682b51c 19-Aug-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix rx_callback refactoring

* check_quic_client_connected might allocate ctx
and invalidate our pointer

Type: fix

Change-Id: I885ca5a1a6db9a7765c9047a7df9cdf66c94f1cb
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# f85770c4 06-Aug-2019 Mathias Raoul <mathias.raoul@gmail.com>

quic: quic_app_rx_callback refactor.

Add quic_process_one_rx_packet() function

Type: refactor

Change-Id: Iecaec3f7fed9f95a25ea55d0251626beb79181fd
Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>


# 243e1933 01-Aug-2019 Aloys Augustin <aloaugus@cisco.com>

quic: handle session migration notifications

Rely on the migrate callback to move quic connections to follow the
underlying udp connection placement.

Change-Id: Ia1cf3a16187bbe48f5afb3d1f444427f288ff79c
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# d597ec79 05-Aug-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Add missing session_migrate_callback

Change-Id: Ibbec53e07852f1b8987696fddbc3bf83f75705ce
Type: fix
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 09db37a5 05-Aug-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix memset 0 picotls depends on

Type: fix

Change-Id: Id03cc839662179f8543b0b3f540932e1d87f1cea
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 46eb1950 22-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Improve quic echo connect threading

Type: fix

Change-Id: I64f90139ad70e722f1ecbc4e0c6c1e723ec0f054
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 2253abad 30-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: fix connection move with multiple workers

Change-Id: Ibd1012c2c1382de442ed294dd9e8a0ec89349fa1
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 797848d4 31-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Improve quicly_ctx handling & crypto ctx

Type: fix

Change-Id: I898de67c017c3a45bed123d81041b32b43f749d0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 874a31ea 30-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix cert loading

Type: fix

Change-Id: I29d24c8ec7b8e0613d4fbf5eedc72384326dc284
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 1c2af068 25-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: cleanup and refactorisation

Change-Id: I031a60ac010b55110f32f0a08e19b1156aeda268
Type: refactor
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 26dd6de9 24-Jul-2019 Florin Coras <fcoras@cisco.com>

session tcp: handle rxt and acks as custom events

Type: feature

Control ack generation and retransmissions with session layer scheduler.

Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b
Signed-off-by: Florin Coras <fcoras@cisco.com>


# b725ebb3 14-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: Refactor connections closing and deletion

This code should handle the 3 following cases:
- Active close
quic_proto_on_close sets state to ACTIVE_CLOSING
send packets eventually returns an error, calling
quic_connection_closed which deletes the connection

- Passive close
quic_on_closed_by_peer -> set state to PASSIVE_CLOSING
"race" between app confirmation (calling quic_proto_on_close) and
quicly signalling that it's done (triggers call to
quic_connection_closed).
If quic_connection_closed is called first, it sets the state to
PASSIVE CLOSING QUIC CLOSED, then when quic_proto_on_close is called
it frees the connection.
If quic_proto_on_close is called first, it sets the state to PASSIVE
CLOSING APP CLOSED, then when quic_connection_closed is called it frees
the connection

- Error close (reset)
quic_connection_closed is called in state READY. This means a timeout
or protocol error happened. This calls session_transport_reset_notify,
the app should confirm the deletion and quic_proto_on_close will be
called to delete the connection.

Change-Id: I3acbf9b079ed2439bdbb447197c428c78915d8c0
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature


# 5ff97658 08-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: update quicly library

Update quicly to latest version that includes our upstreamed patch.

Change-Id: I0b26c72e49bce81daf4fb069b5818defd6cf25b9
Type: feature
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 8ac1d6d0 17-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: Use parent_handle instead of transport_opts

Type: feature

This is mostly used for quic in the case of a stream
creation (i.e. connect on an already established QUIC
session). We want do default parent_handle to INVALID
to be able to distinguish it from parent_handle = 0

Change-Id: Id5ac0b0155a3c44e51334231b711e4fd87a96a10
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# f9a46854 16-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: Add back stream connect condition

Type: fix

This is needed for VCL patch in the case the Qsession
handle we connect to is 0. A better way to do this
would be to add a u16 header to the transport_opts,
as session_handles are :
<u16 unused><u16 thread_id><u32 session_index>
But this requires modifying all clients.

Change-Id: If171bcf982eba3bd705b586c9fd4a6c2ad0e114b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 9082b43d 12-Jul-2019 Mathias Raoul <mathias.raoul@gmail.com>

quic: integrate vpp crypto api for quic packets encryption

Type: feature

Change-Id: I740f15a5ef959d31e94e59d652aa9f691db1f289
Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>


# 95dd1fe2 12-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: fix show session verbose

Proprely display quic connections in show session verbose, and add a
small fix for UDPC listeners and UDP sessions formatting.

Change-Id: I33f83e77bf357347623d87ad23c483aba60a9bb2
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature


# bec771b8 12-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

tls quic: reduce default segment sizes

This reduces the memory required by tls and quic, allowing to run them
(and their tests) in more constrained environments by default.

Change-Id: I954081c725fb4f5f173db1f8e76922d957c5b0a2
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: fix


# a0abbff4 11-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

session: add thread index to all formatters

Add a thread_index argument to half-open and listener session formatters
because QUIC can have listeners and half-open sessions in any thread.

Change-Id: I1de60e35ece4c68ba8cfdd6b63f211bc620d687b
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature


# ace51525 08-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: echo thread can handle multiple sessions

Type: feature

Change-Id: Ibb60d5b46aafe109a81a8604712a917f6e246eaf
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# e92090b4 04-Jul-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix passive disconnect handling & refactor

Type: refactor

Change-Id: Ie54a77252e9f58a90f9e1f9595b9ede354952f70
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 0c7f54d4 03-Jul-2019 Aloys Augustin <aloaugus@cisco.com>

quic: fifo notifications fix

Add SESSION_IO_EVT_RX handling in session_send_evt_to_thread to allow
internal apps to send rx events ("tx notifications") to quic.
Add a call to quic_send_packets in quic_custom_app_rx_callback to
ensure QUIC ACKs are sent if there is no other activity on the
connection.

Type: fix

Change-Id: I885e01e6475e5b0274f274e9dd34d4a771719e69
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 2d379d8c 28-Jun-2019 Florin Coras <fcoras@cisco.com>

svm: rename fifo tx notifications to reflect use

Type: refactor

Change-Id: I651db44acdcb666a9c63e1037352cf88c68795b5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# e82a7ade 22-May-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic : Use TX event for app read notification

Type: feature

Change-Id: I1846cdeb35f079249f66a0351aa244c540923a43
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# e971bc9b 19-Jun-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: Add transport vft protocol options

Type: refactor

Change-Id: I4e0afc206e4871596c2ed8a6ca00914a379f1526
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 47e77304 05-Jun-2019 Dave Wallace <dwallacelf@gmail.com>

quic: server create streams test case

Type: test

* Refactor quic_echo test app
* Add timinig capabilities
* Add multiple quic tests

Change-Id: I3302c66539b12c1375d1a0c6d46f9ff4c6f2b27c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# e4a1a328 19-Jun-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: remove session flags identifying Q/S sessions

Type: refactor

Change-Id: Id68c5ae6d57df0fc556bbf583a66e538e641ffb1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 376efe5d 14-Jun-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

quic: fix handling of stream reset & close

Type: refactor

Change-Id: I4981704e3c886d90d482a1deba42633e92626743
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 2f0f96b9 13-Jun-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: use listener_handle instead of listener_index

Type: refactor

Change-Id: I97fa59a0ba0b6b7a98698926020ffffcf6ae6ba3
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# a9f194af 22-May-2019 Dave Wallace <dwallacelf@gmail.com>

fix show session verbose crash with quic transport

Type: fix

Change-Id: I8199c233f6968ac147fb1867a4f10ef04d67642f
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# cefb5ad3 14-May-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

Add QUIC human readable error logs

Change-Id: I01cf5074b5a8b0018de5c3f59c9266d350c22f37
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# ba123e15 14-May-2019 Aloys Augustin <aloaugus@cisco.com>

QUIC multi thread update

* Add support for multiple threads
* Replace quicly buffers with fifos
* Fix cleanup of sessions
* Update quicly release version

Change-Id: I551f936bbec05a15703f043ee85c8e1ba0ab9723
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 3a34b1d9 03-May-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

Add QUIC multistream support

Change-Id: I9dc746b8c62c3e7ee2f65e34a1a1dca243ed4bd9
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>


# 1d1985de 23-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

plugins: clean up plugin descriptions

- Make plugin descriptions more consistent
so the output of "show plugin" can be
used in the wiki.

Change-Id: I4c6feb11e7dcc5a4cf0848eed37f1d3b035c7dda
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>


# 87b15ceb 29-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: more fifo refactor/cleanup

Change-Id: Ie76c69641c8598164d0d00fd498018037258fd86
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 09d18c2f 24-Apr-2019 Florin Coras <fcoras@cisco.com>

session: use teps in accept/connect notifications

Change-Id: I58e713661a38cecbfdebd4609292d9d12e880cd2
Signed-off-by: Florin Coras <fcoras@cisco.com>


# cdb7170a 08-Apr-2019 Aloys Augustin <aloaugus@cisco.com>

Add get_endpoint in transport vft

This allows QUIC & TLS specific logic to be implemented, and meaningfull
IP/port to be returned when connection is overridden.

Change-Id: Id79c59fe4d7b16d36f0e96ad3e281c4026b5fe65
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 39d04099 09-Apr-2019 Aloys Augustin <aloaugus@cisco.com>

QUIC: Initial multi stream support

To connect a stream, apps should call connect while passing the id of the QUIC
connection in the new transport_opts field in session_endpoint_cfg_t.
Apps are notified of new streams with their accept callback, which is called
each time a peer opens a stream.

Change-Id: I0f82ec344db58008d54641553eddec2973768435
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>


# 13464f32 10-Apr-2019 Florin Coras <fcoras@cisco.com>

quic: add dummy accepted cb

Add dummy function to avoid session layer warning. Also, decrease
default debug level to avoid startup quic init notifications.

Change-Id: I2964fc15a8d93d78c976ed7c333e0cc5746c069e
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 0eed0e1d 05-Apr-2019 Florin Coras <fcoras@cisco.com>

quic: support addition of fifo segments

Change-Id: I8cb03ee832e77d2b21d47aa7a44579c283fb1054
Signed-off-by: Florin Coras <fcoras@cisco.com>


# c213089c 05-Apr-2019 Florin Coras <fcoras@cisco.com>

quic: update app ns on connect

Change-Id: I0aa220b1f5a72d8bbc6d147830766790d7f6d9bf
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 69b68ef1 02-Apr-2019 Florin Coras <fcoras@cisco.com>

session: use app cb function wrappers

Change-Id: I77ad9eb4d4c7699397aa4be6a973ef37c60db4c5
Signed-off-by: Florin Coras <fcoras@cisco.com>


# 60f3e654 19-Mar-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

Integrate first QUIC protocol implementation

Currently supports on single stream exposed through standard internal APIs
Based on libquicly & picotls by h2o

Change-Id: I7bc1ec0e399d1fb02bfd1da91aa7410076d08d14
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>