aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp_input.c
AgeCommit message (Collapse)AuthorFilesLines
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 Coras1-4/+4
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 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-02-06tcp: improve lost rxt heuristicFlorin Coras1-32/+42
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: 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 Coras1-3/+1
Type: refactor Change-Id: Ic1c3e1f7987702cd88972acc34849dc1f585d5fe Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit a8e71c8981f039588a7ca94e6ab66b4ebac784a5)
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-12tcp: fix retransmit with no sacksFlorin Coras1-2/+5
Type: fix Change-Id: I6f7df0d358f57f7feadb9b7a3fcffb99558b2af8 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit bf1f8b7f288c29bfcc128b1d09eae1c1eac2b7cc)
2019-11-05tcp: avoid sending acks when data availableFlorin Coras1-1/+4
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: fix sack retransmit beyond snd_nxtFlorin Coras1-0/+6
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: avoid head retransmit if scoreboard has no holesFlorin Coras1-2/+0
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 Coras1-7/+9
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 Coras1-22/+39
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 Coras1-132/+118
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-02tcp: use sacks for timer based recoveryFlorin Coras1-145/+141
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: 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-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 Coras1-88/+120
Type: feature Change-Id: I201155b1b92cf7e57310af726879dab039090582 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 558e3e09577a7b49e2fec58e8ac27f3f3ae0592f)
2019-09-29tcp: enable gso in tcp hoststackSimon Zhang1-0/+37
Type: feature Change-Id: If68d07fbe8c6f7fffd2f93c7e854367082927e4f Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> (cherry picked from commit 1146ff4bcd336d8efc19405f1d83914e6115a01f)
2019-09-29tcp: cc algos handle cwnd on congestion signalFlorin Coras1-12/+1
Type: refactor Change-Id: I15b10a22d0d0b83075a0eef5ef8c09cf76989866 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 8b4114e52f69b9292efb282e49ed4d90699ceeb8)
2019-09-28tcp: track zero rwnd errorsFlorin Coras1-0/+7
Type: feature Distinguish between rcv window errors and errors after we advertised a zero rcv window, i.e., potential window probes. Change-Id: I6cb453c7aaae456c0a05a8328cfaa55eaca10bf7 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit a495a3ea146a8484dac9f6b594fb2b044437c7a4)
2019-09-24tcp: add option for always on event loggingFlorin Coras1-33/+31
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> (cherry picked from commit a436a42221280888acd09858c7353e694c359bca)
2019-09-20tcp: set cc_algo on connection allocFlorin Coras1-5/+2
Type: feature Change-Id: Ie00329b11e26cab5db64b9c006171d283854c8ef Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 12f6936cd8f69f17820ef749515fcf4d50001c60)
2019-08-14tcp: extend protocol configurationv19.08-rc2Florin Coras1-15/+18
Type: feature Ticket: VPP-1736 Expose more configuration parameters and refactor some of the existing ones. Change-Id: If44c31ff77ce3d7e8da67d39a4ff61346bdf5ccc Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit 9094b5c319d3f072d3c248fe7c876e4048c13ac2)
2019-08-12tcp: handle fin+rst+syn in closing stateFlorin Coras1-0/+2
Type: fix Ticket: VPP-1736 Change-Id: I32d4d4a5de04e89087f4ab4a5c425eda572932a8 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-09tcp: cleanup timersFlorin Coras1-3/+0
Type:refactor Change-Id: I37dbc8b55827d66c2578d6ab8b86ed7e18198aa6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-08-02tcp: add more connection statsFlorin Coras1-0/+14
Type:feature Change-Id: If02884d0f1f26bfe31ec609ea9611cb27b699868 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-26session tcp: handle rxt and acks as custom eventsFlorin Coras1-92/+17
Type: feature Control ack generation and retransmissions with session layer scheduler. Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-23tcp: generate closed notifications whenever tcp closesFlorin Coras1-0/+2
Type: fix This gives the session layer a chance to to cleanup events. Change-Id: I7499e94acf06340e2b19a1d91a4c61a63cd66c52 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-17tcp: add node with no 6-tuple lookupVladimir Kropylev1-22/+96
Type: feature Add new node in TCP stack where TCP 6 tuple lookup is not required. In new node, packet metadata contains connection-index which can be used to retrieve the TCP connection. The new node will be used by proxy. Change-Id: I3aa0268946898912f4176d5c8c5903e06657479d Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
2019-07-15session: allow transports to generate closed notificationsFlorin Coras1-0/+2
In contrast to the closing notification, whereby a transport informs the session layer that is beginning the closing procedure, this allows transports to notify the session layer of the fact that the transport is "fully" closed, i.e., it expects no more data. Also: - adds app closed state for sessions - changes tcp to have it notify when an active close has finished Type: feature Change-Id: I13c738006c03f85015e05ab82843a33a69382aaf Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-09tcp: track last lost bytes in sack sbFlorin Coras1-3/+9
Type:feature Change-Id: I687809ebcc759cec8cb1d5c3b2b7e6bc995a7985 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-05tcp: timestamp adjustmentVladimir Kropylev1-1/+1
Type: feature Change-Id: Icb3c574100cde95ab5be4923c8739889cf7e48c6 Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
2019-07-05tcp: add cc algo undo recovery notificationFlorin Coras1-18/+9
Type:feature Change-Id: Iedefe87555f0a0033abed8569bc2995c8f523d7e Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-05tcp: add loss signal to cc algoFlorin Coras1-5/+16
Type:feature Change-Id: Ibe1a4c555b55fb929d55b02599aaf099ed522cdf Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-28tcp: reject out-of-order finsFlorin Coras1-0/+4
Type:fix Change-Id: Iab2c308739f7733dbf70953e0ea87dcc404c60da Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-28tcp: fix close-waiting check for outstanding tx dataFlorin Coras1-1/+2
Type: fix Change-Id: I9e0e1bb933c38b17ac9fb8bf11b81e2fed021bf8 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25tcp: delivery rate estimatorFlorin Coras1-12/+17
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-17session: use listener_handle instead of listener_indexNathan Skrzypczak1-1/+1
Type: refactor Change-Id: I97fa59a0ba0b6b7a98698926020ffffcf6ae6ba3 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>