class ISDNLayer2

Abstract ISDN layer 2 (Q.921) message transport. More...

Contains pure virtuals
Full nameTelEngine::ISDNLayer2
Definition#include <libs/ysig/yatesig.h>
InheritsTelEngine::SignallingComponent [virtual public ]
Inherited byISDNIUA, ISDNQ921, ISDNQ921Management, ISDNQ921Passive
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Static Methods

Protected Methods


Detailed Description

An interface to a Layer 2 (Q.921) ISDN message transport

enum State { Released, WaitEstablish, Established, WaitRelease, }

State

Layer states if it has a TEI assigned

 ~ISDNLayer2 ()

~ISDNLayer2

[virtual]

Destructor

inline ISDNLayer3*  layer3 ()

layer3

[const]

Get the ISDN Layer 3 attached to this layer

inline State  state ()

state

[const]

Get the layer's state

Returns: The layer's state as enumeration

inline bool  network ()

network

[const]

Check if this interface is the network or CPE (user) side of the link

Returns: True if this interface is the network side of the link

inline bool  detectType ()

detectType

[const]

Check if this interface should change its type

Returns: True if type change is allowed

inline u_int8_t  localSapi ()

localSapi

[const]

Get the SAPI (Service Access Point Identifier) of this interface

Returns: The SAPI (Service Access Point Identifier) of this interface

inline u_int8_t  localTei ()

localTei

[const]

Get the TEI (Terminal Endpoint Identifier) of this interface

Returns: The TEI (Terminal Endpoint Identifier) of this interface

inline u_int32_t  maxUserData ()

maxUserData

[const]

Get the maximum length of user data transported through this layer

Returns: The maximum length of user data transported through this layer

inline bool  teiAssigned ()

teiAssigned

[const]

Check if this interface has a TEI assigned

Returns: True if this interface has a TEI assigned

inline bool  autoRestart ()

autoRestart

[const]

Check if this interface will automatically re-establish when released

Returns: The auto restart flag

unsigned int  upTime ()

upTime

[const]

Get the uptime of the interface

Returns: Time since interface got up in seconds

bool  multipleFrame (u_int8_t tei, bool establish, bool force)

multipleFrame

[virtual]

Implements Q.921 DL-ESTABLISH and DL-RELEASE request primitives Descendants must implement this method to fullfill the request

Parameters:
teiThis layer TEI (Terminal Endpoint Identifier)
establishTrue to establish. False to release
forceTrue to establish even if we already are in this mode. This parameter is ignored if establish is false

Returns: True if the request was accepted

bool  sendData (const DataBlock& data, u_int8_t tei, bool ack)

sendData

[virtual]

Implements Q.921 DL-DATA and DL-UNIT DATA request primitives Descendants must implement this method to fullfill the request

Parameters:
dataData to send
teiThis layer TEI
ackTrue to send an acknowledged frame, false to send an unacknowledged one

Returns: True if the request was accepted

void  cleanup ()

cleanup

[pure virtual]

Emergency release. Descendants must implement this method to cleanup/reset data

void  attach (ISDNLayer3* layer3)

attach

[virtual]

Attach an ISDN Q.931 Layer 3 if the given parameter is different from the one we have Cleanup the object before ataching the new Layer 3 This method is thread safe

Parameters:
layer3Pointer to the Q.931 Layer 3 to attach

inline const char*  stateName (State s)

stateName

[static]

Get the text associated with a given state

Parameters:
sThe state to get the text for

Returns: The text associated with the given state

 ISDNLayer2 (const NamedList& params, const char* name = 0, u_int8_t tei = 0)

ISDNLayer2

[protected]

Constructor Initialize this interface and the component

Parameters:
paramsLayer's parameters
nameOptional name of the component
teiValue of TEI for this layer

inline Mutex&  l2Mutex ()

l2Mutex

[protected]

Retrieve the layer's mutex

Returns: Reference to the Layer 2 mutex

void  multipleFrameEstablished (u_int8_t tei, bool confirm, bool timeout)

multipleFrameEstablished

[protected]

Implements Q.921 DL-ESTABLISH indication/confirmation primitive of 'multiple frame acknowledged' mode established

Parameters:
teiThe TEI requested
confirmTrue if this is a confirmation of a previous request. False if it is an indication of state change on remote request
timeoutTrue if the reason is a timeout.

void  multipleFrameReleased (u_int8_t tei, bool confirm, bool timeout)

multipleFrameReleased

[protected]

Implements Q.921 DL-RELEASE indication/confirmation primitive of 'multiple frame acknowledged' mode released

Parameters:
teiThe TEI released
confirmTrue if this is a confirmation of a previous request. False if it is an indication of state change on remote request
timeoutTrue if the reason is a timeout.

void  dataLinkState (u_int8_t tei, bool cmd, bool value)

dataLinkState

[protected]

Notify layer 3 of data link set/release command or response Used for stateless layer 2

Parameters:
teiThe TEI of this layer
cmdTrue if received a command, false if received a response
valueThe value of the notification If 'cmd' is true (command), the value is true if a request to establish data link was received or false if received a request to release data link If 'cmd' is false (response), the value is the response

void  idleTimeout ()

idleTimeout

[protected]

Notify layer 3 of data link idle timeout Used for stateless layer 2

void  receiveData (const DataBlock& data, u_int8_t tei)

receiveData

[protected]

Implements Q.921 DL-DATA and DL-UNIT DATA indication primitives Receive data from remote peer

Parameters:
dataReceived data
teiThe TEI for which the data was received

void  teiAssigned (bool status)

teiAssigned

[protected]

Set TEI assigned status. Print a debug message. If status is false calls cleanup() Descendants are responsable for TEI assigned status management

Parameters:
statusThe new TEI assigned status

void  changeState (State newState, const char* reason = 0)

changeState

[protected]

Set the state Descendants are responsable for multiple frame status management

Parameters:
newStateThe new state
reasonReason of state change, NULL if unspecified

bool  changeType ()

changeType

[protected]

Change the interface type

Returns: True if interface type changed

inline void  autoRestart (bool restart)

autoRestart

[protected]

Set the automatically re-establish when released flag

Parameters:
restartThe new value of the auto restart flag

inline void  setRi (u_int16_t ri)

setRi

[protected]

Set the Reference Identifier used in management procedures

Parameters:
riThe new reference number

ISDNFrame*  parsePacket (const DataBlock& packet)

parsePacket

[protected]

Parse a received packet

Parameters:
packetThe packet received

Returns: Pointer to a newly created frame, NULL if an error occured


Generated by: paulc on bussard on Tue Apr 12 17:15:21 2011, using kdoc 2.0a54.