[openssl/openssl] 43b94c: Create a noisy dgram test

Matt Caswell noreply at github.com
Fri Sep 22 13:09:35 UTC 2023


  Branch: refs/heads/master
  Home:   https://github.com/openssl/openssl
  Commit: 43b94c7fe4a427ad95f7401dd24f42d2ae094dfb
      https://github.com/openssl/openssl/commit/43b94c7fe4a427ad95f7401dd24f42d2ae094dfb
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/build.info
    A test/helpers/noisydgrambio.c
    M test/helpers/quictestlib.c
    M test/helpers/quictestlib.h
    M test/quicapitest.c

  Log Message:
  -----------
  Create a noisy dgram test

Create a noisy dgram test that can drop/duplicate/reorder UDP packets and
ensure that the QUIC connection is tolerant of this. At this stage we just
create the outline of the test. Adding in the noise will come in future
commits.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: c6bb25fab062738d22bea38462d14bd1c7de22e5
      https://github.com/openssl/openssl/commit/c6bb25fab062738d22bea38462d14bd1c7de22e5
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/noisydgrambio.c

  Log Message:
  -----------
  Add the ability to drop datagrams in the noisy dgram BIO

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 19d79bb2ba45729a49cbac9f98bd916190be0b4b
      https://github.com/openssl/openssl/commit/19d79bb2ba45729a49cbac9f98bd916190be0b4b
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/quicapitest.c

  Log Message:
  -----------
  Extend the nosiy datagram test to send more data

We send several messages between client and server, and server and client,
and also create a new stream.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: d3a8daca587157dda52991448258800e9cf1f657
      https://github.com/openssl/openssl/commit/d3a8daca587157dda52991448258800e9cf1f657
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/noisydgrambio.c
    M test/quicapitest.c

  Log Message:
  -----------
  Use test_random() to introduce better noise into the noisy dgram BIO

We drop some datagrams, and we delay some datagrams. We can also duplicate
some datagrams.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: fbfcc3fe3458c50a11aa414a1e499a2eee0eb2e9
      https://github.com/openssl/openssl/commit/fbfcc3fe3458c50a11aa414a1e499a2eee0eb2e9
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/noisydgrambio.c

  Log Message:
  -----------
  Add some optional debug output to the noisy dgram BIO

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: a2026db2643db1e34cc25960e9ef74d08bcdee5a
      https://github.com/openssl/openssl/commit/a2026db2643db1e34cc25960e9ef74d08bcdee5a
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/quictestlib.c

  Log Message:
  -----------
  Add support for timeouts into quictestlib.c

Now that we have a noisy datagram BIO we cannot rely on datagrams always
reliably being delivered in the test framework. We need to start taking
notice of timeouts and handling them appropriately.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 5d3933eef0d937a4845a439d5fbfa76738592fc0
      https://github.com/openssl/openssl/commit/5d3933eef0d937a4845a439d5fbfa76738592fc0
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/quicapitest.c

  Log Message:
  -----------
  Use fake time rather than real time in the noisy dgram test

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 35bd8a60043bde500f777e465530076524d2534a
      https://github.com/openssl/openssl/commit/35bd8a60043bde500f777e465530076524d2534a
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/build.info
    M test/helpers/noisydgrambio.c
    A test/helpers/pktsplitbio.c
    M test/helpers/quictestlib.c
    M test/helpers/quictestlib.h

  Log Message:
  -----------
  Add a packet splitting BIO

Provide a BIO filter that can split QUIC datagrams containing multiple
packets, such that each packet is in its own datagram.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: b1584a85d07fdf1cfaa7423392fba439f7b6b0ac
      https://github.com/openssl/openssl/commit/b1584a85d07fdf1cfaa7423392fba439f7b6b0ac
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/quictestlib.c
    M test/helpers/quictestlib.h
    M test/quicapitest.c

  Log Message:
  -----------
  Extend the noisy dgram test so that packets are also affected by noise

Where multiple packets are in a single datagram we split them so that all
packets can be affected by the noise

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 8d8c0a901e5d65d68070fbe812d7e8c1449381e1
      https://github.com/openssl/openssl/commit/8d8c0a901e5d65d68070fbe812d7e8c1449381e1
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M doc/designs/quic-design/quic-fault-injector.md
    M test/helpers/quictestlib.c
    M test/helpers/quictestlib.h
    M test/quic_newcid_test.c
    M test/quicapitest.c
    M test/quicfaultstest.c

  Log Message:
  -----------
  Add the ability to do client side tracing in quictestlib.c

We add a new flag QTEST_FLAG_CLIENT_TRACE to get debug tracing output if
required.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 0a2369fd446e27f59f0025d8d885c07a107df615
      https://github.com/openssl/openssl/commit/0a2369fd446e27f59f0025d8d885c07a107df615
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/quictestlib.c
    M test/helpers/quictestlib.h
    M test/quicapitest.c

  Log Message:
  -----------
  Ensure client to server datagrams are noisy too

So far we've only applied noise to the server to client datagrams. Do the
same thing the other way around.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: c29b13a7356432a0f177dd838afbec963f1d6212
      https://github.com/openssl/openssl/commit/c29b13a7356432a0f177dd838afbec963f1d6212
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/noisydgrambio.c
    M test/helpers/pktsplitbio.c

  Log Message:
  -----------
  Remove some redundant code from test helper BIOs

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: f13f9b716e8b148b97dbe49e823b9dc3f235de1f
      https://github.com/openssl/openssl/commit/f13f9b716e8b148b97dbe49e823b9dc3f235de1f
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/quictestlib.c

  Log Message:
  -----------
  Ensure we up-ref the sbio before passing it to tserver

We are actually passing two references to sbio: one as part of a BIO chain
and one stand alone. Therefore we need two references.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 18fd0ea04d6bd37809a4e9a669c49cf9bc146bfb
      https://github.com/openssl/openssl/commit/18fd0ea04d6bd37809a4e9a669c49cf9bc146bfb
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M ssl/quic/quic_impl.c
    M ssl/quic/quic_tserver.c
    M test/quic_multistream_test.c

  Log Message:
  -----------
  Ensure we free all the BIOs in a chain for QUIC like we do in TLS

An application may pass in a whole BIO chain via SSL_set_bio(). When we
free the BIO we should be using BIO_free_all() not BIO_free() like we do
with TLS.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


  Commit: 523c5a06c590b7f2950043a6b8308c3f3e49cb51
      https://github.com/openssl/openssl/commit/523c5a06c590b7f2950043a6b8308c3f3e49cb51
  Author: Matt Caswell <matt at openssl.org>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M test/helpers/noisydgrambio.c

  Log Message:
  -----------
  Clarify the terminology in the noisy dgram BIO

The previous terminology was quite confusing. We try to use drop, duplicate
and delay more consistently and introduce the "reinject" terminology as a
mechanism for implementing duplicates and delays.

Reviewed-by: Tim Hudson <tjh at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22157)


Compare: https://github.com/openssl/openssl/compare/f34878d846de...523c5a06c590


More information about the openssl-commits mailing list