aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp.h
AgeCommit message (Collapse)AuthorFilesLines
2019-10-23tcp: improve rate samples for retansmitted segmentsFlorin Coras1-2/+3
Type: fix - Initialize max_seq on both transmitted and retransmitted segments - Keep track of segments that have been sacked. - Track new data segments sent during recovery Change-Id: Ice55231a3da200ae6171702e54b2ce155f831143 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-17session tcp: infra for transports to send buffersFlorin Coras1-4/+0
Type: feature Add infra that allows transpors to enqueue pending buffers without the need to build and manage their own pending frames. An important benefit is the fact that buffer wire/tx ordering is ensured by session layer. Change-Id: I764fd1693d610b321a1d0c84b648a314f14583db Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-17tcp: avoid sending acks when data availableFlorin Coras1-0/+1
Type: fix Change-Id: I02e2cb2d349f9ddb2bfed040a08ca448f379d565 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-11tcp: refactor flags into cfg and conn flagsFlorin Coras1-7/+33
Type: refactor Change-Id: Ib5e2ecf55732599e1322736e3662178c9da49c7d Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-10tcp: improve pacing after idle send periodsFlorin Coras1-0/+1
Rest pacer on ack reception if we haven't recently sent anything. Type: feature Change-Id: I820bacd81b65130052dfafbfcbe6ca4553069fbc Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-10tcp: retry lost retransmitsFlorin Coras1-4/+5
Add heuristic that detects lost retransmitted segments and retries sending them. Type: feature Change-Id: I34d1bb16799e1993779222eb2bfad4b40704159e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-10-10tcp: custom checksum calculations for Ipv4/Ipv6Srikanth A1-0/+3
Type: feature Based on the configuration, we can disable checksum offload capability and calculate checksum while pushing the TCP & IP header. This saves some cycles when VPP stack is used in legacy hardware devices. Signed-off-by: Srikanth A <srakula@cisco.com> Change-Id: Ic1b3fcf3040917e47ee65263694ebf7437ac5668 (cherry picked from commit 3642782a2748503f5b5ccf89d1575c1d489948ef)
2019-09-25tcp: use sacks for timer based recoveryFlorin Coras1-27/+25
Type: feature If available, reuse sack scoreboard in timer triggered retransmit to minimize spurious retransmits. Additional changes/refactoring: - limited transmit updates - add sacked rxt count to scoreboard - prr pacing of fast retransmits - startup pacing updates - changed loss window to flight + mss Change-Id: I057de6a9d6401698bd1031d5cf5cfbb62f2bdf61 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-09-18tcp: compute snd time for rate sampleFlorin Coras1-2/+2
Type: feature Change-Id: I6bd675dc28dbc34293e895911efe986844c0564f Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-09-11tcp: handle sack renegingFlorin Coras1-1/+1
Type: feature Change-Id: I201155b1b92cf7e57310af726879dab039090582 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-09-10tcp: enable gso in tcp hoststackSimon Zhang1-0/+2
Type: feature Change-Id: If68d07fbe8c6f7fffd2f93c7e854367082927e4f Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2019-09-03tcp: send rwnd update only if wnd is large enoughFlorin Coras1-0/+4
Type: feature Change-Id: I3e97e05a31806afb6b2e84ecf05fb96d285db92e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-30tcp: improve mss computationFlorin Coras1-1/+0
Type: fix Use different mss for v4 and v6 packets. Change-Id: Ifcd322c1fd74f749a42bae671dd6cfed8c32b150 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-21tcp: add option for always on event loggingFlorin Coras1-1/+1
Type: feature Add option to always compile in debugging infra. Debug verbosity can be controlled via configuration updatable via cli. Compile time inclusion and configuration of event logging verbosity is still available in order to minimize event logging impact. Change-Id: I9d946efe9fa4204fdace1adb1d6588c97b5ae758 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-19tcp: set cc_algo on connection allocFlorin Coras1-0/+2
Type: feature Change-Id: Ie00329b11e26cab5db64b9c006171d283854c8ef Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-19tcp: allow cc algos to set pacing rateFlorin Coras1-0/+13
Type: feature Change-Id: Ie7f0f5d2a476d401ede567e422abb953b2bb4a78 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-14tcp: extend protocol configurationFlorin Coras1-55/+82
Type: feature Expose more configuration parameters and refactor some of the existing ones. Change-Id: If44c31ff77ce3d7e8da67d39a4ff61346bdf5ccc Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-08tcp: cleanup timersFlorin Coras1-4/+1
Type:refactor Change-Id: I37dbc8b55827d66c2578d6ab8b86ed7e18198aa6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-08tcp: fix zero rwnd sent checkFlorin Coras1-1/+1
Type:fix Change-Id: I1e6f2cb28c1bf544cc3d060b11c8935f9edb0eed Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-02tcp: add more connection statsFlorin Coras1-3/+31
Type:feature Change-Id: If02884d0f1f26bfe31ec609ea9611cb27b699868 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-26tcp: count resets sentFlorin Coras1-0/+3
Type:feature Change-Id: Ie1ab4b24af9c654d5e0ed94b7fa96ca195b01c56 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-26session tcp: handle rxt and acks as custom eventsFlorin Coras1-19/+5
Type: feature Control ack generation and retransmissions with session layer scheduler. Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-10tcp: improve rate estimateFlorin Coras1-4/+10
Type:feature - sample rtt estimation - report acked+sacked - report last lost bytes - use snd_una == snd_nxt to detect 0 bytes in flight Change-Id: I83181261fdb375c7e33d24b7a82343561e6a905f Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-09tcp: track last lost bytes in sack sbFlorin Coras1-0/+1
Type:feature Change-Id: I687809ebcc759cec8cb1d5c3b2b7e6bc995a7985 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-05tcp: timestamp adjustmentVladimir Kropylev1-0/+11
Type: feature Change-Id: Icb3c574100cde95ab5be4923c8739889cf7e48c6 Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
2019-07-05tcp: add cc algo start tx eventFlorin Coras1-0/+13
Type: feature Notify cc algos that new data is sent on a connection that was apparently idle. Change-Id: I892e5e9bb5b88d791265ffbbefce6f9694d01970 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-05tcp: add cc algo undo recovery notificationFlorin Coras1-0/+14
Type:feature Change-Id: Iedefe87555f0a0033abed8569bc2995c8f523d7e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-05tcp: add loss signal to cc algoFlorin Coras1-3/+10
Type:feature Change-Id: Ibe1a4c555b55fb929d55b02599aaf099ed522cdf Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-27tcp: Setup initial CWND as configuredVladimir Kropylev1-0/+7
Type: feature Change-Id: I7f476f4f81994c9c6cc2e8091de08adff4bcbc77 Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
2019-06-25tcp: window update ackVladimir Kropylev1-0/+6
Type: feature Provide interface for sending Window Update ACK, ensuring it will be sent only once, if RWND became non-zero, after zero RWND has been advertised before. Change-Id: I7f0d8af76d7763208625df68ab4ac3727fdaf449 Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
2019-06-25tcp: delivery rate estimatorFlorin Coras1-12/+127
Type: feature First cut implementation with limited testing. The feature is not enabled by default and the expectation is that cc algorithms will enable it on demand. Change-Id: I92b70cb4dabcff0e9ccd1d725952c4880af394da Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-21tcp: add option to pass opaque to next nodeFlorin Coras1-1/+2
Type:feature Change-Id: I0b72954a6ae6a05abe0761cb4f227072863f127b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-18tcp: allow custom output next nodeFlorin Coras1-0/+1
Type: feature Change-Id: If9804d3685d2a52efa06e412ae1ebb39c6a44b8b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-11tcp: allow registration of new cc algo typesFlorin Coras1-4/+14
Type: feature Change-Id: I83e21b508a19df1beb207d961c8f2b52347deca0 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-08tcp: close connection if not recovered after max triesFlorin Coras1-0/+1
Type: feature Change-Id: Ia8af6a62a2be2265bc42955d90e8c2222bdb8f50 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-07tcp: add cc cleanup functionFlorin Coras1-0/+1
Type: feature Change-Id: I54521078cf96e459d041c86297c6ca80045bf0a3 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-04-02tcp: improve rcv process ack processingFlorin Coras1-0/+1
- Avoid doing cc in closing states. - Rest connections closed with unread data Change-Id: I97d46b0459f03ea5439eeb0f233b6c17d3e06dfd Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-29tcp: remove sent rcv wnd 0 flagFlorin Coras1-1/+0
Change-Id: If6c672d1caa8884eb5d819311606a79a3de81200 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-28tcp: remove unused buffer flagsFlorin Coras1-20/+0
Change-Id: I86e71f32dee3cc48f680e6432a96caef0a7f66a1 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-27tcp: add cc algo lookup tableFlorin Coras1-0/+3
Change-Id: Ie7be0136c182cdc35193e47dd3249153c2f8d65e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-23tcp: make default mtu configurableFlorin Coras1-0/+3
Change-Id: I56d8d8d67d5590e24c1ddb54b0c63a2cb03798e1 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-22tcp: improve handling of snd_nxtFlorin Coras1-2/+2
- avoid changing snd_nxt when doing fast retransmits - use snd_una_max only to keep track of the max seq number sent - simplify future ack testing Change-Id: I3580ad3aefe30128486c3375d0ac3f3f62c04c5e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-08session/tcp/vcl: fixes and optimizationsFlorin Coras1-1/+2
Change-Id: Idc7dfe743399dd8dee0f6b3ec83f194f3fca580b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-03-06tcp: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar1-0/+8
Change-Id: Ifd9fa30eed343e2c5d40582b3e3aa589b070637d Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-03-02session: cleanup/rename functionsFlorin Coras1-1/+1
- remove unused functions - rename old "stream" functions Change-Id: Icbb03daa9f9f1c58b5be5c38aa8a9cbcf9159b47 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-22tcp: keep snd sack block free listFlorin Coras1-0/+1
Instead of constantly reallocating the new sack block list, keep the old one as a reusable free list. Change-Id: Iad79a72204f97b96352c1c6eea66c2839a35cfe6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-22tcp: send enough dupacks to cover all sack holesFlorin Coras1-0/+1
Make sure we send enough dupacks to cover all the holes created in the last frame received. Also make sure we send all the blocks, not just the first. Change-Id: I9597a34ac14473d1cc3ad07d65bc37043e3d0582 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-18tcp: harden for high scale scenariosFlorin Coras1-1/+1
- Better handle buffer starvation scenarios - Handle case when both peers enter recovery due to packet loss. - Fix passive open establish cleanup Change-Id: I2f28baa2ff0383bb8f5f6d2452b49aa38ce69bce Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-07tcp: fix reset sending in syn-sentFlorin Coras1-1/+1
Change-Id: I468b1015bca5f95b162fb49e904aa4e4d38db75e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-02-02tcp: remove internal buffer cacheFlorin Coras1-1/+0
Change-Id: I3051d49aa9b9c38dcd8069ea1748f74ab20ac0f6 Signed-off-by: Florin Coras <fcoras@cisco.com>