diff options
author | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-07-27 12:00:57 +0100 |
---|---|---|
committer | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-07-27 20:24:53 +0100 |
commit | 7e18fa1bf263822c46d7431a911b41d6377d5f69 (patch) | |
tree | ddf5ce05545419d6d77bb9d8b3c48fc90d221a7a /lib/libtle_l4p/tcp_stream.h | |
parent | e151ee29d02d7802fab9e32b50ced54fd8d64160 (diff) |
- Introduce tle_tcp_stream_readv() and tle_tcp_stream_writev().
- Introduce flags for tle_ctx_param.
- Introduce TLE_CTX_FLAG_ST - indicates that given ctx will be used
by single thread only.
- Introduce new parameters for tcp context:
timewait - allows user to configure max timeout in TCP_TIMEWAIT state.
icw - allows user to specify desired initial congestion window
for new connections.
-Few optimisations:
cache tx.ol_flags inside tle destination.
calcualte and cache inside ctx cycles_to_ms shift value.
reorder restoring SYN opts and filling TCB a bit.
Change-Id: Ie05087783b3b7f1e4ce99d3555bc5bd098f83fe0
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Diffstat (limited to 'lib/libtle_l4p/tcp_stream.h')
-rw-r--r-- | lib/libtle_l4p/tcp_stream.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libtle_l4p/tcp_stream.h b/lib/libtle_l4p/tcp_stream.h index 04c2f88..4629fe6 100644 --- a/lib/libtle_l4p/tcp_stream.h +++ b/lib/libtle_l4p/tcp_stream.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Intel Corporation. + * Copyright (c) 2016-2017 Intel Corporation. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -82,6 +82,7 @@ struct tcb { uint32_t cwnd; /* congestion window */ uint32_t ssthresh; /* slow start threshold */ uint32_t rto; /* retransmission timeout */ + uint32_t rto_tw; /* TIME_WAIT retransmission timeout */ uint32_t iss; /* initial send sequence */ uint16_t mss; uint8_t wscale; @@ -91,11 +92,13 @@ struct tcb { struct syn_opts so; /* initial syn options. */ }; - struct tle_tcp_stream { struct tle_stream s; + uint32_t flags; + rte_atomic32_t use; + struct stbl_entry *ste; /* entry in streams table. */ struct tcb tcb; @@ -109,7 +112,6 @@ struct tle_tcp_stream { } err; struct { - rte_atomic32_t use; struct rte_ring *q; /* listen (syn) queue */ struct ofo *ofo; struct tle_event *ev; /* user provided recv event. */ @@ -117,7 +119,6 @@ struct tle_tcp_stream { } rx __rte_cache_aligned; struct { - rte_atomic32_t use; rte_atomic32_t arm; /* when > 0 stream is in to-send queue */ struct { uint32_t nb_elem; /* number of objects per drb. */ |