fixing cli issues
This commit is contained in:
parent
58dc659fbb
commit
69197b1d0c
|
@ -403,8 +403,8 @@ ftdm_status_t ftdm_sngss7_handle_cli_cmd(ftdm_stream_handle_t *stream, const cha
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
if (check_arg_count(argc, 2)) {
|
if (check_arg_count(argc, 2)) {
|
||||||
cli_ss7_show_general(stream);
|
stream->write_function(stream, "Unknown \"xmlshow\" command\n");
|
||||||
return FTDM_SUCCESS;
|
goto handle_cli_error;
|
||||||
}
|
}
|
||||||
c++;
|
c++;
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
@ -3071,7 +3071,7 @@ static ftdm_status_t cli_ss7_show_all_spans_general(ftdm_stream_handle_t *stream
|
||||||
static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[6144];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int idx = 0x00;
|
int idx = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
|
@ -3105,6 +3105,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||||
(!(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].flags & SNGSS7_CONFIGURED))) {
|
(!(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].flags & SNGSS7_CONFIGURED))) {
|
||||||
|
|
||||||
len = len + sprintf(buf + len, "<m2ua_profile>\n");
|
len = len + sprintf(buf + len, "<m2ua_profile>\n");
|
||||||
|
len = len + sprintf(buf + len, "<name> %s </name>\n", g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].name);
|
||||||
|
|
||||||
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
|
@ -3164,17 +3165,17 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ftmod_m2ua_ssta_req(STMWSCTSAP,x,&cfm)) {
|
if(ftmod_m2ua_ssta_req(STMWSCTSAP,x,&cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
} else {
|
} else {
|
||||||
len = len + sprintf(buf + len, "<m2ua_sctp_sap>\n");
|
len = len + sprintf(buf + len, "<m2ua_sctp_sap>\n");
|
||||||
len = len + sprintf(buf + len," <state> %s </state>\n", PRNT_M2UA_SAP_STATE(cfm.t.ssta.s.sctSapSta.state));
|
len = len + sprintf(buf + len," <state> %s </state>\n", PRNT_M2UA_SAP_STATE(cfm.t.ssta.s.sctSapSta.state));
|
||||||
len = len + sprintf(buf + len," <end_point_open_state> %s </end_point_open_state>\n", (cfm.t.ssta.s.sctSapSta.endpOpen)?"END_POINT_OPENED_SUCCESSFULLY":"END_POINT_NOT_OPEN");
|
len = len + sprintf(buf + len," <end_point_open_state> %s </end_point_open_state>\n", (cfm.t.ssta.s.sctSapSta.endpOpen)?"END_POINT_OPENED_SUCCESSFULLY":"END_POINT_NOT_OPEN");
|
||||||
len = len + sprintf(buf + len," <end_point_id> %d </end_point_id>\n", cfm.t.ssta.s.sctSapSta.spEndpId);
|
len = len + sprintf(buf + len," <end_point_id> %d </end_point_id>\n", cfm.t.ssta.s.sctSapSta.spEndpId);
|
||||||
len = len + sprintf(buf + len," <nmb_of_retry_attemp> %d </nmb_of_retry_attemp>\n", cfm.t.ssta.s.sctSapSta.nmbPrimRetry);
|
len = len + sprintf(buf + len," <nmb_of_retry_attemp> %d </nmb_of_retry_attemp>\n", cfm.t.ssta.s.sctSapSta.nmbPrimRetry);
|
||||||
len = len + sprintf(buf + len, "</m2ua_sctp_sap>\n");
|
len = len + sprintf(buf + len, "</m2ua_sctp_sap>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
len = len + sprintf(buf + len, "</m2ua_profile>\n");
|
len = len + sprintf(buf + len, "</m2ua_profile>\n");
|
||||||
}
|
}
|
||||||
|
@ -3199,7 +3200,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||||
static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char* m2ua_profile_name)
|
static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char* m2ua_profile_name)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int idx = 0x00;
|
int idx = 0x00;
|
||||||
int found = 0x00;
|
int found = 0x00;
|
||||||
|
@ -3234,6 +3235,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||||
|
|
||||||
|
|
||||||
len = len + sprintf(buf + len, "<m2ua_profile>\n");
|
len = len + sprintf(buf + len, "<m2ua_profile>\n");
|
||||||
|
len = len + sprintf(buf + len, "<name> %s </name>\n", m2ua_profile_name);
|
||||||
|
|
||||||
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
|
@ -3248,7 +3250,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||||
len = len + sprintf(buf + len, "</m2ua_dlsap>\n");
|
len = len + sprintf(buf + len, "</m2ua_dlsap>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ftmod_m2ua_ssta_req(STMWCLUSTER,x,&cfm)) {
|
if(ftmod_m2ua_ssta_req(STMWCLUSTER, g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].clusterId, &cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
} else {
|
} else {
|
||||||
|
@ -3323,7 +3325,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||||
static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
SbMgmt cfm;
|
SbMgmt cfm;
|
||||||
|
@ -3402,8 +3404,14 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ftmod_sctp_ssta_req(STSBASSOC,x,&cfm)) {
|
if(ftmod_sctp_ssta_req(STSBASSOC,x,&cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
if(LCM_REASON_INVALID_PAR_VAL == cfm.cfm.reason){
|
||||||
return FTDM_FAIL;
|
len = len + sprintf(buf + len, "<sctp_association>\n");
|
||||||
|
len = len + sprintf(buf + len, " <status> SCT_ASSOC_STATE_CLOSED </status>\n");
|
||||||
|
len = len + sprintf(buf + len, "</sctp_association>\n");
|
||||||
|
}else{
|
||||||
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
|
return FTDM_FAIL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
len = len + sprintf(buf + len, "<sctp_association>\n");
|
len = len + sprintf(buf + len, "<sctp_association>\n");
|
||||||
len = len + get_assoc_resp_buf(buf + len, &cfm);
|
len = len + get_assoc_resp_buf(buf + len, &cfm);
|
||||||
|
@ -3535,7 +3543,7 @@ int get_assoc_resp_buf(char* buf,SbMgmt* cfm)
|
||||||
static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char* sctp_profile_name)
|
static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char* sctp_profile_name)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
SbMgmt cfm;
|
SbMgmt cfm;
|
||||||
|
@ -3586,8 +3594,15 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ftmod_sctp_ssta_req(STSBASSOC,x,&cfm)) {
|
if(ftmod_sctp_ssta_req(STSBASSOC,x,&cfm)) {
|
||||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
/* it means assoc id not yet allocated */
|
||||||
return FTDM_FAIL;
|
if(LCM_REASON_INVALID_PAR_VAL == cfm.cfm.reason){
|
||||||
|
len = len + sprintf(buf + len, "<sctp_association>\n");
|
||||||
|
len = len + sprintf(buf + len, " <status> SCT_ASSOC_STATE_CLOSED </status>\n");
|
||||||
|
len = len + sprintf(buf + len, "</sctp_association>\n");
|
||||||
|
}else{
|
||||||
|
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||||
|
return FTDM_FAIL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
len = len + sprintf(buf + len, "<sctp_association>\n");
|
len = len + sprintf(buf + len, "<sctp_association>\n");
|
||||||
len = len + get_assoc_resp_buf(buf + len, &cfm);
|
len = len + get_assoc_resp_buf(buf + len, &cfm);
|
||||||
|
@ -3613,7 +3628,7 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||||
static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
NwMgmt cfm;
|
NwMgmt cfm;
|
||||||
|
@ -3674,7 +3689,7 @@ static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
||||||
static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char* nif_profile_name)
|
static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char* nif_profile_name)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int found = 0x00;
|
int found = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
|
@ -3737,7 +3752,7 @@ static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char*
|
||||||
static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream, char* m2ua_profile_name)
|
static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream, char* m2ua_profile_name)
|
||||||
{
|
{
|
||||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||||
char buf[2048];
|
char buf[4096];
|
||||||
int x = 0x00;
|
int x = 0x00;
|
||||||
int found = 0x00;
|
int found = 0x00;
|
||||||
int len = 0x00;
|
int len = 0x00;
|
||||||
|
|
|
@ -51,7 +51,7 @@ static int ftmod_sctp_config(int id);
|
||||||
static ftdm_status_t ftmod_sctp_sap_config(int id);
|
static ftdm_status_t ftmod_sctp_sap_config(int id);
|
||||||
static ftdm_status_t ftmod_sctp_tsap_config(int id);
|
static ftdm_status_t ftmod_sctp_tsap_config(int id);
|
||||||
static int ftmod_m2ua_gen_config(void);
|
static int ftmod_m2ua_gen_config(void);
|
||||||
static int ftmod_m2ua_sctsap_config(int m2ua_inf_id, int sctp_id);
|
static int ftmod_m2ua_sctsap_config(int sct_sap_id, int sctp_id);
|
||||||
static int ftmod_m2ua_peer_config(int id);
|
static int ftmod_m2ua_peer_config(int id);
|
||||||
static int ftmod_m2ua_peer_config1(int m2ua_inf_id, int peer_id);
|
static int ftmod_m2ua_peer_config1(int m2ua_inf_id, int peer_id);
|
||||||
static int ftmod_m2ua_cluster_config(int idx);
|
static int ftmod_m2ua_cluster_config(int idx);
|
||||||
|
@ -782,6 +782,14 @@ static int ftmod_m2ua_peer_config(int id)
|
||||||
sng_m2ua_cluster_cfg_t* clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
sng_m2ua_cluster_cfg_t* clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
||||||
sng_m2ua_peer_cfg_t* peer = NULL;
|
sng_m2ua_peer_cfg_t* peer = NULL;
|
||||||
|
|
||||||
|
if((clust->flags & SNGSS7_CONFIGURED)){
|
||||||
|
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_peer_config: Cluster [%s] is already configured \n", clust->name);
|
||||||
|
return 0x00;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*NOTE : SCTSAP is based on per source address , so if we have same Cluster / peer shared across many <m2ua_interface> then
|
||||||
|
* we dont have do configuration for each time */
|
||||||
|
|
||||||
/* loop through peer list from cluster to configure SCTSAP */
|
/* loop through peer list from cluster to configure SCTSAP */
|
||||||
|
|
||||||
for(x = 0; x < clust->numOfPeers;x++){
|
for(x = 0; x < clust->numOfPeers;x++){
|
||||||
|
@ -800,13 +808,18 @@ static int ftmod_m2ua_peer_config(int id)
|
||||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config SUCCESS \n", id);
|
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config SUCCESS \n", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clust->sct_sap_id = id;
|
||||||
|
|
||||||
|
/* set configured flag for cluster and peer */
|
||||||
|
clust->flags |= SNGSS7_CONFIGURED;
|
||||||
|
peer->flags |= SNGSS7_CONFIGURED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0x0;;
|
return 0x0;;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ftmod_m2ua_sctsap_config(int m2ua_inf_id, int sctp_id)
|
|
||||||
|
static int ftmod_m2ua_sctsap_config(int sct_sap_id, int sctp_id)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Pst pst;
|
Pst pst;
|
||||||
|
@ -836,7 +849,7 @@ static int ftmod_m2ua_sctsap_config(int m2ua_inf_id, int sctp_id)
|
||||||
cfg.t.cfg.s.sctSapCfg.reConfig.selector = 0;
|
cfg.t.cfg.s.sctSapCfg.reConfig.selector = 0;
|
||||||
|
|
||||||
/* service user SAP ID */
|
/* service user SAP ID */
|
||||||
cfg.t.cfg.s.sctSapCfg.suId = m2ua_inf_id;
|
cfg.t.cfg.s.sctSapCfg.suId = sct_sap_id;
|
||||||
/* service provider ID */
|
/* service provider ID */
|
||||||
cfg.t.cfg.s.sctSapCfg.spId = sctp_id;
|
cfg.t.cfg.s.sctSapCfg.spId = sctp_id;
|
||||||
/* source port number */
|
/* source port number */
|
||||||
|
@ -1275,7 +1288,7 @@ int ftmod_ss7_m2ua_start(void){
|
||||||
x = 1;
|
x = 1;
|
||||||
while (x < (MW_MAX_NUM_OF_PEER)) {
|
while (x < (MW_MAX_NUM_OF_PEER)) {
|
||||||
if ((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].id !=0) &&
|
if ((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].id !=0) &&
|
||||||
(!(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].flags & SNGSS7_CONFIGURED)) &&
|
((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].flags & SNGSS7_CONFIGURED)) &&
|
||||||
(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].init_sctp_assoc)) {
|
(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[x].init_sctp_assoc)) {
|
||||||
if(ftmod_init_sctp_assoc(x)) {
|
if(ftmod_init_sctp_assoc(x)) {
|
||||||
ftdm_log (FTDM_LOG_ERROR ,"ftmod_init_sctp_assoc FAIL for peerId[%d] \n", x);
|
ftdm_log (FTDM_LOG_ERROR ,"ftmod_init_sctp_assoc FAIL for peerId[%d] \n", x);
|
||||||
|
@ -1296,9 +1309,16 @@ int ftmod_ss7_m2ua_start(void){
|
||||||
|
|
||||||
static int ftmod_open_endpoint(int id)
|
static int ftmod_open_endpoint(int id)
|
||||||
{
|
{
|
||||||
|
int ret = 0x00;
|
||||||
Pst pst;
|
Pst pst;
|
||||||
MwMgmt cntrl;
|
MwMgmt cntrl;
|
||||||
sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
||||||
|
sng_m2ua_cluster_cfg_t* clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
||||||
|
|
||||||
|
if(clust->flags & SNGSS7_M2UA_EP_OPENED) {
|
||||||
|
ftdm_log (FTDM_LOG_INFO ," END-POINT already opened\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
memset((U8 *)&pst, 0, sizeof(Pst));
|
memset((U8 *)&pst, 0, sizeof(Pst));
|
||||||
memset((U8 *)&cntrl, 0, sizeof(MwMgmt));
|
memset((U8 *)&cntrl, 0, sizeof(MwMgmt));
|
||||||
|
@ -1324,7 +1344,12 @@ static int ftmod_open_endpoint(int id)
|
||||||
cntrl.t.cntrl.action = AMWENDPOPEN;
|
cntrl.t.cntrl.action = AMWENDPOPEN;
|
||||||
cntrl.t.cntrl.s.suId = m2ua->id; /* M2UA sct sap Id */
|
cntrl.t.cntrl.s.suId = m2ua->id; /* M2UA sct sap Id */
|
||||||
|
|
||||||
return (sng_cntrl_m2ua (&pst, &cntrl));
|
|
||||||
|
if(0 == (ret = sng_cntrl_m2ua (&pst, &cntrl))){
|
||||||
|
clust->flags |= SNGSS7_M2UA_EP_OPENED;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************************************************************/
|
/***********************************************************************************************************************/
|
||||||
|
@ -1400,9 +1425,17 @@ static int ftmod_sctp_tucl_tsap_bind(int id)
|
||||||
|
|
||||||
static int ftmod_m2ua_sctp_sctsap_bind(int id)
|
static int ftmod_m2ua_sctp_sctsap_bind(int id)
|
||||||
{
|
{
|
||||||
|
int ret = 0x00;
|
||||||
Pst pst;
|
Pst pst;
|
||||||
MwMgmt cntrl;
|
MwMgmt cntrl;
|
||||||
sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
||||||
|
sng_m2ua_cluster_cfg_t* clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
||||||
|
|
||||||
|
if(clust->flags & SNGSS7_ACTIVE) {
|
||||||
|
ftdm_log (FTDM_LOG_INFO ," SCT-SAP is already enabled\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
memset((U8 *)&pst, 0, sizeof(Pst));
|
memset((U8 *)&pst, 0, sizeof(Pst));
|
||||||
memset((U8 *)&cntrl, 0, sizeof(MwMgmt));
|
memset((U8 *)&cntrl, 0, sizeof(MwMgmt));
|
||||||
|
@ -1427,8 +1460,10 @@ static int ftmod_m2ua_sctp_sctsap_bind(int id)
|
||||||
cntrl.t.cntrl.action = ABND;
|
cntrl.t.cntrl.action = ABND;
|
||||||
cntrl.t.cntrl.s.suId = m2ua->id;
|
cntrl.t.cntrl.s.suId = m2ua->id;
|
||||||
|
|
||||||
return (sng_cntrl_m2ua (&pst, &cntrl));
|
if(0 == (ret = sng_cntrl_m2ua (&pst, &cntrl))){
|
||||||
|
clust->flags |= SNGSS7_ACTIVE;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
/***********************************************************************************************************************/
|
/***********************************************************************************************************************/
|
||||||
static int ftmod_nif_m2ua_dlsap_bind(int id)
|
static int ftmod_nif_m2ua_dlsap_bind(int id)
|
||||||
|
@ -1668,7 +1703,8 @@ int ftmod_m2ua_ssta_req(int elemt, int id, MwMgmt* cfm)
|
||||||
case STMWSCTSAP:
|
case STMWSCTSAP:
|
||||||
{
|
{
|
||||||
m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
|
||||||
ssta.t.ssta.id.suId = m2ua->id ; /* lower sap Id */
|
clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
||||||
|
ssta.t.ssta.id.suId = clust->sct_sap_id ; /* lower sap Id */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case STMWDLSAP:
|
case STMWDLSAP:
|
||||||
|
|
|
@ -96,6 +96,7 @@ typedef struct sng_m2ua_cluster_cfg{
|
||||||
char name[MAX_NAME_LEN];
|
char name[MAX_NAME_LEN];
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
uint32_t id; /* ID */
|
uint32_t id; /* ID */
|
||||||
|
uint32_t sct_sap_id; /* Internal - sct_sap_id */
|
||||||
uint8_t trfMode; /* Traffic mode. This parameter defines the mode in which this m2ua cluster is supposed to work */
|
uint8_t trfMode; /* Traffic mode. This parameter defines the mode in which this m2ua cluster is supposed to work */
|
||||||
uint8_t loadShareAlgo; /* This parameter defines the M2UA load share algorithm which is used to distribute the traffic */
|
uint8_t loadShareAlgo; /* This parameter defines the M2UA load share algorithm which is used to distribute the traffic */
|
||||||
uint16_t numOfPeers; /* idx to m2ua_peer profile */
|
uint16_t numOfPeers; /* idx to m2ua_peer profile */
|
||||||
|
|
|
@ -767,9 +767,10 @@ typedef enum {
|
||||||
|
|
||||||
SNGSS7_M2UA_PRESENT = (1 << 18),
|
SNGSS7_M2UA_PRESENT = (1 << 18),
|
||||||
SNGSS7_M2UA_STARTED = (1 << 19),
|
SNGSS7_M2UA_STARTED = (1 << 19),
|
||||||
|
SNGSS7_M2UA_EP_OPENED = (1 << 20),
|
||||||
|
|
||||||
SNGSS7_NIF_PRESENT = (1 << 20),
|
SNGSS7_NIF_PRESENT = (1 << 21),
|
||||||
SNGSS7_NIF_STARTED = (1 << 21),
|
SNGSS7_NIF_STARTED = (1 << 22),
|
||||||
|
|
||||||
} sng_task_flag_t;
|
} sng_task_flag_t;
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue