> On 9. Jul 2020, at 23:15, Doug Hardie <bc...@lafn.org> wrote: > >> On 9 July 2020, at 13:10, Mark Johnston <ma...@freebsd.org> wrote: >> >> 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. > > Actually, the users of these systems would have no clue about that message. > All they would figure out is that the system is down and they can't do their > job and bitch to the CEO. I am going to assume that that error will be > produced by the socket call and I have added code to check for it and email > me if it occurs. I believe that the only viable approach for us is the > rc.conf solution as some of these systems are rhapsberry pi 3s which I > understand don't use the loader.conf file. OK. Do you control the kernel which is running on the machines? If that is the case, you could add a line to the kernel config, rebuild the kernel and use that custom kernel with compiled-in SCTP support. That is still possible. > > One of the configurations we are considering is for each user to have their > own Rhapsberry Pi and eliminate the central server. All data is replicated > between all the machines so there is no need for a central server anymore. > If I can make that work, it would be a large cost savings for my client. If that gets rid of the need to use SCTP, that would also work.
Best regards Michael > > -- Doug > > > _______________________________________________ > 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" _______________________________________________ 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"