aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/tle_tcp.h
AgeCommit message (Collapse)AuthorFilesLines
2022-01-21Allow all window scale values when proxyingBen Magistro1-0/+4
When TLDK is used in to proxy connections, it previously limited the window scale values that could be used. This allows the full range to be used by proxy sessions (tcp_establish) and should preserves the existing behavior for endpoint sessions. Signed-off-by: Ben Magistro <koncept1@gmail.com> Change-Id: I064dffccef1cc8e97c910a23d82feb7bd35bc988
2021-08-13l4p/tcp: add flags parameter for tle_tcp_stream_establish() APIKonstantin Ananyev1-1/+32
Add extra flags parameter to control tle_tcp_stream_establish() behaviour. Currnetly supported flags: - TLE_TCP_STREAM_F_PRIVATE - to disable putting new stream into internal TLDK stream table. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: Id6f09bdcac313f5680438ebc3ce8a6c95e395e78
2021-08-03l4p/tcp: introduce tle_tcp_stream_shutdown() APIKonstantin Ananyev1-2/+18
Introduce ability ot perform half-close for TCP connection. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: I468ed84b5f42ae1e5c35f08871f7dd775e3d888a
2021-07-07l4p/tcp: introduce tle_tcp_stream_abort() APIKonstantin Ananyev1-1/+23
Introduce ability ot perform abnormal connection termination. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: I75b5153505348ceface903cd2c8e012707631168
2021-07-06l4p/tcp: introduce tle_tcp_stream_get_state() APIKonstantin Ananyev1-0/+61
tle_tcp_stream_get_state() allows user to query information regarding stream state, control ops and remote termination events. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: Ica22a5fe2e63fdece882935b76572142433a4ae1
2021-06-03l4p: add ability to assign user-data to the streamKonstantin Ananyev1-0/+2
Add ability for the user to assign user provided data to the stream. Right now this user provided 64-bit value is passed as a parameter for lookup4/lookup6 callbacks. Another change: change interpretation of lookup4()/lookup6() return value: < 0: error code (existing behaviour). == 0: success, TLDK will update L3 header src/dst addresses based on tldk dev values (existing behaviour). > 0: success, TLDK will not update L3 header src/dst addresses, will rely on user provided values. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: I32521422e0372d79c4b2781dd6fc9740e4ca93ab
2021-05-14l4p/tcp: introduce tle_tcp_stream_rx_bulk() APIKonstantin Ananyev1-0/+34
tle_tcp_stream_rx_bulk() allows to push input packets for futher processing straight into given TCP stream. Given stream is expected to be already in connected state. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: I94a744d6d9c8ff3671ebfa84b83a34a24612bde0
2021-05-14l4p/tcp: introduce tle_tcp_stream_establish() APIKonstantin Ananyev1-0/+32
tle_tcp_stream_establish() allows to create streams in established connection state. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: Ib302c4d7f229144d2624279f973f00041fb611b2
2017-07-27- Introduce tle_tcp_stream_readv() and tle_tcp_stream_writev().Konstantin Ananyev1-12/+60
- 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>
2017-06-30Add l4fwd RXTX modeRemy Horton1-0/+10
This mode allows for transactions where the request and response are of different payload sizes Change-Id: I0744159f0618c9241e576a4af1c02765bbf1dd9f Signed-off-by: Remy Horton <remy.horton@intel.com>
2017-03-06Rewrite accept() code-path and make l4fwd not to close() on FIN immediatelly.Konstantin Ananyev1-65/+39
Changes in public API: - removes tle_tcp_stream_synreqs() and tle_tcp_reject() - adds tle_tcp_stream_update_cfg Allocates and fills new stream when final ACK for 3-way handshake is received. Changes in l4fwd sample application: prevents l4fwd to call close() on error event immediately: first try to recv/send remaining data. Change-Id: I8c5b9d365353084083731a4ce582197a8268688f Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2017-02-24Introduce first version of TCP code.Konstantin Ananyev1-0/+395
Supported functionality: - open/close - listen/accept/connect - send/recv In order to achieve that libtle_udp library was reworked into libtle_l4p library that supports both TCP and UDP protocols. New libtle_timer library was introduced (thanks to Cisco guys and Dave Barach <dbarach@cisco.com> for sharing their timer code with us). Sample application was also reworked significantly to support both TCP and UDP traffic handling. New UT were introduced. Change-Id: I806b05011f521e89b58db403cfdd484a37beb775 Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com> Signed-off-by: Karol Latecki <karolx.latecki@intel.com> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>