You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/sctp_options.h

78 lines
2.7 KiB

/*
* $Id$
*
* Copyright (C) 2008 iptelorg GmbH
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* sctp options
*/
/*
* History:
* --------
* 2008-08-07 initial version (andrei)
* 2009-05-26 runtime cfg support (andrei)
*/
#ifndef _sctp_options_h
#define _sctp_options_h
#ifndef NO_SCTP_CONN_REUSE
/* SCTP connection reuse by default */
#define SCTP_CONN_REUSE
#endif
#define DEFAULT_SCTP_AUTOCLOSE 180 /* seconds */
#define DEFAULT_SCTP_SEND_TTL 32000 /* in ms (32s) */
#define DEFAULT_SCTP_SEND_RETRIES 0
#define MAX_SCTP_SEND_RETRIES 9
struct cfg_group_sctp{
int so_rcvbuf;
int so_sndbuf;
unsigned int autoclose; /* in seconds */
unsigned int send_ttl; /* in milliseconds */
unsigned int send_retries;
int assoc_tracking; /* track associations */
int assoc_reuse; /* reuse the request connection for sending the reply,
depends on assoc_tracking */
int max_assocs; /* maximum associations, -1 means disabled */
unsigned int srto_initial; /** initial retr. timeout */
unsigned int srto_max; /** max retr. timeout */
unsigned int srto_min; /** min retr. timeout */
unsigned int asocmaxrxt; /** max. retr. attempts per association */
unsigned int init_max_attempts; /** max., INIT retr. attempts */
unsigned int init_max_timeo; /** rto max for INIT */
unsigned int hbinterval; /** heartbeat interval in msecs */
unsigned int pathmaxrxt; /** max. retr. attempts per path */
unsigned int sack_delay; /** msecs after which a delayed SACK is sent */
unsigned int sack_freq; /** no. of packets after which a SACK is sent */
unsigned int max_burst; /** maximum burst of packets per assoc. */
};
extern struct cfg_group_sctp sctp_default_cfg;
/* sctp config handle */
extern void* sctp_cfg;
void init_sctp_options(void);
void sctp_options_check(void);
int sctp_register_cfg(void);
void sctp_options_get(struct cfg_group_sctp *s);
int sctp_get_os_defaults(struct cfg_group_sctp *s);
int sctp_get_cfg_from_sock(int s, struct cfg_group_sctp* cfg);
#endif /* _sctp_options_h */