OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified:

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/drivers/slsi/sls_lslr.h


File /code/strss7/drivers/slsi/sls_lslr.h



#ident "@(#) $Id: sls_lslr.h,v 0.8.2.1 2002/10/18 02:40:38 brian Exp $"

#ifndef __SLS_LSLR_H__
#define __SLS_LSLR_H__

/*
 *  Signalling Link Restoration (LSLR) Figure 39/Q.704
 */

static inline void lk_lsac_restoration_unsuccessful(lk_t * lk);

static inline void lk_lslr_start_restoration(lk_t * lk)
{
	if (lk->statem.lslr_state == LK_STATE_IDLE) {
		lk_lsac_start_signalling_link(lk);
	}
}
static inline void lk_lslr_restart_restoration(lk_t * lk)
{
	if (lk->statem.lslr_state == LK_STATE_IDLE) {
		if (lk->statem.replace_terminal) {
			lk->statem.lslr_state = LK_STATE_WAIT_FOR_TERMINAL;
			lk->statem.restoration = 1;
			lk_lsta_determine_terminal(lk);
		} else if (lk->statem.replace_data_link) {
			lk->statem.lslr_state = LK_STATE_WAIT_FOR_DATA_LINK;
			lk->statem.restoration = 1;
			lk_lsda_determine_data_link(lk);
		} else {
			lk_lsac_restoration_unsuccessful(lk);
			lk_lsac_start_signalling_link(lk);
		}
	}
}
static inline void lk_lslr_terminal(lk_t * lk)
{
	if (lk->statem.lslr_state == LK_STATE_WAIT_FOR_TERMINAL) {
		lk->statem.lslr_state = LK_STATE_IDLE;
		lk_l1_connect(lk);
		lk_lsac_start_signalling_link(lk);
	}
}
static inline void lk_lslr_data_link(lk_t * lk)
{
	if (lk->statem.lslr_state == LK_STATE_WAIT_FOR_DATA_LINK) {
		lk->statem.lslr_state = LK_STATE_IDLE;
		lk_l1_connect(lk);
		lk_lsac_start_signalling_link(lk);
	}
}
static inline void lk_lslr_no_terminal(lk_t * lk)
{				/* called by MTP module */
	if (lk->statem.lslr_state == LK_STATE_WAIT_FOR_TERMINAL) {
		lk->statem.lslr_state = LK_STATE_IDLE;
		lk_lsac_restoration_unsuccessful(lk);
		lk_lsac_start_signalling_link(lk);
	}
}
static inline void lk_lslr_no_data_link(lk_t * lk)
{
	if (lk->statem.lslr_state == LK_STATE_WAIT_FOR_DATA_LINK) {
		lk->statem.lslr_state = LK_STATE_IDLE;
		lk_lsac_restoration_unsuccessful(lk);
		lk_lsac_start_signalling_link(lk);
	}
}

#endif				/* __SLS_LSLR_H__ */


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/drivers/slsi/sls_lslr.h

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: