tcp: improve stats

Change-Id: I9ab11ba9f958c679112eb22c8db39cb269a29dc7
Signed-off-by: Florin Coras <fcoras@cisco.com>
This commit is contained in:
Florin Coras
2018-04-18 13:20:18 -07:00
committed by Marco Varlese
parent 8e1039a823
commit 00cd22d627
3 changed files with 177 additions and 128 deletions

View File

@ -17,18 +17,17 @@ tcp_error (LENGTH, "inconsistent ip/tcp lengths")
tcp_error (NO_LISTENER, "no listener for dst port")
tcp_error (LOOKUP_DROPS, "lookup drops")
tcp_error (DISPATCH, "Dispatch error")
tcp_error (ENQUEUED, "Packets pushed into rx fifo")
tcp_error (ENQUEUED, "Packets pushed into rx fifo")
tcp_error (ENQUEUED_OOO, "OOO packets pushed into rx fifo")
tcp_error (FIFO_FULL, "Packets dropped for lack of rx fifo space")
tcp_error (PARTIALLY_ENQUEUED, "Packets partially pushed into rx fifo")
tcp_error (PURE_ACK, "Pure acks")
tcp_error (SEGMENT_OLD, "Old segment")
tcp_error (SEGMENT_INVALID, "Invalid segments")
tcp_error (SYNS_RCVD, "SYNs received")
tcp_error (SYN_ACKS_RCVD, "SYN-ACKs received")
tcp_error (NOT_READY, "Session not ready for packets")
tcp_error (FIFO_FULL, "Packets dropped for lack of rx fifo space")
tcp_error (EVENT_FIFO_FULL, "Events not sent for lack of event fifo space")
tcp_error (API_QUEUE_FULL, "Sessions not created for lack of API queue space")
tcp_error (CREATE_SESSION_FAIL, "Sessions couldn't be allocated")
tcp_error (SEGMENT_INVALID, "Invalid segments")
tcp_error (SEGMENT_OLD, "Old segment")
tcp_error (ACK_OK, "Pure ACKs received")
tcp_error (ACK_INVALID, "Invalid ACK")
tcp_error (ACK_DUP, "Duplicate ACK")
tcp_error (ACK_OLD, "Old ACK")
@ -36,9 +35,13 @@ tcp_error (ACK_FUTURE, "Future ACK")
tcp_error (PKTS_SENT, "Packets sent")
tcp_error (FILTERED_DUPACKS, "Filtered duplicate ACKs")
tcp_error (RST_SENT, "Resets sent")
tcp_error (RST_RCVD, "Resets received")
tcp_error (INVALID_CONNECTION, "Invalid connection")
tcp_error (NO_WND, "No window")
tcp_error (CONNECTION_CLOSED, "Connection closed")
tcp_error (CREATE_EXISTS, "Connection already exists")
tcp_error (PUNT, "Packets punted")
tcp_error (FILTERED, "Packets filtered")
tcp_error (FILTERED, "Packets filtered")
tcp_error (OPTIONS, "Could not parse options")
tcp_error (PAWS, "PAWS check failed")
tcp_error (RCV_WND, "Segment not in receive window")
tcp_error (FIN_RCVD, "FINs received")

File diff suppressed because it is too large Load Diff

View File

@ -1826,6 +1826,12 @@ tcp46_output_inline (vlib_main_t * vm,
if (PREDICT_FALSE
(vnet_buffer (b0)->tcp.flags & TCP_BUF_FLAG_DUPACK))
{
/* N.B. Should not filter burst of dupacks. Two issues:
* 1) dupacks open cwnd on remote peer when congested
* 2) acks leaving should have the latest rcv_wnd since the
* burst may have eaten up all of it, so only the old ones
* could be filtered.
*/
if (!tcp_session_has_ooo_data (tc0))
{
error0 = TCP_ERROR_FILTERED_DUPACKS;