summaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp_debug.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2017-04-26 00:08:42 -0700
committerFlorin Coras <fcoras@cisco.com>2017-05-01 10:41:44 -0700
commitc28764fd356632763614ea579f678d8f55eca4c7 (patch)
tree2c46999bc9474a5604f057812e6c25a821621b2c /src/vnet/tcp/tcp_debug.h
parent63c7e14f2e62caa1246349cfe341a93176ec4a43 (diff)
TCP ooo reception fixes
- Improve svm fifo handling of out-of-order segments - Ensure tsval_recent is updated only if rcv_las falls withing the segments's sequence space - Avoid directly dropping old ACKs - Improve debugging Change-Id: I88dbe2394a0ad7eb389a4cc12d013a13733953aa Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/tcp/tcp_debug.h')
-rwxr-xr-xsrc/vnet/tcp/tcp_debug.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/vnet/tcp/tcp_debug.h b/src/vnet/tcp/tcp_debug.h
index ecbf78874fb..b4497a3b8d8 100755
--- a/src/vnet/tcp/tcp_debug.h
+++ b/src/vnet/tcp/tcp_debug.h
@@ -50,6 +50,7 @@
_(CC_EVT, "cc event") \
_(CC_PACK, "cc partial ack") \
_(SEG_INVALID, "invalid segment") \
+ _(PAWS_FAIL, "failed paws check") \
_(ACK_RCV_ERR, "invalid ack") \
_(RCV_WND_SHRUNK, "shrunk rcv_wnd") \
@@ -382,6 +383,20 @@ typedef enum _tcp_dbg_evt
ed->data[4] = _tc->rcv_wnd; \
}
+#define TCP_EVT_PAWS_FAIL_HANDLER(_tc, _seq, _end, ...) \
+{ \
+ ELOG_TYPE_DECLARE (_e) = \
+ { \
+ .format = "paws fail: seq %u end %u tsval %u tsval_recent %u", \
+ .format_args = "i4i4i4i4", \
+ }; \
+ DECLARE_ETD(_tc, _e, 4); \
+ ed->data[0] = _seq - _tc->irs; \
+ ed->data[1] = _end - _tc->irs; \
+ ed->data[2] = _tc->opt.tsval; \
+ ed->data[3] = _tc->tsval_recent; \
+}
+
#define TCP_EVT_ACK_RCV_ERR_HANDLER(_tc, _type, _ack, ...) \
{ \
ELOG_TYPE_DECLARE (_e) = \