aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp
AgeCommit message (Collapse)AuthorFilesLines
2020-08-12tcp: remove useless predictionSimon Zhang1-3/+1
Type: fix Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> Change-Id: Ie2dc2653baec92347eb2cbcd197a2e5ec6a80c79 (cherry picked from commit 487507f40f4e443ff1e683641206db80875f3477)
2020-08-12tcp: fix coverity warning in btFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I4153a9a377b8b1da1366a94ff791ad99617b7a6d (cherry picked from commit 62a7fe28933b6310b9a4e3a0fab99949587576ac)
2020-08-12tcp: fix input error countersFlorin Coras1-17/+30
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I87940d02813b66616f1944e41b16c8cc16f5dac0 (cherry picked from commit deb6f784edbaddd2e60e0d6ac9927f17c4214ad2)
2020-08-12session tcp: fix packet tracingFlorin Coras4-11/+13
Type: fix Change-Id: Ib823d016c64998779fb1d00b8aad3acb5e8340be Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 30928f87a3c9d98e288d1364d50c032e052e69ab)
2020-08-12tcp: fix rxt delivered without sacksFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I69c245cb0e3f6d599a3270a485fa0a5845cde8eb (cherry picked from commit 56cef059ef44434efe26d523caec1bb0af9c1d3b)
2020-08-12tcp: fix tcp check tx offload issueSimon Zhang1-2/+6
Type: fix Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> Change-Id: I3b8755831d762abf51e1cbe1b57024f9297de9a4 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> (cherry picked from commit 79bfb9e09c7bf2072d34b2ed6159ba11815dab3a)
2020-08-12tcp: handle ack advancement with no holes and renegingFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I9afba8dc9e087b8c436fe568531c02614a577a7c (cherry picked from commit c95eefb393d05167ce6e35e5617179f536de0bda)
2020-08-12tcp: fix persist assertFlorin Coras1-4/+1
Type: fix Persist and retransmit can pop at the same time. Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia9530645cc84c83a881a75d7b4627197dc50ed29 (cherry picked from commit a6696719cb9fcd8ab54a5007e91dac6aeffe4e70)
2020-08-12tcp: fix scoreboard assertFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3c70b331932708a1b773392e089aed9dba9b3b31 (cherry picked from commit edf1da94dc099c6e2ab1d455ce8652fada3cdb04)
2020-08-12tcp: fix last sacked with no holesFlorin Coras1-0/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id12b0a9b8bc47aef8b393544e5b4c8228ed6a606 (cherry picked from commit 479f7fec6a876bf06f6007c03fd7b9fa3404df54)
2020-08-12tcp: fix duplicate sack whith renegingFlorin Coras1-6/+9
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I6f7fb91e059996ff702eb9c36e3abaed237fe221 (cherry picked from commit 067f8f963d64b1cbc70f2b78ebd2c6d3791e7d22)
2020-08-12tcp: fix rate samples for old acksFlorin Coras1-2/+24
Type: fix Change-Id: Ieab35bbfba81faae61b1267d8661df5195877824 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 2f04cb9f142abef82cd379432cecdafef9e776db)
2020-08-12tcp: accept sack reneging as a cc eventFlorin Coras1-4/+4
Type: fix Change-Id: Iead1303ca3dec7593eb3ce54f291b82d94c821a4 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 1de7167e7a12a80cc5996959aeb1fbe4b2853ccb)
2020-08-12tcp: fix tail rescue with sacksFlorin Coras1-5/+7
Type: fix Change-Id: Iad73f47cef3d29c4b0b7d1f58f2f2b14ba4b1d38 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 3eba7f1575a17b77924bf5be67b03b0227d04b78)
2020-08-12tcp: invalidate expired timer handles before dispatchingFlorin Coras3-25/+29
Type: fix Change-Id: Icc8cd05cb9c1844a9f8b0399797ad554f4ccf1a1 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit b72a0ff73514ec7ea79ed3fad49b77d56b248642)
2020-04-29vlib: add ASSERT to vlib_time_now(...)Dave Barach1-1/+2
Calling vlib_time_now (&vlib_global_main) from a worker thread is a bad mistake. ASSERT (vm->thread_index == __os_thread_index) will catch it. Type: fix Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I55af6de84e06143f8f43adc62103b77267a7a441 (cherry picked from commit 77d98382824ca211fb55fcf842931930ccfb3baa)
2020-02-06tcp: improve lost rxt heuristicFlorin Coras3-34/+55
Type: feature - retransmit first unacked segment if newer retransmitted packets are acked - avoid spurious retransmits if recovery ends with sacked bytes Change-Id: Ic1b56d22e025822edb7609afb136e47440ea6032 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit b3dce89a768aaffa2a830ba6579cd3d9c8cd967a)
2019-12-03tcp: fix ip check in lookup validationFlorin Coras1-11/+17
Type: fix Change-Id: Ia18632c8fe22bdcfdf3cb48a4234f8703a7ac1d7 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 07df79150f15291af9793397d6182a4168c6bfc5)
2019-11-28tcp: close session on retransmit failureFlorin Coras1-0/+1
Type: fix Since the connection is closed, also mark the session as closed. Change-Id: Ica3849c3ff12fa7a65ba64e563a60d6c94f5ceca Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 52be67435eb4615b899950b42b8ff72d258fbcb3)
2019-11-28tcp: validate the IP address while checking TCP connectionSrikanth Akula1-9/+31
Type: feature Along with the port information, we need to validate the IP address details as well. This is very useful in the case port re-use scenario Signed-off-by: Srikanth Akula <srakula@cisco.com> Change-Id: I11e1ebcd3e56aae47ac235a89606a83c928aa6bb (cherry picked from commit cf4c2102d9dc3ccc939cca1137b24a75341f1b0c)
2019-11-28session tcp: refactor pacer timeFlorin Coras3-18/+6
Type: refactor Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit a8e71c8981f039588a7ca94e6ab66b4ebac784a5)
2019-11-18tcp: avoid retransmits post resetFlorin Coras2-0/+6
Type: fix Change-Id: Ib6a8f5ca597389700e5746f089a5cec7eee65ab5 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit fd4c3fe364becc02527ed5f9088d904c7bc34a6f)
2019-11-18tcp: correct validity check return valueRyujiro Shibuya1-0/+1
Type: fix Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com> Change-Id: Ib59bf664d8da20516d8f16d716c5e8698675da4b (cherry picked from commit 3ea17d54a9a00c81bc672a7be1d48b765ac87ed2)
2019-11-18session tcp: infra for transports to send buffersFlorin Coras2-60/+7
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> (cherry picked from commit 2a7ea2ee92d6dc4800ee21323d3324a9e8449dcf)
2019-11-12tcp: fix retransmit with no sacksFlorin Coras3-10/+18
Type: fix Change-Id: I6f7df0d358f57f7feadb9b7a3fcffb99558b2af8 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit bf1f8b7f288c29bfcc128b1d09eae1c1eac2b7cc)
2019-11-05tcp: track lost rxt segments in byte trackerFlorin Coras2-0/+5
Type: feature Change-Id: I18dfac9c3d2f539edf20dba64cd2b7b541154144 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 46ec6e018e95a10d46d018dbc15d90c309b5dccc)
2019-11-05tcp: rx fifo size is u32Dave Wallace1-2/+18
- Limit cli input for rx fifo size to u32 Type: fix Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: If5a8e0668acf5b0f369acf4f120e47a012bd1899 (cherry picked from commit db39656d7a85ac6e9e6fbed9ea59b3089acc8cae)
2019-11-05tcp: avoid sending acks when data availableFlorin Coras3-5/+24
Type: fix Change-Id: I02e2cb2d349f9ddb2bfed040a08ca448f379d565 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit cb711a4ec908b89edc9da29d3c2e093dab85fbbf)
2019-10-31tcp: correct tcp connection lookup conditionRyujiro Shibuya1-7/+10
Type: fix Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com> Change-Id: Ibdbac568d5f765e6b5c959cab5e32dc33335064d (cherry picked from commit c8be851161739d9f0b1c4bfbda4e991461ff0bc9)
2019-10-31tcp: improve rate samples for retansmitted segmentsFlorin Coras3-77/+184
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> (cherry picked from commit d6ae4bf13a7819d64d128d196d491af4700fa948)
2019-10-31tcp: fix sack retransmit beyond snd_nxtFlorin Coras2-2/+13
Type: fix Ensure that sack retransmit logic does not try to inadvertently send new data. Change-Id: Idfda19643577d9c1b58e2af8d8283cabfbaf98e6 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 81cb8e4092991d3fd1e24f0862c12548a2d4c714)
2019-10-31tcp: Init cwnd from ssthresh.Sergey Ivanushkin2-2/+38
Set high ssthresh out of the box and make configurable Type: fix Signed-off-by: Sergey Ivanushkin <sergey.ivanushkin@enea.com> Change-Id: Iba1549b4ee55e51468ad0b28ef3d26a85fa9cae0 (cherry picked from commit c30318da220953610820a2e7cd957da7046eaf4b)
2019-10-31tcp: avoid head retransmit if scoreboard has no holesFlorin Coras2-3/+2
Type: fix Change-Id: I6164ad0d97cd91b60c85302eff691836d12a0a70 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 8a8b05c526883fe34b83239a3c4f56087d1df9e5)
2019-10-29tcp: fix mss flag in option parsingFlorin Coras1-1/+1
Type: fix Change-Id: Ib03151a097caf15e4e8285afea83d1b930a874b0 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit a9e1f7b99bcb2164f3481cf48134d4efe7319c04)
2019-10-29tcp: refactor flags into cfg and conn flagsFlorin Coras4-31/+89
Type: refactor Change-Id: Ib5e2ecf55732599e1322736e3662178c9da49c7d Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit bbcfaac9571004d87998684c123354667b726532)
2019-10-29tcp: improve pacing after idle send periodsFlorin Coras3-70/+105
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> (cherry picked from commit c31dc31f84961033ecb6354811e0c360b6cf5f79)
2019-10-27tcp: retry lost retransmitsFlorin Coras4-148/+179
Add heuristic that detects lost retransmitted segments and retries sending them. Type: feature Change-Id: I34d1bb16799e1993779222eb2bfad4b40704159e Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit be237bf02382854118986e8ea84c7544e42023f2)
2019-10-22tcp: fix tso not work in single buffer issueSimon Zhang2-6/+9
Type: fix Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> Change-Id: Iddb6fd41812e8c97af58859ef43279cfc0f9d1df Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> (cherry picked from commit 8a047ed741072bdb8d93b0841473eae06ae3c9d0)
2019-10-18tcp: rate sample for persist segmentsFlorin Coras1-0/+6
Type: fix Change-Id: I7c38d2ad6364f098529f51c15b533eb234b82716 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit dd60b1b128d8d6c07dc8b8bcbf932b808cedbaab)
2019-10-11session: fix use-after-freeBenoît Ganne1-1/+1
Make sure to reinitialize data before free-ing it. Type: fix Change-Id: I45727c456d0345204d4825ecdd9690c5ebeb5e94 Signed-off-by: Benoît Ganne <bganne@cisco.com> (cherry picked from commit d4aeb84c3f066b755b723163da292eab95bd1ef9)
2019-10-10tcp: custom checksum calculations for Ipv4/Ipv6Srikanth A2-22/+97
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
2019-10-03session: fix cleanup in closing statesFlorin Coras1-0/+2
Type: fix Change-Id: Iccc283bb98d3bb459a711ec2b74d6a32ad12903b Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 54c93cfc2556d9c6d2cf472f51d4c2866a556ef6)
2019-10-02tcp: use sacks for timer based recoveryFlorin Coras7-277/+311
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> (cherry picked from commit 36ebcfffbc7ab0e83b4bb8dfaec16bf16cafb954)
2019-09-30tcp: fix unformat cwnd multiplierFlorin Coras1-16/+18
Type: fix Change-Id: Ife4e650cb8b16f84ca6f77ba7b1d17a0f452fc3f Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 1df833e6deecaa1ca68d6e98af7fb109fc0ca18a)
2019-09-30tcp: refactor congestion event handlingFlorin Coras1-40/+36
Type: refactor Minor cleanup to congestion event handling. Change-Id: I7179ff9e21c1853382ba814652c9024f3e5b8a37 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit afef8bf22369d10ab8107a63b1e3529ed7dd6c8d)
2019-09-30tcp: compute snd time for rate sampleFlorin Coras2-6/+11
Type: feature Change-Id: I6bd675dc28dbc34293e895911efe986844c0564f Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 7436b436733ea7217e745f3cc9971aaff1e3dfa4)
2019-09-30session: improve cliFlorin Coras1-0/+2
Type: feature Allow session cli filtering based on thread index, transport protocol, session state and range of session pool indices. For instance show session thread 1 proto tcp state ready range 0 20 verbose Shows the session ids for the first 20 tcp sessions in thread 1 that are in ready state. To avoid excessive output that could reasult in the worker barrier being held by the main thread for long periods of time, the session cli will only output: - session ids (verbose == 1) for a maximum of 50 sessions / worker - verbose > 1 details for a maximum of 10 sessions Change-Id: I2cfb351b548e2e0a1d5b4345810be613e2917d17 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 5bb23ecd098eac639641e2b3d62eb8744e0efef0)
2019-09-29tcp: use rate sample rtt in recovery if possibleFlorin Coras1-6/+14
If in recovery and rate samples are taken for burts that have not been retransmitted, use the rtt estimate. Type: feature Change-Id: I95028f492008457c959157aa4ee4c3435fa9c3f0 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 1dbda64b467f020db131cb9a01422b8f3fbf58df)
2019-09-29tcp: cleanup scoreboard after recoveryFlorin Coras1-0/+7
Type: fix When recovering from congestion, remove last hole in scoreboard if it covers all bytes sent above snd_congestion. Change-Id: I752accd4590cd9bf553c35a1bb40a38c308c04f5 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 321cfa5fcb8f347329a5296e2024ef0e6cef319f)
2019-09-29tcp: handle sack renegingFlorin Coras3-92/+126
Type: feature Change-Id: I201155b1b92cf7e57310af726879dab039090582 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 558e3e09577a7b49e2fec58e8ac27f3f3ae0592f)