Q921.c File Reference

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include "Q921.h"
#include "Q921priv.h"
#include "mfifo.h"

Go to the source code of this file.

Data Structures

struct  Q921StateName
 Static array of state name / value mappings.

Defines

#define APPEND_MSG(buf, off, lef, fmt,...)

Functions

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)
void Q921TimerTick (L2TRUNK trunk)
void Q921SetGetTimeCB (L2ULONG(*callback)(void))
int Q921QueueHDLCFrame (L2TRUNK trunk, L2UCHAR *b, L2INT size)
int Q921Rx32 (L2TRUNK trunk, Q921DLMsg_t ind, L2UCHAR tei, L2UCHAR *Mes, L2INT Size)
int Q921Start (L2TRUNK trunk)
 Start trunk.
int Q921Stop (L2TRUNK trunk)
 Stop trunk.
int Q921Rx12 (L2TRUNK trunk)
void Q921SetLogCB (L2TRUNK trunk, Q921LogCB_t func, void *priv)
 Set logging callback.
void Q921SetLogLevel (L2TRUNK trunk, Q921LogLevel_t level)
 Set loglevel of Q.921 logging functions.


Define Documentation

#define APPEND_MSG ( buf,
off,
lef,
fmt,
...   ) 

Value:

len = snprintf(buf + off, lef, fmt, ##__VA_ARGS__);     \
        if(len > 0) {                                           \
                off += len;                                     \
                lef -= len;                                     \
        } else {                                                \
                goto out;                                       \
        }

Definition at line 542 of file Q921.c.


Function Documentation

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

Definition at line 366 of file Q921.c.

References INITIALIZED_MAGIC, MFIFOCreate(), Q921_IS_PTMP, Q921_IS_PTMP_NT, Q921_TEI_MAX, and Q921MAXHDLCSPACE.

int Q921QueueHDLCFrame ( L2TRUNK  trunk,
L2UCHAR *  b,
L2INT  size 
)

Definition at line 1367 of file Q921.c.

References MFIFOWriteMes().

int Q921Rx12 ( L2TRUNK  trunk  ) 

Receive incoming data from Layer 1

Definition at line 3004 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.

int Q921Rx32 ( L2TRUNK  trunk,
Q921DLMsg_t  ind,
L2UCHAR  tei,
L2UCHAR *  Mes,
L2INT  Size 
)

TODO: NT mode handling? Need a way to get Link context from Q.931

Definition at line 1535 of file Q921.c.

void Q921SetGetTimeCB ( L2ULONG(*)(void)  callback  ) 

Set custom callback to get current time in ms

Definition at line 1343 of file Q921.c.

void Q921SetLogCB ( L2TRUNK  trunk,
Q921LogCB_t  func,
void *  priv 
)

Set logging callback.

Q921SetLogCB

Parameters:
[in] trunk pointer to Q921 data struct
[in] func pointer to logging callback function
[in] priv pointer to private data
Author:
Stefan Knoblich

Definition at line 3069 of file Q921.c.

void Q921SetLogLevel ( L2TRUNK  trunk,
Q921LogLevel_t  level 
)

Set loglevel of Q.921 logging functions.

Q921SetLogLevel

Parameters:
[in] trunk pointer to Q921 data struct
[in] level new loglevel
Author:
Stefan Knoblich

Definition at line 3086 of file Q921.c.

int Q921Start ( L2TRUNK  trunk  ) 

Start trunk.

Q921Start

Parameters:
[in] trunk pointer to Q921 data struct
Returns:
> 0 on success; <= 0 on error

Definition at line 1776 of file Q921.c.

int Q921Stop ( L2TRUNK  trunk  ) 

Stop trunk.

Q921Stop

Parameters:
[in] trunk pointer to Q921 data struct
Returns:
> 0 on success; <= 0 on error
Author:
Stefan Knoblich

Definition at line 1855 of file Q921.c.

void Q921TimerTick ( L2TRUNK  trunk  ) 

Update internal timers

Definition at line 1301 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.


Generated on Tue Apr 7 17:38:19 2009 for mod_ssh by  doxygen 1.5.4