diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-07-28 03:32:52 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-07-28 03:36:32 +0800 |
commit | 97f66e2b534e2a54c63360a3f8134a0189c54e25 (patch) | |
tree | 903e34443767b09ef1d11575f8a1502f6295c7fd /include/mtp_data.h |
Public release of the cellmgr_ng code to convert E1 to IPA SCCP
Diffstat (limited to 'include/mtp_data.h')
-rw-r--r-- | include/mtp_data.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/include/mtp_data.h b/include/mtp_data.h new file mode 100644 index 0000000..d8cdff3 --- /dev/null +++ b/include/mtp_data.h @@ -0,0 +1,88 @@ +/* + * (C) 2010 by Holger Hans Peter Freyther <zecke@selfish.org> + * (C) 2010 by On-Waves + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ +#ifndef mtp_data_h +#define mtp_data_h + +#include <laf0rge1/msgb.h> +#include <laf0rge1/timer.h> + +/* MTP Level3 timers */ + +/* Timers for SS7 */ +#define MTP_T1 12, 0 +#define MTP_T2 30, 0 +#define START_DELAY 8, 0 + +/** + * The state of the mtp_link in terms of layer3 and upwards + */ +struct mtp_link { + /* routing info.. */ + int dpc, opc; + + /* internal state */ + /* the MTP1 link is up */ + int available; + int running; + int sccp_up; + + /* misc data */ + u_int8_t test_ptrn[14]; + + int sltm_pending; + struct llist_head pending_msgs; + int sltm_once; + int was_up; + + + /* the associated link */ + int link; + + int slta_misses; + struct timer_list t1_timer; + struct timer_list t2_timer; + + struct timer_list delay_timer; +}; + + +struct mtp_link *mtp_link_alloc(void); +void mtp_link_stop(struct mtp_link *link); +void mtp_link_reset(struct mtp_link *link); +int mtp_link_data(struct mtp_link *link, struct msgb *msg); +int mtp_link_submit_sccp_data(struct mtp_link *link, int sls, const u_int8_t *data, unsigned int length); + + +/* one time init function */ +void mtp_link_init(void); + +/* to be implemented for MSU sending */ +void mtp_link_submit(struct mtp_link *link, struct msgb *msg); +void mtp_link_forward_sccp(struct mtp_link *link, struct msgb *msg, int sls); +void mtp_link_restart(struct mtp_link *link); +void mtp_link_slta_recv(struct mtp_link *link); +void mtp_link_sccp_down(struct mtp_link *link); + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) +#endif + +#endif |