ISDNFrame Class Reference

An ISDN frame. More...

#include <yatesig.h>

Inheritance diagram for ISDNFrame:

RefObject GenObject

List of all members.

Public Types

enum  Type {
  DISC = 1, DM = 2, FRMR = 3, I = 4,
  REJ = 5, RNR = 6, RR = 7, SABME = 8,
  UA = 9, UI = 10, XID = 11, Invalid = 100,
  ErrUnknownCR = 101, ErrHdrLength = 102, ErrDataLength = 103, ErrRxSeqNo = 104,
  ErrTxSeqNo = 105, ErrInvalidEA = 106, ErrInvalidAddress = 107, ErrUnsupported = 108,
  ErrInvalidCR = 109
}
enum  Category { Data, Supervisory, Unnumbered, Error }

Public Member Functions

virtual ~ISDNFrame ()
Type type () const
Type error () const
Category category ()
bool command () const
u_int8_t sapi () const
u_int8_t tei () const
bool poll () const
u_int8_t ns () const
u_int8_t nr () const
u_int8_t headerLength () const
u_int32_t dataLength () const
const DataBlockbuffer () const
bool sent () const
void sent (bool value)
const char * name () const
void update (u_int8_t *ns=0, u_int8_t *nr=0)
void getData (DataBlock &dest) const
void toString (String &dest, bool extendedDebug) const

Static Public Member Functions

static ISDNFrameparse (const DataBlock &data, ISDNLayer2 *receiver)
static bool commandBit (bool network)
static bool responseBit (bool network)
static bool isCommand (u_int8_t cr, bool senderNetwork)
static const char * typeName (Type type)

Static Public Attributes

static TokenDict s_types []

Protected Member Functions

 ISDNFrame (Type type=Invalid)
 ISDNFrame (Type type, bool command, bool senderNetwork, u_int8_t sapi, u_int8_t tei, bool pf, u_int8_t nr=0)
 ISDNFrame (bool ack, bool senderNetwork, u_int8_t sapi, u_int8_t tei, bool pf, const DataBlock &data)

Friends

class ISDNQ921


Detailed Description

An ISDN frame.

Encapsulates an ISDN (Q.921) frame exchanged over a hardware HDLC interface


Member Enumeration Documentation

enum Type

Frame type according to Q.921 3.6

enum Category

Frame category


Constructor & Destructor Documentation

virtual ~ISDNFrame (  )  [virtual]

Destructor

ISDNFrame ( Type  type = Invalid  )  [protected]

Constructor Used by the parser

Parameters:
type Frame type

ISDNFrame ( Type  type,
bool  command,
bool  senderNetwork,
u_int8_t  sapi,
u_int8_t  tei,
bool  pf,
u_int8_t  nr = 0 
) [protected]

Constructor Create U/S frames: SABME/DM/DISC/UA/FRMR/XID/RR/RNR/REJ Set data members. Encode frame in buffer according to Q.921 Used by ISDNLayer2 to create outgoing frames

Parameters:
type Frame type
command Frame command/response's flag
senderNetwork True if the sender is the network side of the data link
sapi SAPI value
tei TEI value
pf Poll/final flag
nr Optional transmitter receive sequence number

ISDNFrame ( bool  ack,
bool  senderNetwork,
u_int8_t  sapi,
u_int8_t  tei,
bool  pf,
const DataBlock data 
) [protected]

Constructor Create I/UI frames Set data members. Encode frame in buffer according to Q.921 Used by ISDNLayer2 to create outgoing frames

Parameters:
ack True to create an I frame. False to create an UI frame
senderNetwork True if the sender is the network side of the data link
sapi SAPI value
tei TEI value
pf Poll/final flag
data Transmitted data


Member Function Documentation

Type type (  )  const [inline]

Get the type of this frame

Returns:
The type of this frame as enumeration

Type error (  )  const [inline]

Get the error type

Returns:
The error type of this frame as enumeration

Category category (  )  [inline]

Get the category of this frame

Returns:
The category of this frame as enumeration

bool command (  )  const [inline]

Check if this frame is a command

Returns:
True if this frame is a command. False if it is a response

u_int8_t sapi (  )  const [inline]

Get the SAPI of this frame

Returns:
The SAPI of this frame

u_int8_t tei (  )  const [inline]

Get the TEI of this frame

Returns:
The TEI of this frame

bool poll (  )  const [inline]

Check if this frame is a poll (expect response) or a final one

Returns:
True if this a poll frame. False if it is a final one

u_int8_t ns (  )  const [inline]

Get the transmitter send sequence number

Returns:
The transmitter send sequence number

u_int8_t nr (  )  const [inline]

Get the transmitter receive sequence number

Returns:
The transmitter receive sequence number

u_int8_t headerLength (  )  const [inline]

Get the length of the frame's header

Returns:
The length of the frame's header

u_int32_t dataLength (  )  const [inline]

Get the length of the data carried by this frame

Returns:
The length of the data carried by this frame

const DataBlock& buffer (  )  const [inline]

Get the frame's buffer

Returns:
The frame's buffer

bool sent (  )  const [inline]

Check if the frame was sent

Returns:
True if the frame was sent

void sent ( bool  value  )  [inline]

Set transmitted flag

const char* name (  )  const [inline]

Get the text associated with the frame's type

Returns:
The text associated with the frame's type

void update ( u_int8_t *  ns = 0,
u_int8_t *  nr = 0 
)

Update sequence numbers for I frames

Parameters:
ns Optional update send sequence number
nr Optional update receive sequence number

void getData ( DataBlock dest  )  const [inline]

Get the data transferred with this frame

Parameters:
dest The destination buffer

References DataBlock::assign().

void toString ( String dest,
bool  extendedDebug 
) const

Write this frame to a string for debug purposes

Parameters:
dest The destination string
extendedDebug True to dump message header and data

static ISDNFrame* parse ( const DataBlock data,
ISDNLayer2 receiver 
) [static]

Parse a received data block

Parameters:
data Data to parse
receiver The receiver of the data
Returns:
ISDNFrame pointer or 0 (no control field)

static bool commandBit ( bool  network  )  [inline, static]

Get the command bit value for a given side of a data link

Parameters:
network True for the network side, false for the user side of a data link
Returns:
The appropriate command bit value

static bool responseBit ( bool  network  )  [inline, static]

Get the response bit value for a given side of a data link

Parameters:
network True for the network side, false for the user side of a data link
Returns:
The appropriate response bit value

static bool isCommand ( u_int8_t  cr,
bool  senderNetwork 
) [inline, static]

Get the command/response type from C/R bit value and sender type

Parameters:
cr The value of the C/R bit
senderNetwork True if the sender is the network side of the data link
Returns:
True if it is a command

static const char* typeName ( Type  type  )  [inline, static]

Get the text associated with the given frame type

Parameters:
type Frame type to get the text for
Returns:
The text associated with the given frame type

References TelEngine::lookup().


Member Data Documentation

TokenDict s_types[] [static]

Keep the association between frame types and texts


The documentation for this class was generated from the following file:

Generated on Mon Aug 11 16:17:54 2008 for Yate by  doxygen 1.5.6