OpenSS7 SS7 for the Common Man |
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
||||||||||||||||||||||||||
Home | Overview | Status | News | Documentation | Resources | About | |||||||||||||||||||||
File /code/strss7/drivers/slsi/sls_lsda.h#ident "@(#) $Id: sls_lsda.h,v 0.8.2.1 2002/10/18 02:40:38 brian Exp $" #ifndef __SLS_LSDA_H__ #define __SLS_LSDA_H__ /* * Signalling Link Data Link Allocation (LSDA) Figure 42/Q.704 */ static void inline lk_lsda_determine_data_link(lk_t * lk) { switch (lk->statem.lsda_state) { case LK_STATE_IDLE: lk->statem.lsda_state = LK_STATE_WAIT; /* FIXME: request alternate routing data */ break; } } static void inline lk_lsda_data_link_available(lk_t * lk) { switch (lk->statem.lsda_state) { case LK_STATE_IDLE: lk->statem.data_link_available = 1; break; case LK_STATE_WAIT: lk->statem.data_link_available = 1; break; case LK_STATE_WAITING: lk->statem.data_link_available = 1; break; case LK_STATE_WAITING_FOR_CONNECTION: lk->statem.data_link_available = 1; break; } } static void inline lk_lsda_signalling_data_link_connection_order(lk_t * lk) { /* from remote MTP */ switch (lk->statem.lsda_state) { case LK_STATE_IDLE: lk->statem.lsda_state = LK_STATE_WAITING; /* FIXME: request alternate routing data */ break; } } static void inline lk_lsda_connection_successful(lk_t * lk) { /* from remote MTP */ switch (lk->statem.lsda_state) { case LK_STATE_WAITING_FOR_CONNECTION: lk_timer_stop(t7); if (lk->statem.activation) lk_lsla_data_link(lk); if (lk->statem.restoration) lk_lslr_data_link(lk); lk->statem.activation = 0; lk->statem.restoration = 0; lk->statem.lsda_state = LK_STATE_IDLE; break; } } static void lk_t7_timeout(lk_t * lk) { /* FIXME: make me dooo something */ } static void inline lk_lsda_connection_not_successful(lk_t * lk) { /* from remote MTP */ switch (lk->statem.lsda_state) { case LK_STATE_WAITING_FOR_CONNECTION: lk_timer_stop(t7); if (lk->statem.data_link_available) { /* FIXME: is this check correct? */ /* FIXME: select data link */ // mtp_hmrt_signalling_data_link_connection_order(lk); lk_timer_start(t7); lk->statem.lsda_state = LK_STATE_WAITING_FOR_CONNECTION; } else { if (lk->statem.activation) lk_lsla_no_data_link(lk); if (lk->statem.restoration) lk_lslr_no_data_link(lk); lk->statem.activation = 0; lk->statem.restoration = 0; lk->statem.lsda_state = LK_STATE_IDLE; } break; } } static void inline lk_lsda_connection_not_possible(lk_t * lk) { /* from remote MTP */ switch (lk->statem.lsda_state) { case LK_STATE_WAITING_FOR_CONNECTION: lk_timer_stop(t7); if (lk->statem.activation) lk_lsla_no_data_link(lk); if (lk->statem.restoration) lk_lslr_no_data_link(lk); lk->statem.activation = 0; lk->statem.restoration = 0; lk->statem.lsda_state = LK_STATE_IDLE; break; } } static void inline lk_lsda_alternate_routing_data(lk_t * lk) { /* * Alternate routing data identifies alternative link * to be used for routing link management messages. */ switch (lk->statem.lsda_state) { case LK_STATE_WAIT: if (lk->statem.data_link_available) { /* FIXME: is this check correct? */ /* FIXME: select data link */ // mtp_hmrt_signalling_data_link_connection_order(lk); lk_timer_start(t7); lk->statem.lsda_state = LK_STATE_WAITING_FOR_CONNECTION; } else { if (lk->statem.activation) lk_lsla_no_data_link(lk); if (lk->statem.restoration) lk_lslr_no_data_link(lk); lk->statem.activation = 0; lk->statem.restoration = 0; lk->statem.lsda_state = LK_STATE_IDLE; } break; case LK_STATE_WAITING: break; } } #endif /* __SLS_LSDA_H__ */
|
|||||||||||||||||||||||||||
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |