Page MenuHomeFreeBSD

Allow implicit connection setup for TCP/IPv6
ClosedPublic

Authored by tuexen on Jul 26 2018, 2:52 PM.

Details

Summary

TCP/IPv4 allows an implicit connection setup using sendto. This is used for TTCP and TCP fast open. This patch adds support for this also to TCP/IPv6.
While there, improve some tests for detecting multicast addresses , which are mapped.

Test Plan

Use the attached program to test combinations of mapped and non mapped addresses. In addition, run the attached packetdrill scripts.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

tuexen created this revision.Jul 26 2018, 2:52 PM
kbowling accepted this revision.Jul 29 2018, 9:16 AM

We are appreciative of this work on IP6 robustness.. our use case is local and IP4 currently.

This revision is now accepted and ready to land.Jul 29 2018, 9:16 AM
bz requested changes to this revision.Jul 29 2018, 9:38 AM
bz added a subscriber: bz.

Looks like there is a couple of overlong lines in there which should be wrapped.
Can you put comments at else and endif parts as the blocks are at times rather long and nested, so it would make it easier to find the other bit?

Please reference the IPv4 version if there was a similar change for that in the commit message.

This revision now requires changes to proceed.Jul 29 2018, 9:38 AM
tuexen updated this revision to Diff 45986.Jul 29 2018, 11:40 AM

Try to address issues reported by bz@.

@bz: I tried to address the issues brought up by you. Regarding the IPv4 related commit: There was no IPv6 support (which is added by this patch) and there was no real checking for IPv4 (which is added by this patch). There was no real IPv4 related commit bringing in a corresponding feature. The checks where added to the connect code path, but where missed in the sendto code path...

bz accepted this revision.Jul 29 2018, 11:45 AM

There's an exclamation mark missing at the ##else; like [style(9)]:

#ifdef COMPAT_43
/* A large region here, or other conditional code. */
#else /* !COMPAT_43 */
/* Or here. */
#endif /* COMPAT_43 */

Apart from that, thanks! :) I haven't done a any logical review. I assume Kevin has done that.

This revision is now accepted and ready to land.Jul 29 2018, 11:45 AM
tuexen updated this revision to Diff 45987.EditedJul 29 2018, 12:02 PM

Address final comment from bz@

This revision now requires review to proceed.Jul 29 2018, 12:02 PM
rrs accepted this revision.Jul 30 2018, 10:17 AM
This revision is now accepted and ready to land.Jul 30 2018, 10:17 AM
This revision was automatically updated to reflect the committed changes.