D7net Mini Sh3LL v1
Current File : /var/../bin/../include/netipx/../netinet/sctp.h |
/* src/include/netinet/sctp.h. Generated from sctp.h.in by configure. */
/* SCTP kernel Implementation: User API extensions.
*
* sctp.h
*
* Distributed under the terms of the LGPL v2.1 as described in
* http://www.gnu.org/copyleft/lesser.txt
*
* This file is part of the user library that offers support for the
* Linux Kernel SCTP Implementation. The main purpose of this
* code is to provide the SCTP Socket API mappings for user
* application to interface with SCTP in kernel.
*
* This header represents the structures and constants needed to support
* the SCTP Extension to the Sockets API.
*
* (C) Copyright IBM Corp. 2001, 2004
* Copyright (c) 1999-2000 Cisco, Inc.
* Copyright (c) 1999-2001 Motorola, Inc.
*
* Written or modified by:
* La Monte H.P. Yarroll <piggy@acm.org>
* R. Stewart <randall@sctp.chicago.il.us>
* K. Morneau <kmorneau@cisco.com>
* Q. Xie <qxie1@email.mot.com>
* Karl Knutson <karl@athena.chicago.il.us>
* Jon Grimm <jgrimm@austin.ibm.com>
* Daisy Chang <daisyc@us.ibm.com>
* Inaky Perez-Gonzalez <inaky.gonzalez@intel.com>
* Sridhar Samudrala <sri@us.ibm.com>
* Vlad Yasevich <vladislav.yasevich@hp.com>
*/
#ifndef __linux_sctp_h__
#define __linux_sctp_h__
#include <stdint.h>
#include <linux/types.h>
#include <sys/socket.h>
#include <linux/sctp.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Socket option layer for SCTP */
#ifndef SOL_SCTP
#define SOL_SCTP 132
#endif
#ifndef IPPROTO_SCTP
#define IPPROTO_SCTP 132
#endif
/* 9. Preprocessor constants */
#define HAVE_SCTP
#define HAVE_KERNEL_SCTP
#define HAVE_SCTP_MULTIBUF
#define HAVE_SCTP_NOCONNECT
#define HAVE_SCTP_PRSCTP
#define HAVE_SCTP_ADDIP
#define HAVE_SCTP_CANSET_PRIMARY
#define HAVE_SCTP_STREAM_RESET_EVENT 1
/* #undef HAVE_SCTP_ASSOC_RESET_EVENT */
/* #undef HAVE_SCTP_STREAM_CHANGE_EVENT */
#define HAVE_SCTP_STREAM_RECONFIG 1
#define HAVE_SCTP_PEELOFF_FLAGS 1
#define HAVE_SCTP_PDAPI_EVENT_PDAPI_STREAM 1
#define HAVE_SCTP_PDAPI_EVENT_PDAPI_SEQ 1
/* #undef HAVE_SCTP_SENDV */
#define HAVE_SCTP_AUTH_NO_AUTH 1
/* #undef HAVE_SCTP_SPP_IPV6_FLOWLABEL */
/* #undef HAVE_SCTP_SPP_DSCP */
int sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags);
int sctp_connectx(int sd, struct sockaddr *addrs, int addrcnt,
sctp_assoc_t *id);
int sctp_peeloff(int sd, sctp_assoc_t assoc_id);
int sctp_peeloff_flags(int sd, sctp_assoc_t assoc_id, unsigned flags);
/* Prototype for the library function sctp_opt_info defined in
* API 7. Socket Options.
*/
int sctp_opt_info(int sd, sctp_assoc_t id, int opt, void *arg, socklen_t *size);
/* Get all peer address on a socket. This is a new SCTP API
* described in the section 8.3 of the Sockets API Extensions for SCTP.
* This is implemented using the getsockopt() interface.
*/
int sctp_getpaddrs(int sd, sctp_assoc_t id, struct sockaddr **addrs);
/* Frees all resources allocated by sctp_getpaddrs(). This is a new SCTP API
* described in the section 8.4 of the Sockets API Extensions for SCTP.
*/
int sctp_freepaddrs(struct sockaddr *addrs);
/* Get all locally bound address on a socket. This is a new SCTP API
* described in the section 8.5 of the Sockets API Extensions for SCTP.
* This is implemented using the getsockopt() interface.
*/
int sctp_getladdrs(int sd, sctp_assoc_t id, struct sockaddr **addrs);
/* Frees all resources allocated by sctp_getladdrs(). This is a new SCTP API
* described in the section 8.6 of the Sockets API Extensions for SCTP.
*/
int sctp_freeladdrs(struct sockaddr *addrs);
/* This library function assists the user with the advanced features
* of SCTP. This is a new SCTP API described in the section 8.7 of the
* Sockets API Extensions for SCTP. This is implemented using the
* sendmsg() interface.
*/
int sctp_sendmsg(int s, const void *msg, size_t len, struct sockaddr *to,
socklen_t tolen, uint32_t ppid, uint32_t flags,
uint16_t stream_no, uint32_t timetolive, uint32_t context);
/* This library function assist the user with sending a message without
* dealing directly with the CMSG header.
*/
int sctp_send(int s, const void *msg, size_t len,
const struct sctp_sndrcvinfo *sinfo, int flags);
/* This library function assists the user with the advanced features
* of SCTP. This is a new SCTP API described in the section 8.8 of the
* Sockets API Extensions for SCTP. This is implemented using the
* recvmsg() interface.
*/
int sctp_recvmsg(int s, void *msg, size_t len, struct sockaddr *from,
socklen_t *fromlen, struct sctp_sndrcvinfo *sinfo,
int *msg_flags);
/* Return the address length for an address family. */
int sctp_getaddrlen(sa_family_t family);
#ifdef HAVE_SCTP_SENDV
/* sendv infotype */
enum {
SCTP_SENDV_NOINFO,
SCTP_SENDV_SNDINFO,
SCTP_SENDV_PRINFO,
SCTP_SENDV_AUTHINFO,
SCTP_SENDV_SPA
};
/* sendv_flags */
#define SCTP_SEND_SNDINFO_VALID 0x1
#define SCTP_SEND_PRINFO_VALID 0x2
#define SCTP_SEND_AUTHINFO_VALID 0x4
#endif
struct sctp_sendv_spa {
uint32_t sendv_flags;
struct sctp_sndinfo sendv_sndinfo;
#ifdef HAVE_SCTP_SENDV
struct sctp_prinfo sendv_prinfo;
struct sctp_authinfo sendv_authinfo;
#endif
};
#ifdef HAVE_SCTP_SENDV
int sctp_sendv(int s, const struct iovec *iov, int iovcnt,
struct sockaddr *addrs, int addrcnt, void *info,
socklen_t infolen, unsigned int infotype, int flags);
/* recvv infotype */
enum {
SCTP_RECVV_NOINFO,
SCTP_RECVV_RCVINFO,
SCTP_RECVV_NXTINFO,
SCTP_RECVV_RN
};
struct sctp_recvv_rn {
struct sctp_rcvinfo recvv_rcvinfo;
struct sctp_nxtinfo recvv_nxtinfo;
};
int sctp_recvv(int s, const struct iovec *iov, int iovlen,
struct sockaddr *from, socklen_t *fromlen, void *info,
socklen_t *infolen, unsigned int *infotype, int *flags);
#endif
#ifdef __cplusplus
}
#endif
#endif /* __linux_sctp_h__ */
AnonSec - 2021 | Recode By D7net