On Thu, Jul 09, 2020 at 12:44:25PM -0700, Doug Hardie wrote:
> > On 9 July 2020, at 08:13, Mark Johnston <ma...@freebsd.org> wrote:
> > 
> > Hi,
> > 
> > I spent some time working on making it possible to load the SCTP stack
> > as a kernel module, the same as we do today with IPSec.  There is one
> > patch remaining to be committed before that can be done in head.  One
> > caveat is that the module can't be unloaded, as some work is needed to
> > make this safe.  However, this obviously isn't a regression.
> > 
> > The work is based on the observations that:
> > 1) the in-kernel SCTP stack is not widely used (I know that the same
> >   code is used in some userland applications), and
> > 2) the SCTP stack is quite large, most FreeBSD kernel developers are
> >   unfamiliar with it, and bugs in it can easily lead to security holes.
> > 
> > Michael has done a lot of work to fix issues in the SCTP code,
> > particularly those found by syzkaller, but given that in-kernel SCTP has
> > few users (almost certainly fewer than IPSec), it seems reasonable to
> > require users to opt in to having an SCTP stack with a simple "kldload
> > sctp".  Thus, once the last patch is committed I would like to propose
> > removing "options SCTP" from GENERIC kernel configs in head, replacing
> > it with "options SCTP_SUPPORT" to enable sctp.ko to be loaded.
> > 
> > I am wondering if anyone has any objections to or concerns about this
> > proposal.  Any feedback is appreciated.
> 
> I have a number of systems using SCTP.  It is a key part of a distributed 
> application.  As a user of SCTP, I have a slight objection to removing it 
> from the kernel.  It would require me to remember when setting up a new 
> system to enable that.  I am not likely to remember.

To be clear, with the proposed change SCTP can be loaded at boot by
adding a single line: sctp_load="YES" to /boot/loader.conf, or
kld_list="sctp" to /etc/rc.conf.  Also, the change will not be present
in a release until 13.0 or possibly 12.2, which provides plenty of time,
and the release notes will reflect the change.

I was really looking for objections pointing out that a dynamically
loaded SCTP stack would prevent or inhibit some workflow.  Relying on
being able to configure systems from memory rather than using a
checklist or some automated configuration management does not seem to be
a good reason for keeping SCTP in the kernel.

> What is going to happen if you run an application that uses SCTP and the 
> module is not loaded?

An attempt to create an SCTP socket will fail with EPROTONOSUPPORT,
"Protocol not supported".

> What will remind me how to fix the issue?  I am not likely to remember about 
> this 6 months from now.

Hopefully "protocol not supported" is a sufficiently descriptive error
message. 
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to