Page MenuHomeFreeBSD

tuexen (Michael Tuexen)
User

Projects

User Details

User Since
Feb 4 2016, 4:45 PM (246 w, 3 d)

Recent Activity

Thu, Oct 22

tuexen accepted D26808: TCP Cubic: improve reaction to (and rollback from) RTO.
Thu, Oct 22, 2:30 PM
tuexen accepted D26807: move cwnd and ssthresh updates into individual congestion control module.
Thu, Oct 22, 2:27 PM

Wed, Oct 21

tuexen requested review of D26897: Improve ioctl() for listening TCP sockets.
Wed, Oct 21, 10:08 PM

Fri, Oct 16

tuexen committed rS366750: Improve the handling of cookie life times..
Improve the handling of cookie life times.
Fri, Oct 16, 10:45 AM

Fri, Oct 9

tuexen accepted D26446: Stop sending tiny new data segments during SACK recovery.
Fri, Oct 9, 10:16 AM

Thu, Oct 8

tuexen accepted D26518: Extend netstat to display TCP stack and detailed congestion state.
Thu, Oct 8, 2:26 PM
tuexen accepted D26446: Stop sending tiny new data segments during SACK recovery.
Thu, Oct 8, 1:03 PM

Tue, Oct 6

tuexen committed rS366489: Reset delayed SACK state when restarting an SCTP association..
Reset delayed SACK state when restarting an SCTP association.
Tue, Oct 6, 2:26 PM
tuexen committed rS366483: Ensure variables are initialized before used..
Ensure variables are initialized before used.
Tue, Oct 6, 11:29 AM
tuexen committed rS366482: Remove dead stores reported by clang static code analysis.
Remove dead stores reported by clang static code analysis
Tue, Oct 6, 11:09 AM
tuexen committed rS366480: Cleanup, no functional change intended..
Cleanup, no functional change intended.
Tue, Oct 6, 10:41 AM
tuexen committed rS366474: Whitespace changes..
Whitespace changes.
Tue, Oct 6, 9:51 AM

Sun, Oct 4

tuexen committed rS366426: Use __func__ instead of __FUNCTION__ for consistency..
Use __func__ instead of __FUNCTION__ for consistency.
Sun, Oct 4, 3:37 PM
tuexen committed rS366425: Cleanup, no functional change intended..
Cleanup, no functional change intended.
Sun, Oct 4, 3:22 PM
tuexen added a comment to D26652: Implement SO_RERROR.

what other OSes share this API now?

I originally implemented on NetBSD and ported it to DragonFly BSD.
OpenBSD has an API which dhcpcd also uses which is specific to the route(4) API where it sends a RTM_DESYNC message.
The irony being it has to send a message on a socket which has already overflowed.

Maybe one can force that such a message (only one) is appended to the socket buffer even if it is full.

I believe they have a system where if the message doesn't fit they flush some or all of the buffer to ensure it does.

This API covers all sockets and is not limited to route(4) and thus has greater application outside of dhcpcd.

Well, I'm not sure how useful it is for, let's say, UDP based communication. UDP is unreliable. Any application can't assume that it sees all messages. A receiver buffer overflow is only one reason why a message can not be delivered. So why should I care as an application writer?

For example, a syslogd implementation could use it to notify the admin that potentially important messages have been lost - ie from, over the network.

How would you know that a packet is dropped in the network?

It could also be dropped locally.
We recently increased the size of some buffers on NetBSD as we discovered boot time messages from some daemons were being discarded as some apps were too noisy on startup.
UDP is an unreliable network protocol sure - but in this patch you will note that I have solved some comments such as /* should notify about lost packet */

Linux as an equivalent socket option like this, but it only applies to their equivalent of route(4).

I think it makes sense to limit the scope...

Well, any fix needs to go into the raw sockets code where the call to sbappendaddr() fails.
Once that is realised then it makes sense to try and cover all uses of sbappendaddr() with a generic API.
From a dhcpcd perspective I only care about route(4), but as an engineer I see a chance to do better.
Remember, this is opt-in.

what other OSes share this API now?

I originally implemented on NetBSD and ported it to DragonFly BSD.
OpenBSD has an API which dhcpcd also uses which is specific to the route(4) API where it sends a RTM_DESYNC message.
The irony being it has to send a message on a socket which has already overflowed.

Maybe one can force that such a message (only one) is appended to the socket buffer even if it is full.

This API covers all sockets and is not limited to route(4) and thus has greater application outside of dhcpcd.

Well, I'm not sure how useful it is for, let's say, UDP based communication. UDP is unreliable. Any application can't assume that it sees all messages. A receiver buffer overflow is only one reason why a message can not be delivered. So why should I care as an application writer?

For example, a syslogd implementation could use it to notify the admin that potentially important messages have been lost - ie from, over the network.

How would you know that a packet is dropped in the network?

I don't know if a packet is dropped in the network.
We do know if a packet is dropped in the host, and this allows an action to be taken on that.
As it stands now everything is silently discarded.

Correct.

Linux as an equivalent socket option like this, but it only applies to their equivalent of route(4).

I think it makes sense to limit the scope...

Why would you want to limit the scope?

Because an application writer might get the impression that he/she will be notified if an incoming packet was dropped. This is not true since this patch only covers one of many reasons. If any application wants to detect this, it should add some sequence numbers to the data and it will know.

Sun, Oct 4, 9:55 AM

Sat, Oct 3

tuexen added a comment to D26652: Implement SO_RERROR.

what other OSes share this API now?

I originally implemented on NetBSD and ported it to DragonFly BSD.
OpenBSD has an API which dhcpcd also uses which is specific to the route(4) API where it sends a RTM_DESYNC message.
The irony being it has to send a message on a socket which has already overflowed.

Maybe one can force that such a message (only one) is appended to the socket buffer even if it is full.

This API covers all sockets and is not limited to route(4) and thus has greater application outside of dhcpcd.

Well, I'm not sure how useful it is for, let's say, UDP based communication. UDP is unreliable. Any application can't assume that it sees all messages. A receiver buffer overflow is only one reason why a message can not be delivered. So why should I care as an application writer?

For example, a syslogd implementation could use it to notify the admin that potentially important messages have been lost - ie from, over the network.

How would you know that a packet is dropped in the network?

Linux as an equivalent socket option like this, but it only applies to their equivalent of route(4).

I think it makes sense to limit the scope...

Sat, Oct 3, 8:53 PM

Thu, Oct 1

tuexen committed rS366335: MFS r366324:.
MFS r366324:
Thu, Oct 1, 6:18 PM
tuexen committed rS366329: MFC r366248:.
MFC r366248:
Thu, Oct 1, 4:53 PM
tuexen committed rS366326: MFC r366226:.
MFC r366226:
Thu, Oct 1, 4:26 PM
tuexen committed rS366325: MFC r366199:.
MFC r366199:
Thu, Oct 1, 4:24 PM
tuexen committed rS366324: MFC r366198:.
MFC r366198:
Thu, Oct 1, 4:23 PM
tuexen committed rS366323: MFC r366114:.
MFC r366114:
Thu, Oct 1, 4:23 PM
tuexen committed rS366322: MFC r365688:.
MFC r365688:
Thu, Oct 1, 4:19 PM
tuexen committed rS366321: MFC r365687:.
MFC r365687:
Thu, Oct 1, 4:14 PM
tuexen committed rS366320: MFC r365686:.
MFC r365686:
Thu, Oct 1, 4:11 PM
tuexen committed rS366319: MFC r365685:.
MFC r365685:
Thu, Oct 1, 4:09 PM

Tue, Sep 29

tuexen committed rS366248: Improve the input validation and processing of cookies..
Improve the input validation and processing of cookies.
Tue, Sep 29, 9:36 AM

Mon, Sep 28

tuexen committed rS366226: Minor cleanup..
Minor cleanup.
Mon, Sep 28, 2:12 PM

Sun, Sep 27

tuexen committed rS366199: Cleanup, no functional change intended..
Cleanup, no functional change intended.
Sun, Sep 27, 1:32 PM
tuexen committed rS366198: Improve the handling of receiving unordered and unreliable user.
Improve the handling of receiving unordered and unreliable user
Sun, Sep 27, 1:24 PM

Sep 24 2020

tuexen accepted D22438: Improve NewReno after_idle ssthresh per RFC2861 Sec.2.
Sep 24 2020, 2:19 PM
tuexen committed rS366114: Whitespace changes..
Whitespace changes.
Sep 24 2020, 12:26 PM

Sep 22 2020

tuexen added a comment to D26518: Extend netstat to display TCP stack and detailed congestion state.

Not sure about showing the TCP stack name and the TCP congestion under the same flag. The TCP congestion control name scales to other transports, the TCP stack name doesn't.

Sep 22 2020, 4:06 PM

Sep 21 2020

tuexen added inline comments to D26518: Extend netstat to display TCP stack and detailed congestion state.
Sep 21 2020, 9:21 PM

Sep 20 2020

tuexen accepted D26478: TCP: Send full Initial Window when Timestamps are in use.
Sep 20 2020, 8:00 PM
tuexen added a comment to D26478: TCP: Send full Initial Window when Timestamps are in use.

Another question: what about RACK and BBR? Do they need a similar change?

Sep 20 2020, 10:18 AM

Sep 19 2020

tuexen added inline comments to D26478: TCP: Send full Initial Window when Timestamps are in use.
Sep 19 2020, 10:38 PM

Sep 13 2020

tuexen committed rS365688: Add a -C option to netstat to display the congestion control for.
Add a -C option to netstat to display the congestion control for
Sep 13 2020, 9:14 AM
tuexen closed D26414: Extend netstat to display the TCP congestion control.
Sep 13 2020, 9:14 AM
tuexen closed D26413: Extend sockstat to display the TCP congestion control.
Sep 13 2020, 9:12 AM
tuexen committed rS365687: Add a -C option to sockstat to display the congestion control for TCP.
Add a -C option to sockstat to display the congestion control for TCP
Sep 13 2020, 9:12 AM
tuexen closed D26412: Export TCP congestion control name.
Sep 13 2020, 9:07 AM
tuexen committed rS365686: Export the name of the congestion control. This will be used by sockstat.
Export the name of the congestion control. This will be used by sockstat
Sep 13 2020, 9:07 AM
tuexen closed D26410: Allow specifying the traffic class when using traceroute6.
Sep 13 2020, 9:00 AM
tuexen committed rS365685: Add a -t option to traceroute6 to control the traffic class used when.
Add a -t option to traceroute6 to control the traffic class used when
Sep 13 2020, 9:00 AM

Sep 12 2020

tuexen added inline comments to D26412: Export TCP congestion control name.
Sep 12 2020, 10:12 PM
tuexen updated the diff for D26412: Export TCP congestion control name.

Move CC name up as suggested by Richard.

Sep 12 2020, 10:12 PM
tuexen added inline comments to D26413: Extend sockstat to display the TCP congestion control.
Sep 12 2020, 10:05 PM
tuexen updated the diff for D26413: Extend sockstat to display the TCP congestion control.

Address Richard's comment.

Sep 12 2020, 10:03 PM
tuexen added a comment to D26410: Allow specifying the traffic class when using traceroute6.

In the man page, do we want to refer to RFC2474 and RFC3168, so that people are at least warned when the tos / tclass bytes are using not only the DSCP field, but also the ECN codepoints in ping / ping6 / traceroute / traceroute6?

Sep 12 2020, 9:37 PM
tuexen added a comment to D26414: Extend netstat to display the TCP congestion control.

Perhaps it is better to match sockstat (D26413) and make the option -C instead of -c.

Sep 12 2020, 6:04 PM
tuexen updated the diff for D26414: Extend netstat to display the TCP congestion control.

Use -C instead of -c.

Sep 12 2020, 6:03 PM
tuexen requested review of D26414: Extend netstat to display the TCP congestion control.
Sep 12 2020, 2:43 PM
tuexen requested review of D26413: Extend sockstat to display the TCP congestion control.
Sep 12 2020, 2:06 PM
tuexen requested review of D26412: Export TCP congestion control name.
Sep 12 2020, 2:04 PM
tuexen requested review of D26410: Allow specifying the traffic class when using traceroute6.
Sep 12 2020, 1:01 PM
tuexen committed rS365658: Fix the length of probe packets when using UDP..
Fix the length of probe packets when using UDP.
Sep 12 2020, 11:25 AM
tuexen committed rS365657: Simplify code, no functional change..
Simplify code, no functional change.
Sep 12 2020, 11:20 AM
tuexen added a comment to D26409: Add IP(V6)_VLAN_PCP to adjust 802.1 priority per-flow..

Please add some documentation for the SOL_SOCKET level socket option SO_VLAN_PCP to the man page lib/libc/sys/getsockopt.2.

Sep 12 2020, 8:37 AM

Sep 10 2020

tuexen committed rS365604: MFC r350061:.
MFC r350061:
Sep 10 2020, 6:04 PM
tuexen committed rS365601: MFC r356417 (from rrs):.
MFC r356417 (from rrs):
Sep 10 2020, 5:49 PM
tuexen committed rS365598: MFC r353490 (from rrs):.
MFC r353490 (from rrs):
Sep 10 2020, 5:44 PM
tuexen committed rS365597: MFC r352661 (from rrs):.
MFC r352661 (from rrs):
Sep 10 2020, 5:41 PM
tuexen committed rS365596: MFC r351782:.
MFC r351782:
Sep 10 2020, 5:31 PM
tuexen committed rS365595: MFC r351328 (by rrs):.
MFC r351328 (by rrs):
Sep 10 2020, 5:29 PM
tuexen committed rS365594: MFC r350973 (from rrs):.
MFC r350973 (from rrs):
Sep 10 2020, 5:26 PM
tuexen committed rS365591: MFC r364754:.
MFC r364754:
Sep 10 2020, 5:13 PM
tuexen committed rS365590: MFC r357816 (from rrs).
MFC r357816 (from rrs)
Sep 10 2020, 5:04 PM
tuexen committed rS365589: MFC r357100:.
MFC r357100:
Sep 10 2020, 5:00 PM
tuexen committed rS365587: MFC r358023:.
MFC r358023:
Sep 10 2020, 4:47 PM
tuexen committed rS365586: MFC r357116:.
MFC r357116:
Sep 10 2020, 4:44 PM
tuexen committed rS365585: MFC r357115:.
MFC r357115:
Sep 10 2020, 3:58 PM
tuexen committed rS365573: MFC r357114:.
MFC r357114:
Sep 10 2020, 1:45 PM
tuexen committed rS365572: MFC r356235:.
MFC r356235:
Sep 10 2020, 1:28 PM
tuexen committed rS365571: MFC r357101:.
MFC r357101:
Sep 10 2020, 1:17 PM
tuexen committed rS365570: MFC r358621:.
MFC r358621:
Sep 10 2020, 1:15 PM
tuexen committed rS365569: MFC r359926:.
MFC r359926:
Sep 10 2020, 12:55 PM
tuexen committed rS365568: MFC r359487:.
MFC r359487:
Sep 10 2020, 12:53 PM
tuexen committed rS365567: MFC 359422:.
MFC 359422:
Sep 10 2020, 12:49 PM
tuexen committed rS365565: MFC r361081:.
MFC r361081:
Sep 10 2020, 12:01 PM
tuexen committed rS365564: MFC r361752:.
MFC r361752:
Sep 10 2020, 11:56 AM
tuexen committed rS365563: MFC r364089:.
MFC r364089:
Sep 10 2020, 11:46 AM
tuexen committed rS365562: MFC r364054:.
MFC r364054:
Sep 10 2020, 11:45 AM
tuexen committed rS365561: MFC r361750:.
MFC r361750:
Sep 10 2020, 11:43 AM

Sep 9 2020

tuexen accepted D26384: Add -z "TOS" option to ping6, to test DSCP/ECN values.
Sep 9 2020, 11:16 PM

Sep 1 2020

tuexen accepted D26269: Another syzkaller crash.

I ran the reproducers for RAVK and BBR and the problem does not show up anymore.

Sep 1 2020, 10:29 PM
tuexen retitled D26269: Another syzkaller crash from Another skyzall crash to Another syzkaller crash.
Sep 1 2020, 10:28 PM

Aug 29 2020

tuexen committed rS364948: MFC r364937:.
MFC r364937:
Aug 29 2020, 6:55 AM
tuexen committed rS364947: MFC r364937:.
MFC r364937:
Aug 29 2020, 6:54 AM

Aug 28 2020

tuexen committed rS364937: Fix a regression with the explicit EOR mode I introduced in r364268..
Fix a regression with the explicit EOR mode I introduced in r364268.
Aug 28 2020, 8:05 PM

Aug 25 2020

tuexen accepted D26181: cc_mod: remove unused CCF_DELACK definition.
Aug 25 2020, 1:20 PM
tuexen closed D26120: Don't apply L in congestion avoidance.
Aug 25 2020, 9:43 AM
tuexen committed rS364754: RFC 3465 defines a limit L used in TCP slow start for limiting the number.
RFC 3465 defines a limit L used in TCP slow start for limiting the number
Aug 25 2020, 9:42 AM

Aug 24 2020

tuexen committed rS364651: MFC r364268:.
MFC r364268:
Aug 24 2020, 9:46 AM
tuexen committed rS364644: MFC 364268:.
MFC 364268:
Aug 24 2020, 9:19 AM
tuexen committed rS364643: MFC r363456:.
MFC r363456:
Aug 24 2020, 9:16 AM
tuexen committed rS364642: MFC r363440:.
MFC r363440:
Aug 24 2020, 9:14 AM
tuexen committed rS364641: MFC r363323:.
MFC r363323:
Aug 24 2020, 9:13 AM
tuexen committed rS364640: MFC r363309:.
MFC r363309:
Aug 24 2020, 9:11 AM
tuexen committed rS364639: MFC r363275:.
MFC r363275:
Aug 24 2020, 9:10 AM