openssl/ssl
Matt Caswell d102d9df86 Implement write pipeline support in libssl
Use the new pipeline cipher capability to encrypt multiple records being
written out all in one go. Two new SSL/SSL_CTX parameters can be used to
control how this works: max_pipelines and split_send_fragment.

max_pipelines defines the maximum number of pipelines that can ever be used
in one go for a single connection. It must always be less than or equal to
SSL_MAX_PIPELINES (currently defined to be 32). By default only one
pipeline will be used (i.e. normal non-parallel operation).

split_send_fragment defines how data is split up into pipelines. The number
of pipelines used will be determined by the amount of data provided to the
SSL_write call divided by split_send_fragment. For example if
split_send_fragment is set to 2000 and max_pipelines is 4 then:
SSL_write called with 0-2000 bytes == 1 pipeline used
SSL_write called with 2001-4000 bytes == 2 pipelines used
SSL_write called with 4001-6000 bytes == 3 pipelines used
SSL_write_called with 6001+ bytes == 4 pipelines used

split_send_fragment must always be less than or equal to max_send_fragment.
By default it is set to be equal to max_send_fragment. This will mean that
the same number of records will always be created as would have been
created in the non-parallel case, although the data will be apportioned
differently. In the parallel case data will be spread equally between the
pipelines.

Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-03-07 21:39:27 +00:00
..
record Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
statem Lowercase name of SSL_validate_ct as it is an internal function 2016-03-07 14:44:04 -05:00
bio_ssl.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
build.info Update build.info files for auto-init/de-init 2016-02-09 15:11:38 +00:00
d1_lib.c Remove unused parameters from internal functions 2016-02-22 13:39:44 -05:00
d1_msg.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
d1_srtp.c Add new DTLS-SRTP protection profiles from RFC 7714 2016-02-04 22:52:21 +00:00
Makefile.in Always build library object files with shared library cflags 2016-02-20 16:51:31 +01:00
methods.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
packet_locl.h Refactor ClientHello extension parsing 2016-03-03 13:53:26 +01:00
pqueue.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
s3_cbc.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
s3_enc.c Refactor ClientHello extension parsing 2016-03-03 13:53:26 +01:00
s3_lib.c Rework the default cipherlist. 2016-03-07 16:53:42 +01:00
s3_msg.c Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
ssl_asn1.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
ssl_cert.c Fix MacOS/X build warnings 2016-02-11 13:53:39 -05:00
ssl_ciph.c Rework the default cipherlist. 2016-03-07 16:53:42 +01:00
ssl_conf.c Remove outdated DEBUG flags. 2016-02-18 17:14:50 -05:00
ssl_err.c Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
ssl_init.c Swap the init code to use CRYPTO_ONCE 2016-03-07 17:17:21 +00:00
ssl_lib.c Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
ssl_locl.h Implement write pipeline support in libssl 2016-03-07 21:39:27 +00:00
ssl_mcnf.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
ssl_rsa.c fix no-ec build 2016-03-03 13:27:34 +00:00
ssl_sess.c Move to REF_DEBUG, for consistency. 2016-02-11 12:40:32 -05:00
ssl_stat.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
ssl_txt.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00
ssl_utst.c Fix build-break 2016-02-15 10:17:12 -05:00
t1_enc.c Refactor ClientHello extension parsing 2016-03-03 13:53:26 +01:00
t1_ext.c Adds CT validation to SSL connections 2016-03-04 10:50:10 -05:00
t1_lib.c Adds CT validation to SSL connections 2016-03-04 10:50:10 -05:00
t1_reneg.c Remove outdated DEBUG flags. 2016-02-18 17:14:50 -05:00
t1_trce.c Adds CT validation to SSL connections 2016-03-04 10:50:10 -05:00
tls_srp.c Remove /* foo.c */ comments 2016-01-26 16:40:43 -05:00