Page MenuHomeFreeBSD

Add missing dtrace receive and send probes for TCP
ClosedPublic

Authored by tuexen on Jul 20 2018, 8:07 PM.
Tags
None
Referenced Files
F106396210: D16369.diff
Mon, Dec 30, 12:54 AM
Unknown Object (File)
Sun, Dec 22, 6:15 PM
Unknown Object (File)
Sun, Dec 22, 4:10 AM
Unknown Object (File)
Sun, Dec 8, 1:49 AM
Unknown Object (File)
Sun, Dec 8, 1:49 AM
Unknown Object (File)
Sun, Dec 8, 1:49 AM
Unknown Object (File)
Sun, Dec 8, 1:34 AM
Unknown Object (File)
Nov 26 2024, 11:13 AM
Subscribers

Details

Summary

TCP was missing a couple of send and receive probes for dtrace, mostly in the syn-cache handling and the handling of the TIMEWAIT state. This patch fixes that.

Test Plan

Execute the tests from D16288.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 18214

Event Timeline

markj added inline comments.
sys/netinet/tcp_timewait.c
458

I would use an "else" here instead of adding an extra label and goto.

sys/netinet/tcp_timewait.c
458

So you would prefer:

	/*
	 * Acknowledge the segment if it has data or is not a duplicate ACK.
	 */
	if (thflags != TH_ACK || tlen != 0 ||
	    th->th_seq != tw->rcv_nxt || th->th_ack != tw->snd_nxt) {
		TCP_PROBE5(receive, NULL, NULL, m, NULL, th);
		tcp_twrespond(tw, TH_ACK);
	} else {
drop:
		TCP_PROBE5(receive, NULL, NULL, m, NULL, th);
	}
	INP_WUNLOCK(inp);
	m_freem(m);
	return (0);
}

I thought about it, but didn't like the drop label inside an else clause...
Do you really prefer it? If yes, I'll change. Please let me know.

tuexen retitled this revision from Add missing dtrace receive and send probes to Add missing dtrace receive and send probes for TCP.Jul 22 2018, 11:31 AM
sys/netinet/tcp_timewait.c
458

I don't prefer it strongly enough to insist upon it, especially since I don't work on TCP. :) The version here is fine with me.

rrs added inline comments.
sys/netinet/tcp_timewait.c
458

I like it with the label. The drop inside the else is not something
I would like to see.

This revision is now accepted and ready to land.Jul 30 2018, 12:00 PM
This revision was automatically updated to reflect the committed changes.