libisdn
|
#include "Q9XXplatform.h"
Go to the source code of this file.
#define L2INT int /* Min 16 bit signed */ |
Definition at line 106 of file Q921.h.
Referenced by Q921Rx12(), and Q921Rx32().
#define L2TRUNK Q921Data_t * |
#define L2UCHAR unsigned char /* Min 8 bit */ |
Definition at line 104 of file Q921.h.
Referenced by Q921Rx12().
#define L2ULONG unsigned long /* Min 32 bit */ |
Definition at line 107 of file Q921.h.
Referenced by Q921TimerTick().
#define Q921_STATISTICS |
#define Q921_STATISTICS_EXTENDED |
#define Q921_TEI_BCAST 127 |
Definition at line 110 of file Q921.h.
Referenced by Q921Rx12(), Q921Rx32(), and Q921Start().
#define Q921_TEI_DYN_MAX 126 |
#define Q921_TEI_DYN_MIN 64 |
#define Q921_TEI_MAX Q921_TEI_BCAST |
Definition at line 111 of file Q921.h.
Referenced by Q921_InitTrunk(), Q921Start(), Q921Stop(), and Q921TimerTick().
#define Q921MAXHDLCSPACE 3000 |
Definition at line 103 of file Q921.h.
Referenced by Q921_InitTrunk(), and Q921Start().
typedef struct Q921Data Q921Data_t |
Q.921 Trunk context.
Q921Data_t
typedef int(* Q921LogCB_t)(void *, Q921LogLevel_t, char *, L2INT) |
typedef int(* Q921Tx21CB_t)(void *, L2UCHAR *, L2INT) |
typedef int(* Q921Tx23CB_t)(void *, Q921DLMsg_t ind, L2UCHAR tei, L2UCHAR *, L2INT) |
anonymous enum |
enum Q921DLMsg_t |
enum Q921LogLevel_t |
enum Q921NetType_t |
enum Q921NetUser_t |
Q921_API int Q921_InitTrunk | ( | L2TRUNK | trunk, |
L2UCHAR | sapi, | ||
L2UCHAR | tei, | ||
Q921NetUser_t | NetUser, | ||
Q921NetType_t | NetType, | ||
L2INT | hsize, | ||
Q921Tx21CB_t | cb21, | ||
Q921Tx23CB_t | cb23, | ||
void * | priv21, | ||
void * | priv23 | ||
) |
Public functions Initialize Q.921 Trunk
[in] | trunk | Q.921 trunk |
[in] | sapi | SAPI |
[in] | tei | TEI (ignored in PTMP mode) |
[in] | NetUser | Mode (Network / User) |
[in] | NetType | Type (PTP / PTMP) |
[in] | hsize | |
[in] | cb21 | Layer1 TX callback, called to send Q.921 to Layer 1 |
[in] | cb23 | Layer3 RX callback, called to submit frames to Layer 3 |
[in] | priv21 | Custom data for Layer1 TX callback |
[in] | priv23 | Custom data for Layer3 RX callback |
Definition at line 366 of file Q921.c.
References INITIALIZED_MAGIC, MFIFOCreate(), Q921_IS_PTMP, Q921_IS_PTMP_NT, Q921_TEI_MAX, Q921MAXHDLCSPACE, and Q921_Link::tei.
Q921_API int Q921Establish | ( | L2TRUNK | trunk, |
L2UCHAR | tei | ||
) |
Establish Q.921 link
[in] | trunk | Q.921 trunk |
[in] | tei | TEI of link to establish |
Definition at line 1613 of file Q921.c.
References Q921_Link::IFrameQueue, MFIFOClear(), Q921_FLAG_L3_INITIATED, Q921_IS_NT, Q921_LINK_CONTEXT, Q921_LOG_DEBUG, Q921_SET_FLAG, Q921_STATE_AWAITING_ESTABLISHMENT, Q921_STATE_MULTIPLE_FRAME_ESTABLISHED, Q921_STATE_TEI_ASSIGNED, Q921_STATE_TIMER_RECOVERY, Q921_Link::state, and Q921_Link::tei.
Referenced by Q921Rx32().
Q921_API Q921LogLevel_t Q921GetLogLevel | ( | L2TRUNK | trunk | ) |
Get Loglevel.
Get log level
[in] | trunk | Q.921 trunk |
Q921GetLogLevel
trunk | Q.921 trunk |
Definition at line 3328 of file Q921.c.
References Q921_LOG_NONE.
Q921_API const char* Q921GetLogLevelName | ( | L2TRUNK | trunk | ) |
Get Loglevel Name.
Get log level name
[in] | trunk | Q.921 trunk |
Q921GetLogLevelName
trunk | Q.921 trunk |
Definition at line 3356 of file Q921.c.
References Q921_LOG_NONE.
Q921_API int Q921IsEstablished | ( | L2TRUNK | trunk, |
L2UCHAR | tei | ||
) |
Is Q.921 link ready to transmit data?
[in] | trunk | Q.921 trunk |
[in] | tei | TEI of link to check |
Definition at line 1606 of file Q921.c.
References Q921_LINK_CONTEXT, Q921_STATE_MULTIPLE_FRAME_ESTABLISHED, and Q921_Link::state.
Q921_API int Q921QueueHDLCFrame | ( | L2TRUNK | trunk, |
L2UCHAR * | b, | ||
L2INT | size | ||
) |
Enqueue new incoming Q.921 frame from Layer 1
[in] | trunk | Q.921 trunk |
[in] | b | Buffer to incoming data |
[in] | size | Size of incoming data |
Definition at line 1377 of file Q921.c.
References MFIFOWriteMes().
Q921_API int Q921Release | ( | L2TRUNK | trunk, |
L2UCHAR | tei | ||
) |
Release Q.921 link
[in] | trunk | Q.921 trunk |
[in] | tei | TEI of link to release |
Definition at line 1667 of file Q921.c.
References Q921_Link::IFrameQueue, MFIFOClear(), Q921_Link::N200, Q921_COMMAND, Q921_DL_RELEASE, Q921_IS_NT, Q921_LINK_CONTEXT, Q921_LOG_DEBUG, Q921_STATE_AWAITING_RELEASE, Q921_STATE_MULTIPLE_FRAME_ESTABLISHED, Q921_STATE_TEI_ASSIGNED, Q921_STATE_TIMER_RECOVERY, Q921_Link::state, and Q921_Link::tei.
Referenced by Q921Rx32().
Process Q.921 frame that has been enqueued using Q921QueueHDLCFrame()
Receive incoming data from Layer 1
[in] | trunk | Q.921 trunk |
Definition at line 3222 of file Q921.c.
References L2INT, L2UCHAR, MFIFOGetMesPtr(), MFIFOKillNext(), Q921_IS_PTMP_TE, Q921_LINK_CONTEXT, Q921_LOG_DEBUG, Q921_LOG_ERROR, Q921_STATE_TEI_ASSIGNED, Q921_STATE_TEI_UNASSIGNED, Q921_TEI_BCAST, Q921_Link::state, and Q921_Link::tei.
Receive data from Layer 3
[in] | trunk | Q.921 trunk |
[in] | ind | Type of message |
[in] | tei | TEI of this message |
[in] | Mes | Message |
[in] | Size | Size of message (octets) |
TODO: NT mode handling? Need a way to get Link context from Q.931
Definition at line 1710 of file Q921.c.
References Q921_Link::IFrameQueue, L2INT, MFIFOClear(), Q921_Link::N200, Q921_COMMAND, Q921_DL_DATA, Q921_DL_ESTABLISH, Q921_DL_RELEASE, Q921_DL_UNIT_DATA, Q921_FLAG_L3_INITIATED, Q921_IS_NT, Q921_LINK_CONTEXT, Q921_LOG_DEBUG, Q921_SET_FLAG, Q921_STATE_AWAITING_ESTABLISHMENT, Q921_STATE_AWAITING_RELEASE, Q921_STATE_MULTIPLE_FRAME_ESTABLISHED, Q921_STATE_TEI_ASSIGNED, Q921_STATE_TIMER_RECOVERY, Q921_TEI_BCAST, Q921Establish(), Q921Release(), Q921_Link::state, and Q921_Link::tei.
Q921_API void Q921SetGetTimeCB | ( | L2ULONG(*)(void) | callback | ) |
Q921_API void Q921SetLogCB | ( | L2TRUNK | trunk, |
Q921LogCB_t | func, | ||
void * | priv | ||
) |
Set logging callback.
Set logging callback and private data
[in] | trunk | Q.921 trunk |
[in] | func | Callback function |
[in] | priv | Custom data passed to callback |
Q921SetLogCB
[in] | trunk | pointer to Q921 data struct |
[in] | func | pointer to logging callback function |
[in] | priv | pointer to private data |
Q921_API void Q921SetLogLevel | ( | L2TRUNK | trunk, |
Q921LogLevel_t | level | ||
) |
Set loglevel of Q.921 logging functions.
Set log level
[in] | trunk | Q.921 trunk |
[in] | level | Log level |
Q921SetLogLevel
[in] | trunk | pointer to Q921 data struct |
[in] | level | new loglevel |
Definition at line 3305 of file Q921.c.
References Q921_LOG_DEBUG, and Q921_LOG_NONE.
Start trunk.
Start Q.921 Trunk
[in] | trunk | Q.921 trunk |
Q921Start
[in] | trunk | pointer to Q921 data struct |
Definition at line 1964 of file Q921.c.
References Q921_Link::IFrameQueue, Q921_Link::IFrameResendQueue, INITIALIZED_MAGIC, MFIFOCreate(), Q921_COMMAND, Q921_IS_PTMP, Q921_IS_PTMP_NT, Q921_IS_PTMP_TE, Q921_IS_PTP, Q921_IS_TE, Q921_LINK_CONTEXT, Q921_LOG_DEBUG, Q921_STATE_TEI_ASSIGNED, Q921_STATE_TEI_UNASSIGNED, Q921_TEI_BCAST, Q921_TEI_MAX, Q921_TRUNK_CONTEXT, Q921MAXHDLCSPACE, Q921_Link::state, Q921_Link::tei, and Q921_Link::UIFrameQueue.
Stop trunk.
Stop Q.921 Trunk
[in] | trunk | Q.921 trunk |
Q921Stop
[in] | trunk | pointer to Q921 data struct |
Definition at line 2043 of file Q921.c.
References Q921_Link::IFrameQueue, Q921_Link::IFrameResendQueue, MFIFOClear(), Q921_IS_PTMP_NT, Q921_IS_PTMP_TE, Q921_IS_STOPPED, Q921_STATE_STOPPED, Q921_TEI_MAX, Q921_TRUNK_CONTEXT, Q921_Link::tei, and Q921_Link::UIFrameQueue.
Q921_API void Q921TimerTick | ( | L2TRUNK | trunk | ) |
Update internal timers
[in] | trunk | Q.921 trunk |
Definition at line 1311 of file Q921.c.
References L2ULONG, Q921_IS_PTMP_NT, Q921_LINK_CONTEXT, Q921_STATE_STOPPED, Q921_TEI_MAX, Q921_Link::state, Q921_Link::T200, Q921_Link::T201, Q921_Link::T203, and Q921_Link::tei.