Home | History | Annotate | Download | only in netinet6
History log of /src/sys/netinet6/sctp6_usrreq.c
RevisionDateAuthorComments
 1.26  06-Jul-2024  andvar Fix various typos in comments:
s/defininitions/definitions/
s/ininitialise/initialise/
s/collasped/collapsed/
s/optionaly/optionally/
 1.25  05-Jul-2024  rin sys: Drop redundant NULL check before m_freem(9)

m_freem(9) safely has accepted NULL argument at least since 4.2BSD:
https://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/sys/uipc_mbuf.c

Compile-tested on amd64/ALL.

Suggested by knakahara@
 1.24  04-Nov-2022  ozaki-r inpcb: rename functions to in6pcb_*
 1.23  28-Oct-2022  ozaki-r Adjust dccp and sctp for struct inpcb separation
 1.22  27-Apr-2020  rjs Call IPv4 handler for accept().
 1.21  27-Apr-2020  rjs Do sctp_connectx() handling using ioctl() for IPv6 as well.
 1.20  25-Jun-2019  rjs Split out the prototypes for add/delete address into a separate header file.
 1.19  25-Feb-2019  maxv RIP6, CAN, SCTP and SCTP6 lack a length check in their _send() functions.
Fix RIP6 and CAN, add a big XXX in the SCTP ones.

Found by KASAN, triggered by SyzKaller.

Reported-by: syzbot+0b9692ae0f49f93b7dc7@syzkaller.appspotmail.com
 1.18  24-Feb-2019  maxv RIP, RIP6, DDP, SCTP and SCTP6 lack a length check in their _connect()
functions. Fix the first three, and add a big XXX in the SCTP ones.

Found by KASAN, triggered by SyzKaller.

Reported-by: syzbot+9eaf98dad6ca738c250d@syzkaller.appspotmail.com
 1.17  28-Jan-2019  martin Fix memory leaks pointed out by Ilja Van Sprundel: all
sendoob() functions are expted to free both passed
mbuf chains.
 1.16  01-May-2018  maxv branches: 1.16.2;
Remove now unused net_osdep.h includes, the other BSDs did the same.
 1.15  26-Feb-2018  maxv branches: 1.15.2;
Dedup: merge ipsec4_in_reject and ipsec6_in_reject into ipsec_in_reject.
While here fix misleading comment.

ok ozaki-r@
 1.14  17-Oct-2017  rjs branches: 1.14.2;
Make SCTP work when IPSEC is also defined.
 1.13  20-Apr-2017  ozaki-r branches: 1.13.4;
Fix build of kernel with SCTP
 1.12  20-Apr-2017  ozaki-r Remove unnecessary NULL checks for inp_socket and in6p_socket

They cannot be NULL except for programming errors.
 1.11  13-Dec-2016  ozaki-r branches: 1.11.2;
Remove unnecessary inclusions of nd6.h
 1.10  06-Dec-2016  knakahara remove unnecessary extern declaration.

inetsw has been declared since r1.1, however sctp6_usrreq.c can be built
without the declaration. It must be removed.
 1.9  18-Nov-2016  knakahara fix: "ifconfig destory" can stalls when "ifconfig" is done parallel.
This problem occurs only if NET_MPSAFE on.

ifconfig destroy side:
kernel entry point is ifioctl => if_clone_destroy.
pr_purgeif() acquires softnet_lock, and then ifa_remove() calls
pserialize_perform() holding softnet_lock.
ifconfig side:
kernel entry point is socreate.
pr_attach()(udp_attach_wrapper()) calls sosetlock(). In this call path,
sosetlock() try to acquire softnet_lock.
These can cause dead lock.
 1.8  01-Aug-2016  ozaki-r Apply pserialize and psref to struct ifaddr and its variants

This change makes struct ifaddr and its variants (in_ifaddr and in6_ifaddr)
MP-safe by using pserialize and psref. At this moment, pserialize_perform
and psref_target_destroy are disabled because (1) we don't need them
because of softnet_lock (2) they cause a deadlock because of softnet_lock.
So we'll enable them when we remove softnet_lock in the future.
 1.7  15-Jul-2016  ozaki-r Use sin6tosa and sin6tocsa macros

No functional change.
 1.6  07-Jul-2016  ozaki-r branches: 1.6.2;
Switch the address list of intefaces to pslist(9)

As usual, we leave the old list to avoid breaking kvm(3) users.
 1.5  10-Jun-2016  ozaki-r Avoid storing a pointer of an interface in a mbuf

Having a pointer of an interface in a mbuf isn't safe if we remove big
kernel locks; an interface object (ifnet) can be destroyed anytime in any
packet processing and accessing such object via a pointer is racy. Instead
we have to get an object from the interface collection (ifindex2ifnet) via
an interface index (if_index) that is stored to a mbuf instead of an
pointer.

The change provides two APIs: m_{get,put}_rcvif_psref that use psref(9)
for sleep-able critical sections and m_{get,put}_rcvif that use
pserialize(9) for other critical sections. The change also adds another
API called m_get_rcvif_NOMPSAFE, that is NOT MP-safe and for transition
moratorium, i.e., it is intended to be used for places where are not
planned to be MP-ified soon.

The change adds some overhead due to psref to performance sensitive paths,
however the overhead is not serious, 2% down at worst.

Proposed on tech-kern and tech-net.
 1.4  25-Apr-2016  rjs Fix build when IPSEC enabled.
 1.3  21-Jan-2016  riastradh Revert previous: ran cvs commit when I meant cvs diff. Sorry!

Hit up-arrow one too few times.
 1.2  21-Jan-2016  riastradh Give proper prototype to ip_output.
 1.1  13-Oct-2015  rjs branches: 1.1.2;
Add core networking support for SCTP.
 1.1.2.8  28-Aug-2017  skrll Sync with HEAD
 1.1.2.7  05-Feb-2017  skrll Sync with HEAD
 1.1.2.6  05-Dec-2016  skrll Sync with HEAD
 1.1.2.5  05-Oct-2016  skrll Sync with HEAD
 1.1.2.4  09-Jul-2016  skrll Sync with HEAD
 1.1.2.3  29-May-2016  skrll Sync with HEAD
 1.1.2.2  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.1  13-Oct-2015  skrll file sctp6_usrreq.c was added on branch nick-nhusb on 2015-12-27 12:10:07 +0000
 1.6.2.4  26-Apr-2017  pgoyette Sync with HEAD
 1.6.2.3  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.6.2.2  06-Aug-2016  pgoyette Sync with HEAD
 1.6.2.1  26-Jul-2016  pgoyette Sync with HEAD
 1.11.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.13.4.1  29-Jan-2019  msaitoh Pull up following revision(s) (requested by martin in ticket #1175):
sys/net/link_proto.c 1.37
sys/netatalk/ddp_usrreq.c 1.72
sys/netbt/hci_socket.c 1.46
sys/netbt/l2cap_socket.c 1.36
sys/netbt/rfcomm_socket.c 1.38
sys/netbt/sco_socket.c 1.38
sys/netinet/sctp_usrreq.c 1.14
sys/netinet/tcp_usrreq.c 1.223
sys/netinet6/raw_ip6.c 1.173
sys/netinet6/sctp6_usrreq.c 1.17
sys/netinet6/udp6_usrreq.c 1.146
sys/netmpls/mpls_proto.c 1.32
sys/netnatm/natm.c patch

Fix memory leaks pointed out by Ilja Van Sprundel: all
sendoob() functions are expted to free both passed
mbuf chains.
 1.14.2.2  03-Dec-2017  jdolecek update from HEAD
 1.14.2.1  17-Oct-2017  jdolecek file sctp6_usrreq.c was added on branch tls-maxphys on 2017-12-03 11:39:05 +0000
 1.15.2.1  02-May-2018  pgoyette Synch with HEAD
 1.16.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.16.2.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed