diff --git a/tools/tcpstates.py b/tools/tcpstates.py index 616c2b743694..5c04f4523f8a 100755 --- a/tools/tcpstates.py +++ b/tools/tcpstates.py @@ -159,8 +159,12 @@ ipv6_events.perf_submit(args, &data6, sizeof(data6)); } - u64 ts = bpf_ktime_get_ns(); - last.update(&sk, &ts); + if (args->newstate == TCP_CLOSE) { + last.delete(&sk); + } else { + u64 ts = bpf_ktime_get_ns(); + last.update(&sk, &ts); + } return 0; } @@ -224,8 +228,12 @@ ipv6_events.perf_submit(ctx, &data6, sizeof(data6)); } - u64 ts = bpf_ktime_get_ns(); - last.update(&sk, &ts); + if (state == TCP_CLOSE) { + last.delete(&sk); + } else { + u64 ts = bpf_ktime_get_ns(); + last.update(&sk, &ts); + } return 0;