mirror of
https://github.com/open5gs/open5gs.git
synced 2025-11-03 13:33:26 +00:00
Introduce new configuration for SCTP streams
SCTP initmsg - Number of output streams : configured(default:30) - Maximum input streams : 65535 - Maximum attempts : 4 - Maximum initial timeout : 8 seconds
This commit is contained in:
@@ -194,6 +194,8 @@ CORE_DECLARE(status_t) tcp_client(sock_id *new, c_sockaddr_t *sa_list);
|
||||
/*
|
||||
* SCTP Socket
|
||||
*/
|
||||
CORE_DECLARE(void) sctp_set_num_ostreams(int sctp_streams);
|
||||
|
||||
CORE_DECLARE(status_t) sctp_socket(sock_id *new, int family, int type);
|
||||
CORE_DECLARE(status_t) sctp_server(sock_id *new,
|
||||
int type, c_sockaddr_t *sa_list);
|
||||
|
||||
@@ -12,8 +12,16 @@ static status_t set_paddrparams(sock_id id, c_uint32_t spp_hbinterval);
|
||||
static status_t set_rtoinfo(sock_id id,
|
||||
c_uint32_t srto_initial, c_uint32_t srto_min, c_uint32_t srto_max);
|
||||
static status_t set_initmsg(sock_id id,
|
||||
c_uint32_t sinit_num_ostreams, c_uint32_t sinit_max_instreams,
|
||||
c_uint32_t sinit_max_attempts, c_uint32_t sinit_max_init_timeo);
|
||||
|
||||
static int sctp_num_ostreams = -1;
|
||||
|
||||
void sctp_set_num_ostreams(int sctp_streams)
|
||||
{
|
||||
sctp_num_ostreams = sctp_streams;
|
||||
}
|
||||
|
||||
status_t sctp_socket(sock_id *new, int family, int type)
|
||||
{
|
||||
status_t rv;
|
||||
@@ -41,10 +49,11 @@ status_t sctp_socket(sock_id *new, int family, int type)
|
||||
/*
|
||||
* INITMSG
|
||||
*
|
||||
* max number of input streams : 65535
|
||||
* max attemtps : 4
|
||||
* max initial timeout : 8 secs
|
||||
*/
|
||||
rv = set_initmsg(*new, 4, 8000);
|
||||
rv = set_initmsg(*new, sctp_num_ostreams, 65535, 4, 8000);
|
||||
d_assert(rv == CORE_OK, return CORE_ERROR,);
|
||||
|
||||
return CORE_OK;
|
||||
@@ -394,6 +403,7 @@ static status_t set_rtoinfo(sock_id id,
|
||||
}
|
||||
|
||||
static status_t set_initmsg(sock_id id,
|
||||
c_uint32_t sinit_num_ostreams, c_uint32_t sinit_max_instreams,
|
||||
c_uint32_t sinit_max_attempts, c_uint32_t sinit_max_init_timeo)
|
||||
{
|
||||
sock_t *sock = (sock_t *)id;
|
||||
@@ -401,7 +411,8 @@ static status_t set_initmsg(sock_id id,
|
||||
socklen_t socklen;
|
||||
|
||||
d_assert(id, return CORE_ERROR,);
|
||||
|
||||
d_assert(sinit_num_ostreams > 1, return CORE_ERROR,
|
||||
"Invalid SCTP number of output streams = %d\n", sctp_num_ostreams);
|
||||
|
||||
memset(&initmsg, 0, sizeof(initmsg));
|
||||
socklen = sizeof(initmsg);
|
||||
@@ -419,6 +430,8 @@ static status_t set_initmsg(sock_id id,
|
||||
initmsg.sinit_max_attempts,
|
||||
initmsg.sinit_max_init_timeo);
|
||||
|
||||
initmsg.sinit_num_ostreams = sinit_num_ostreams;
|
||||
initmsg.sinit_max_instreams = sinit_max_instreams;
|
||||
initmsg.sinit_max_attempts = sinit_max_attempts;
|
||||
initmsg.sinit_max_init_timeo = sinit_max_init_timeo;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user