static ftdm_status_t ftmod_sctp_sap_config(int id);
static ftdm_status_t ftmod_sctp_tsap_config(int id);
static int ftmod_m2ua_gen_config(void);
-static int ftmod_m2ua_sctsap_config(int id);
+static int ftmod_m2ua_sctsap_config(int m2ua_inf_id, int sctp_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_cluster_config(int idx);
static int ftmod_m2ua_dlsap_config(int idx);
static int ftmod_nif_gen_config(void);
if((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].id !=0) &&
(!(g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].flags & SNGSS7_CONFIGURED))) {
- if(ftmod_m2ua_sctsap_config(x)) {
- ftdm_log (FTDM_LOG_ERROR ,"M2UA SCTSAP[%d] configuration: NOT OK\n", x);
- return FTDM_FAIL;
- }else {
- ftdm_log (FTDM_LOG_INFO ,"M2UA SCTSAP[%d] configuration: OK\n", x);
- }
-
/****************************************************************************************************/
/* M2UA PEER configurations */
}
/**********************************************************************************************/
-static int ftmod_m2ua_sctsap_config(int id)
+static int ftmod_m2ua_peer_config(int id)
+{
+ int x = 0;
+ int peer_id = 0;
+ 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];
+ sng_m2ua_peer_cfg_t* peer = NULL;
+
+ /* loop through peer list from cluster to configure SCTSAP */
+
+ for(x = 0; x < clust->numOfPeers;x++){
+ peer_id = clust->peerIdLst[x];
+ peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[peer_id];
+ if(ftmod_m2ua_sctsap_config(id, peer->sctpId)){
+ ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_sctsap_config: M2UA SCTSAP for M2UA Intf Id[%d] config FAILED \n", id);
+ return 0x01;
+ }else{
+ ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_sctsap_config: M2UA SCTSAP for M2UA Intf Id[%d] config SUCCESS \n", id);
+ }
+ if(ftmod_m2ua_peer_config1(id, peer_id)){
+ ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config FAILED \n", id);
+ return 0x01;
+ }else{
+ ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config SUCCESS \n", id);
+ }
+
+
+ }
+
+ return 0x0;;
+}
+
+static int ftmod_m2ua_sctsap_config(int m2ua_inf_id, int sctp_id)
{
int i;
Pst pst;
MwMgmt cfg;
- sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
- sng_sctp_link_t *sctp = &g_ftdm_sngss7_data.cfg.sctpCfg.linkCfg[m2ua->sctpId];
+ sng_sctp_link_t *sctp = &g_ftdm_sngss7_data.cfg.sctpCfg.linkCfg[sctp_id];
memset((U8 *)&cfg, 0, sizeof(MwMgmt));
memset((U8 *)&pst, 0, sizeof(Pst));
cfg.hdr.elmId.elmnt = STMWSCTSAP; /* SCTSAP */
cfg.hdr.transId = 0; /* transaction identifier */
- cfg.hdr.response.selector = 0;
+ cfg.hdr.response.selector = 0;
cfg.hdr.response.prior = PRIOR0;
cfg.hdr.response.route = RTESPEC;
cfg.hdr.response.mem.region = S_REG;
cfg.t.cfg.s.sctSapCfg.reConfig.selector = 0;
/* service user SAP ID */
- cfg.t.cfg.s.sctSapCfg.suId = m2ua->id;
+ cfg.t.cfg.s.sctSapCfg.suId = m2ua_inf_id;
/* service provider ID */
- cfg.t.cfg.s.sctSapCfg.spId = m2ua->sctpId;
+ cfg.t.cfg.s.sctSapCfg.spId = sctp_id;
/* source port number */
cfg.t.cfg.s.sctSapCfg.srcPort = 2904;
/* interface address */
/****************************************************************************************************/
/* M2UA - Peer configuration */
-static int ftmod_m2ua_peer_config(int id)
+static int ftmod_m2ua_peer_config1(int m2ua_inf_id, int peer_id)
{
int i;
Pst pst;
MwMgmt cfg;
- sng_m2ua_cfg_t* m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[id];
- sng_m2ua_peer_cfg_t* peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[m2ua->peerId];
+ sng_m2ua_peer_cfg_t* peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[peer_id];
sng_sctp_link_t *sctp = &g_ftdm_sngss7_data.cfg.sctpCfg.linkCfg[peer->sctpId];
memset((U8 *)&cfg, 0, sizeof(MwMgmt));
{
MwMgmt ssta;
Pst pst;
+ int peerId = 0x01;
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];
- sng_m2ua_peer_cfg_t* peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[m2ua->peerId];
+ sng_m2ua_peer_cfg_t* peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[peerId]; /*TODO - KAPIL - need to add proper peerId*/
memset((U8 *)&pst, 0, sizeof(Pst));
memset((U8 *)&ssta, 0, sizeof(MwMgmt));
}
SS7_DEBUG("Found an nif node_type = %d\n", sng_m2ua.nodeType);
/**********************************************************************/
- } else if (!strcasecmp(parm->var, "sctp_id")) {
- /**********************************************************************/
- sng_m2ua.sctpId=atoi(parm->val);
-
- SS7_DEBUG("Found an m2ua sctp_id = %d\n", sng_m2ua.sctpId);
- /**********************************************************************/
- } else if (!strcasecmp(parm->var, "peerd_id")) {
- /**********************************************************************/
- sng_m2ua.peerId=atoi(parm->val);
-
- SS7_DEBUG("Found an m2ua peerd_id = %d\n", sng_m2ua.peerId);
/**********************************************************************/
} else if (!strcasecmp(parm->var, "cluster_id")) {
/**********************************************************************/
g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[i].id = m2ua_iface->id;
g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[i].nodeType = m2ua_iface->nodeType;
- g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[i].sctpId = m2ua_iface->sctpId;
- g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[i].peerId = m2ua_iface->peerId;
g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[i].clusterId = m2ua_iface->clusterId;
sngss7_set_flag(&g_ftdm_sngss7_data.cfg, SNGSS7_M2UA_PRESENT);