Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Add userland support for SCTP and manpages.



details:   https://anonhg.NetBSD.org/src/rev/0a724f1fcc0d
branches:  trunk
changeset: 834221:0a724f1fcc0d
user:      rjs <rjs%NetBSD.org@localhost>
date:      Thu Aug 02 08:40:47 2018 +0000

description:
Add userland support for SCTP and manpages.

diffstat:

 distrib/sets/lists/base/shl.mi  |    6 +-
 distrib/sets/lists/comp/mi      |   24 +-
 distrib/sets/lists/debug/shl.mi |    6 +-
 lib/libc/net/Makefile.inc       |    9 +-
 lib/libc/net/sctp_bindx.3       |  120 ++++
 lib/libc/net/sctp_connectx.3    |  111 ++++
 lib/libc/net/sctp_freepaddrs.3  |   75 +++
 lib/libc/net/sctp_getaddrlen.3  |   93 +++
 lib/libc/net/sctp_getassocid.3  |   79 +++
 lib/libc/net/sctp_getpaddrs.3   |  106 ++++
 lib/libc/net/sctp_opt_info.3    |  129 +++++
 lib/libc/net/sctp_peeloff.3     |   85 +++
 lib/libc/net/sctp_send.3        |  359 ++++++++++++++
 lib/libc/net/sctp_sendmsg.3     |  339 ++++++++++++++
 lib/libc/net/sctp_sys_calls.c   |  963 ++++++++++++++++++++++++++++++++++++++++
 lib/libc/shlib_version          |    4 +-
 16 files changed, 2497 insertions(+), 11 deletions(-)

diffs (truncated from 2640 to 300 lines):

diff -r 58aafd5e7587 -r 0a724f1fcc0d distrib/sets/lists/base/shl.mi
--- a/distrib/sets/lists/base/shl.mi    Thu Aug 02 07:47:30 2018 +0000
+++ b/distrib/sets/lists/base/shl.mi    Thu Aug 02 08:40:47 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.843 2018/07/31 13:04:09 rjs Exp $
+# $NetBSD: shl.mi,v 1.844 2018/08/02 08:40:47 rjs Exp $
 #
 # Note:        Don't delete entries from here - mark them as "obsolete" instead,
 #      unless otherwise stated below.
@@ -18,7 +18,7 @@
 ./lib/libblacklist.so.0.0                      base-sys-shlib          dynamicroot
 ./lib/libc.so                                  base-sys-shlib          dynamicroot
 ./lib/libc.so.12                               base-sys-shlib          dynamicroot
-./lib/libc.so.12.210                           base-sys-shlib          dynamicroot
+./lib/libc.so.12.211                           base-sys-shlib          dynamicroot
 ./lib/libcrypt.so                              base-sys-shlib          dynamicroot
 ./lib/libcrypt.so.1                            base-sys-shlib          dynamicroot
 ./lib/libcrypt.so.1.0                          base-sys-shlib          dynamicroot
@@ -221,7 +221,7 @@
 ./usr/lib/libc++.so.1.0                                base-sys-shlib          compatfile,libcxx
 ./usr/lib/libc.so                              base-sys-shlib          compatfile
 ./usr/lib/libc.so.12                           base-sys-shlib          compatfile
-./usr/lib/libc.so.12.210                       base-sys-shlib          compatfile
+./usr/lib/libc.so.12.211                       base-sys-shlib          compatfile
 ./usr/lib/libcdk.so                            base-obsolete           compatfile,obsolete
 ./usr/lib/libcom_err.so                                base-krb5-shlib         compatfile,kerberos
 ./usr/lib/libcom_err.so.8                      base-krb5-shlib         compatfile,kerberos
diff -r 58aafd5e7587 -r 0a724f1fcc0d distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi        Thu Aug 02 07:47:30 2018 +0000
+++ b/distrib/sets/lists/comp/mi        Thu Aug 02 08:40:47 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: mi,v 1.2214 2018/07/31 16:44:28 khorben Exp $
+#      $NetBSD: mi,v 1.2215 2018/08/02 08:40:47 rjs Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 ./etc/mtree/set.comp                           comp-sys-root
@@ -16992,6 +16992,17 @@
 ./usr/share/man/html3/scrl.html                        comp-c-htmlman          html
 ./usr/share/man/html3/scroll.html              comp-c-htmlman          html
 ./usr/share/man/html3/scrollok.html            comp-c-htmlman          html
+./usr/share/man/html3/sctp_bindx.html          comp-c-htmlman          html
+./usr/share/man/html3/sctp_connectx.html       comp-c-htmlman          html
+./usr/share/man/html3/sctp_freepaddrs.html     comp-c-htmlman          html
+./usr/share/man/html3/sctp_getaddrlen.html     comp-c-htmlman          html
+./usr/share/man/html3/sctp_getassocid.html     comp-c-htmlman          html
+./usr/share/man/html3/sctp_getpaddrs.html      comp-c-htmlman          html
+./usr/share/man/html3/sctp_opt_info.html       comp-c-htmlman          html
+./usr/share/man/html3/sctp_peeloff.html                comp-c-htmlman          html
+./usr/share/man/html3/sctp_recvmsg.html                comp-c-htmlman          html
+./usr/share/man/html3/sctp_send.html           comp-c-htmlman          html
+./usr/share/man/html3/sctp_sendmsg.html                comp-c-htmlman          html
 ./usr/share/man/html3/sdp.html                 comp-c-htmlman          html
 ./usr/share/man/html3/sdp_attr2desc.html       comp-obsolete           obsolete
 ./usr/share/man/html3/sdp_change_service.html  comp-obsolete           obsolete
@@ -24777,6 +24788,17 @@
 ./usr/share/man/man3/scrl.3                    comp-c-man              .man
 ./usr/share/man/man3/scroll.3                  comp-c-man              .man
 ./usr/share/man/man3/scrollok.3                        comp-c-man              .man
+./usr/share/man/man3/sctp_bindx.3              comp-c-man              .man
+./usr/share/man/man3/sctp_connectx.3           comp-c-man              .man
+./usr/share/man/man3/sctp_freepaddrs.3         comp-c-man              .man
+./usr/share/man/man3/sctp_getaddrlen.3         comp-c-man              .man
+./usr/share/man/man3/sctp_getassocid.3         comp-c-man              .man
+./usr/share/man/man3/sctp_getpaddrs.3          comp-c-man              .man
+./usr/share/man/man3/sctp_opt_info.3           comp-c-man              .man
+./usr/share/man/man3/sctp_peeloff.3            comp-c-man              .man
+./usr/share/man/man3/sctp_recvmsg.3            comp-c-man              .man
+./usr/share/man/man3/sctp_send.3               comp-c-man              .man
+./usr/share/man/man3/sctp_sendmsg.3            comp-c-man              .man
 ./usr/share/man/man3/sdp.3                     comp-c-man              .man
 ./usr/share/man/man3/sdp_attr2desc.3           comp-obsolete           obsolete
 ./usr/share/man/man3/sdp_change_service.3      comp-obsolete           obsolete
diff -r 58aafd5e7587 -r 0a724f1fcc0d distrib/sets/lists/debug/shl.mi
--- a/distrib/sets/lists/debug/shl.mi   Thu Aug 02 07:47:30 2018 +0000
+++ b/distrib/sets/lists/debug/shl.mi   Thu Aug 02 08:40:47 2018 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: shl.mi,v 1.202 2018/07/31 22:29:55 kre Exp $
+# $NetBSD: shl.mi,v 1.203 2018/08/02 08:40:48 rjs Exp $
 ./usr/lib/libbfd_g.a                                           comp-c-debuglib debuglib,compatfile,binutils
 ./usr/libdata/debug/lib                                                base-sys-usr    debug,dynamicroot,compatdir
 ./usr/libdata/debug/lib/libblacklist.so.0.0.debug              comp-sys-debug  debug,dynamicroot
-./usr/libdata/debug/lib/libc.so.12.210.debug                   comp-sys-debug  debug,dynamicroot
+./usr/libdata/debug/lib/libc.so.12.211.debug                   comp-sys-debug  debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypt.so.1.0.debug                  comp-sys-debug  debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypto.so.12.0.debug                        comp-sys-debug  debug,dynamicroot,openssl=10
 ./usr/libdata/debug/lib/libcrypto.so.13.0.debug                        comp-sys-debug  debug,dynamicroot,openssl=11
@@ -72,7 +72,7 @@
 ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug          comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug                        comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug                        comp-sys-debug  debug,compatfile,libcxx
-./usr/libdata/debug/usr/lib/libc.so.12.210.debug               comp-sys-debug  debug,compatfile
+./usr/libdata/debug/usr/lib/libc.so.12.211.debug               comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libcom_err.so.8.0.debug            comp-krb5-debug debug,compatfile,kerberos
 ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug              comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libcrypto.so.12.0.debug            comp-crypto-debug       debug,compatfile,openssl=10
diff -r 58aafd5e7587 -r 0a724f1fcc0d lib/libc/net/Makefile.inc
--- a/lib/libc/net/Makefile.inc Thu Aug 02 07:47:30 2018 +0000
+++ b/lib/libc/net/Makefile.inc Thu Aug 02 08:40:47 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.inc,v 1.87 2017/06/18 04:03:44 manu Exp $
+#      $NetBSD: Makefile.inc,v 1.88 2018/08/02 08:40:48 rjs Exp $
 #      @(#)Makefile.inc        8.2 (Berkeley) 9/5/93
 
 # net sources
@@ -13,7 +13,7 @@
        iso_addr.c linkaddr.c \
        nsdispatch.c nslexer.l nsparser.y nsap_addr.c \
        rcmd.c recv.c send.c sethostent.c \
-       sockatmark.c
+       sctp_sys_calls.c sockatmark.c
 
 .if (${MKHESIOD} != "no")
 SRCS+= hesiod.c
@@ -145,3 +145,8 @@
        inet6_rth_space.3 inet6_rth_getaddr.3 \
        rcmd.3 rcmd_af.3 rcmd.3 iruserok_sa.3 rcmd.3 rresvport_af.3 \
        rcmd.3 orcmd_af.3
+
+# SCTP
+MAN+=  sctp_bindx.3 sctp_connectx.3 sctp_freepaddrs.3 sctp_getaddrlen.3 \
+       sctp_getassocid.3 sctp_getpaddrs.3 sctp_opt_info.3 sctp_peeloff.3 \
+       sctp_recvmsg.3 sctp_send.3 sctp_sendmsg.3
diff -r 58aafd5e7587 -r 0a724f1fcc0d lib/libc/net/sctp_bindx.3
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/net/sctp_bindx.3 Thu Aug 02 08:40:47 2018 +0000
@@ -0,0 +1,120 @@
+.\"    $NetBSD: sctp_bindx.3,v 1.1 2018/08/02 08:40:48 rjs Exp $
+.\"
+.\" Copyright (c) 1983, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     From: @(#)send.2       8.2 (Berkeley) 2/21/94
+.\"
+.Dd August 1, 2018
+.Dt SCTP_BINDX 3
+.Os
+.Sh NAME
+.Nm sctp_bindx
+.Nd bind or unbind an SCTP socket to a list of addresses.
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/socket.h
+.In netinet/sctp.h
+.Ft int
+.Fn sctp_bindx "int s" "struct sockaddr *addrs" "int num" "int type"
+.Sh DESCRIPTION
+The
+.Fn sctp_bindx
+call binds or unbinds a address or a list of addresses to an
+SCTP endpoint.
+This allows a user to bind a subset of
+addresses.
+The
+.Fn sctp_bindx
+call operates similarly to
+.Fn bind
+but allows a list of addresses and also allows a bind or an
+unbind.
+The argument
+.Fa s
+must be a valid SCTP socket descriptor.
+The argument
+.Fa addrs
+is a list of addresses (where the list may be only 1 in
+length) that the user wishes to bind or unbind to the
+socket.
+The argument
+.Fa type
+must be one of the following values.
+.Pp
+.Dv SCTP_BINDX_ADD_ADDR
+This value indicates that the listed address(es) need to
+be added to the endpoint.
+.Pp
+.Dv SCTP_BINDX_DEL_ADDR
+This value indicates that the listed address(es) need to
+be removed from the endpoint.
+.Pp
+Note that when a user adds or deletes an address to an
+association if the dynamic address flag
+.Va net.inet.sctp.auto_asconf
+is enabled any associations in the endpoint will attempt to
+have the address(es) added dynamically to the existing
+association.
+.Sh RETURN VALUES
+The call returns 0 on success and -1 upon failure.
+.Sh ERRORS
+The
+.Fn sctp_bindx
+function can return the following errors:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+This value is returned if the
+.Fa type
+field is not one of the allowed values (see above).
+.It Bq Er ENOMEM
+This value is returned if the number of addresses
+being added causes a memory allocation failure in
+the call.
+.It Bq Er EBADF
+The argument
+.Fa s
+is not a valid descriptor.
+.It Bq Er ENOTSOCK
+The argument
+.Fa s
+is not a socket.
+.El
+.Sh SEE ALSO
+.Xr bind 2 ,
+.Xr sctp 4
+.Rs
+.%R RFC
+.%N 6458
+.%T "Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)"
+.%D December 2011
+.Re 
+.Sh HISTORY
+This function first appeared in
+.Nx 9.0 .
diff -r 58aafd5e7587 -r 0a724f1fcc0d lib/libc/net/sctp_connectx.3
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/net/sctp_connectx.3      Thu Aug 02 08:40:47 2018 +0000
@@ -0,0 +1,111 @@
+.\"    $NetBSD: sctp_connectx.3,v 1.1 2018/08/02 08:40:48 rjs Exp $
+.\"
+.\" Copyright (c) 1983, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd August 1, 2018
+.Dt SCTP_CONNECTX 3
+.Os
+.Sh NAME
+.Nm sctp_connectx
+.Nd connect an SCTP socket with multiple destination addresses
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/socket.h
+.In netinet/sctp.h
+.Ft int
+.Fn sctp_connectx "int sd" "struct sockaddr *addrs" "int addrcnt" "sctp_assoc_t *id"
+.Sh DESCRIPTION
+The
+.Fn sctp_connectx
+call attempts to initiate an association to a peer SCTP
+endpoint.
+The call operates similarly to
+.Fn connect



Home | Main Index | Thread Index | Old Index