summaryrefslogtreecommitdiffstats
path: root/src/plugins/quic
AgeCommit message (Collapse)AuthorFilesLines
2019-11-07quic: Add support for ckpair & crypto engineNathan Skrzypczak2-20/+49
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>
2019-11-06docs: add spellcheck to 'make docs' sphinx docsPaul Vinciguerra1-1/+1
The CI gate will fail if there are typos in the docs. writing output... [ 21%] events/Summits/OpensourceSummit... writing output... [ 22%] events/Summits/UKNO/2017_04_30_... featuresbyrelease/vpp16.06.rst:34:Rasberry:vpp16.06 writing output... [100%] usecases/vppinazure Spelling checker messages written to /vpp/docs/_build/html/output.txt Warning, treated as error: Found 1 misspelled words Makefile:31: recipe for target 'html' failed make[1]: *** [html] Error 2 make[1]: Leaving directory '/vpp/docs' If you introduce a term that is not recognized, please add it to custom dictionary at docs/spelling_wordlist.txt. Type: feature Change-Id: Id49be4fbee617f544f1ab8e78e7de8a4df36448b Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-11-06quic: free qctx after udp cleanupNathan Skrzypczak1-22/+58
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>
2019-11-05misc: Fix python scripts shebang lineRenato Botelho do Couto1-1/+1
Type: fix Since CentOS 8, RPM build script doesn't accept '#!/usr/bin/env python' as a valid shebang line. It requires scripts to explicitly chose between python2 or python3. Change all to use python3 as suggested by Paul Vinciguerra. Depends-On: https://gerrit.fd.io/r/23170 Signed-off-by: Renato Botelho do Couto <renato@netgate.com> Change-Id: Ie72af9f60fd0609e07f05b70f8d96e738b2754d1
2019-11-04quic: enhance error reportingDave Wallace2-6/+24
Type: refactor Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I710d00e4a6c4356d0f00f7592bf14b55596ec6ae
2019-11-04quic: remove redundant function callsDave Wallace1-2/+0
- 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
2019-11-01quic: fifo size is u32Dave Wallace3-18/+32
- 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>
2019-10-31quic: fix wrong error checkingDave Wallace1-6/+1
- Revert error checking to previous ASSERT Type: fix Fixes: 7c7fa9066 Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I6d915d88bf932c74f9b866aec3bd1531e0cb47f4
2019-10-31quic: disable failing testFlorin Coras1-0/+1
Type: fix Disable test until fixed. Change-Id: I1f03630d126e61578c63a3536a0dd1a7b4da2b92 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-30quic: fix quicly fifo size mismatchDave Wallace1-3/+13
- 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>
2019-10-30quic: fix typosPaul Vinciguerra1-4/+4
Type: style Change-Id: Iec3478541997352a627c8869e38cb7be7c3dae6a Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-10-22tests: quic add big stream extended testsDave Wallace1-10/+65
Type: test Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I6c5bdfd934a2c96c410c36c2bc090ee47b679bea
2019-10-22tests: enable vpp_echo to run in gdbDave Wallace1-7/+22
- Enable vpp_echo to be run in gdb when running 'make test DEBUG=gdb-all' Type: test Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I79a69b0573c01900535078d7493d52b417350815
2019-10-21quic: Add PICOTLS_INCLUDE_DIR var to CMakeLists.Mathias Raoul1-0/+6
Type: fix Change-Id: I10ebcc653491d11ca798e0a60be6eeef82c41766 Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>
2019-10-11hsa: vpp_echo refactor quic nclients argDave Wallace1-2/+2
Type: refactor Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: If8471d98053ae44cae07cdca6d269aa3c7df9887
2019-10-09hsa: use crypto_engine_type_t for TLSNathan Skrzypczak1-1/+1
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>
2019-10-09session: Add certificate storeNathan Skrzypczak2-10/+11
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>
2019-10-09hsa: fix vpp_echo session closeDave Wallace1-37/+47
- Convert asserts in vpp_echo to conditional checks - Refactor error logging for session creation/deletion - Fix session close anomalies - Fix ECHO_* macros - Add rx/tx results different cmdline options to specify pass when counters are different - Update close tests to send more than the fifo sizes of data - Specify rx/tx results diff options for early close tests - Set listen session state to closed on handling unlisten reply Type: fix Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I9d0075fcb18e20829f420da104d69523897b0552
2019-10-08hsa: make vpp_echo use mq instead of bapiNathan Skrzypczak2-7/+1
Type: refactor Change-Id: I4f370b09e22dbbc8920272df9a042dae04825bfc Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-10-08session: add is_migrating flagNathan Skrzypczak2-49/+38
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>
2019-10-07quic: fix wrong condition in update_fifo_sizeMathiasRaoul1-1/+1
Type: fix Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com> Change-Id: If371cde9412be29634164830c58634da248ad0ae
2019-10-07quic: Refactor naming & clibsNathan Skrzypczak2-277/+209
Type: refactor Change-Id: I067fc7dbcc0985277df01384d9dcdb0bdf62fba5 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-10-04quic: make quic fifo size configurable via cliMathiasRaoul2-6/+83
Type: feature Change-Id: I6d6ac649094ef4bee2aed311915dd58f11972e79 Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
2019-10-04quic: update quicly to v0.0.5MathiasRaoul1-49/+12
-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
2019-10-01quic: Create custom event loggerMathiasRaoul1-2/+39
Type: feature Change-Id: I20acfe6a53cf9f15e3e4b8847b6f76757962f1c7 Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
2019-10-01quic: Add Tx, Rx and packet drop countersMathiasRaoul3-0/+66
Type: feature Change-Id: I25aeeed49fc569315296a73c5595c2e2e302434f Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
2019-10-01quic: add cli command for statsMathiasRaoul1-0/+47
add command to display stats from quicly (rtt, packet loss) Type: feature Change-Id: Iaa18bc78fbf80a9367ef150a8cf4997a456c6b39 Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
2019-09-27tests: add quic plugin qclose/sclose testsDave Wallace1-25/+197
Type: test Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I3122b038f7d77c7e5e8ee7c24046da6c94ca2d2c
2019-09-18quic : refactor function namingMathiasRaoul3-56/+51
- 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>
2019-09-12quic: fix use-after-freeBenoît Ganne1-1/+6
Type: fix Change-Id: I5e5e37684e336ca992dae8ea1d39b1fb103802b1 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-09-11quic: fix non-null terminated hostname stringBenoît Ganne1-9/+5
Type: fix Change-Id: I089d359d5726050f32f69366547086216fdb3098 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-09-06quic: fix server opening stream immediatelyAloys Augustin2-4/+19
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>
2019-09-02quic: disable quic plugin by defaultAloys Augustin2-0/+5
Change-Id: I8eb243e80ff043a23cb3efae186164dad6c11ca8 Type: fix Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2019-08-28quic: enable stable quic testsDave Wallace1-5/+0
Type: test Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I041c011ee955acba656b774049b530efe1d50f22
2019-08-22tests: move plugin tests to src/plugins/*/testDave Wallace1-0/+248
- Relocate plugin tests for 'make test' into src/plugins/*/test so that plugin test cases are co-located with the plugin source code. Type: refactor Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I503e6a43528e14981799b735fa65674155713f67 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-08-19quic: fix rx_callback refactoringNathan Skrzypczak1-1/+1
* 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>
2019-08-16quic: quic_app_rx_callback refactor.Mathias Raoul1-117/+167
Add quic_process_one_rx_packet() function Type: refactor Change-Id: Iecaec3f7fed9f95a25ea55d0251626beb79181fd Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>
2019-08-09quic: handle session migration notificationsAloys Augustin1-63/+38
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>
2019-08-06quic: Add missing session_migrate_callbackNathan Skrzypczak1-0/+7
Change-Id: Ibbec53e07852f1b8987696fddbc3bf83f75705ce Type: fix Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-08-05docs: Add more quic plugin documentationNathan Skrzypczak2-38/+127
Type: docs Change-Id: I0209769f73a46ddad7c2625ad0f774ee2eef43dd Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-08-05quic: fix memset 0 picotls depends onNathan Skrzypczak1-0/+1
Type: fix Change-Id: Id03cc839662179f8543b0b3f540932e1d87f1cea Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-08-02quic: Improve quic echo connect threadingNathan Skrzypczak1-7/+8
Type: fix Change-Id: I64f90139ad70e722f1ecbc4e0c6c1e723ec0f054 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-08-02quic: fix connection move with multiple workersAloys Augustin1-13/+35
Change-Id: Ibd1012c2c1382de442ed294dd9e8a0ec89349fa1 Type: fix Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2019-08-01quic: Improve quicly_ctx handling & crypto ctxNathan Skrzypczak2-135/+148
Type: fix Change-Id: I898de67c017c3a45bed123d81041b32b43f749d0 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-07-30quic: fix cert loadingNathan Skrzypczak3-12/+17
Type: fix Change-Id: I29d24c8ec7b8e0613d4fbf5eedc72384326dc284 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-07-30quic: cleanup and refactorisationAloys Augustin7-525/+634
Change-Id: I031a60ac010b55110f32f0a08e19b1156aeda268 Type: refactor Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2019-07-26session tcp: handle rxt and acks as custom eventsFlorin Coras1-1/+1
Type: feature Control ack generation and retransmissions with session layer scheduler. Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-23quic: Refactor connections closing and deletionAloys Augustin2-21/+81
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
2019-07-22quic: update quicly libraryAloys Augustin1-4/+4
Update quicly to latest version that includes our upstreamed patch. Change-Id: I0b26c72e49bce81daf4fb069b5818defd6cf25b9 Type: feature Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2019-07-19session: Use parent_handle instead of transport_optsNathan Skrzypczak1-11/+13
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>