Yate
SS7Layer2 Class Referenceabstract

Abstract SS7 layer 2 (data link) message transfer part. More...

#include <yatesig.h>

Inheritance diagram for SS7Layer2:
SignallingComponent RefObject DebugEnabler GenObject SS7M2PA SS7M2UA SS7MTP2

Public Types

enum  LinkStatus {
  OutOfAlignment = 0 , NormalAlignment = 1 , EmergencyAlignment = 2 , OutOfService = 3 ,
  ProcessorOutage = 4 , Busy = 5 , O = OutOfAlignment , N = NormalAlignment ,
  E = EmergencyAlignment , OS = OutOfService , PO = ProcessorOutage , B = Busy
}
 
enum  Operation { Pause = 0x100 , Resume = 0x200 , Align = 0x300 , Status = 0x400 }
 
enum  Inhibitions { Unchecked = 0x01 , Inactive = 0x02 , Local = 0x04 , Remote = 0x08 }
 

Public Member Functions

virtual bool transmitMSU (const SS7MSU &msu)=0
 
virtual void recoverMSU (int sequence)
 
virtual unsigned int status () const
 
virtual const char * statusName (unsigned int status, bool brief) const
 
const char * statusName (bool brief=false) const
 
virtual bool operational () const =0
 
unsigned int upTime () const
 
void attach (SS7L2User *l2user)
 
SS7L2Useruser () const
 
int sls () const
 
void sls (int linkSel)
 
int inhibited () const
 
bool inhibited (int flags) const
 
virtual unsigned int congestion ()
 
virtual int getSequence ()
 
virtual bool control (Operation oper, NamedList *params=0)
 
virtual bool control (NamedList &params)
 
- Public Member Functions inherited from SignallingComponent
virtual ~SignallingComponent ()
 
virtual const StringtoString () const
 
virtual bool initialize (const NamedList *config)
 
virtual NamedListcontrolCreate (const char *oper=0)
 
virtual bool controlExecute (NamedList *params)
 
virtual void engine (SignallingEngine *eng)
 
SignallingEngineengine () const
 
int debugLevel (int level)
 
const StringcomponentType () const
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual void * getObject (const String &name) const
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 
- Public Member Functions inherited from DebugEnabler
 DebugEnabler (int level=TelEngine::debugLevel(), bool enabled=true)
 
int debugLevel () const
 
int debugLevel (int level)
 
bool debugEnabled () const
 
void debugEnabled (bool enable)
 
const char * debugName () const
 
bool debugAt (int level) const
 
bool debugChained () const
 
void debugChain (const DebugEnabler *chain=0)
 
void debugCopy (const DebugEnabler *original=0)
 

Protected Member Functions

 SS7Layer2 ()
 
virtual void timerTick (const Time &when)
 
bool receivedMSU (const SS7MSU &msu)
 
bool recoveredMSU (const SS7MSU &msu)
 
void notify ()
 
bool inhibit (int setFlags, int clrFlags=0)
 
bool getEmergency (NamedList *params=0, bool emg=false) const
 
- Protected Member Functions inherited from SignallingComponent
 SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown")
 
virtual void destroyed ()
 
void insert (SignallingComponent *component)
 
virtual void detach ()
 
void setName (const char *name)
 
void setCompType (const char *type)
 
unsigned long tickSleep (unsigned long usec=1000000) const
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 
- Protected Member Functions inherited from DebugEnabler
void debugName (const char *name)
 

Protected Attributes

bool m_autoEmergency
 
int m_lastSeqRx
 
unsigned int m_congestion
 

Friends

class SS7MTP3
 

Additional Inherited Members

- Static Public Member Functions inherited from SignallingComponent
static bool resolveConfig (const String &cmpName, NamedList &params, const NamedList *config)
 
- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 

Detailed Description

Abstract SS7 layer 2 (data link) message transfer part.

An interface to a Layer 2 (data link) SS7 message transfer part

Member Enumeration Documentation

◆ Inhibitions

Link inhibition reason bits

◆ LinkStatus

enum LinkStatus

LSSU Status Indications

◆ Operation

enum Operation

Control primitives

Constructor & Destructor Documentation

◆ SS7Layer2()

SS7Layer2 ( )
inlineprotected

Constructor

References m_autoEmergency, m_congestion, and m_lastSeqRx.

Member Function Documentation

◆ attach()

void attach ( SS7L2User * l2user)

Attach a Layer 2 user component to the data link. Detach from the old one if valid

Parameters
l2userPointer to Layer 2 user component to attach

Referenced by SS7MTP2::destroyed().

◆ congestion()

virtual unsigned int congestion ( )
inlinevirtual

Get the current congestion level of the link

Returns
Congestion level, 0 if not congested, 3 if maximum congestion

References m_congestion.

◆ control() [1/2]

virtual bool control ( NamedList & params)
virtual

Query or modify layer's settings or operational parameters

Parameters
paramsThe list of parameters to query or change
Returns
True if the control operation was executed

Reimplemented from SignallingComponent.

Reimplemented in SS7M2PA.

◆ control() [2/2]

virtual bool control ( Operation oper,
NamedList * params = 0 )
virtual

Execute a control operation. Operations can change the link status or can query the aligned status.

Parameters
operOperation to execute
paramsOptional parameters for the operation
Returns
True if the command completed successfully, for query operations also indicates the data link is aligned and operational

Reimplemented in SS7M2PA, SS7M2UA, and SS7MTP2.

◆ getEmergency()

bool getEmergency ( NamedList * params = 0,
bool emg = false ) const
protected

Get a best guess of the emergency alignment requirement

Parameters
paramsOptional parameters whose "emergency" is used
emgDefault emergency state
Returns
True if emergency alignment should be used

◆ getSequence()

virtual int getSequence ( )
inlinevirtual

Get the sequence number of the last MSU received

Returns
Last FSN received, negative if not available

Reimplemented in SS7M2UA.

References m_lastSeqRx.

◆ inhibit()

bool inhibit ( int setFlags,
int clrFlags = 0 )
protected

Set and clear inhibition flags, method used by MTP3

Parameters
setFlagsFlag bits to set ORed together
clrFlagsFlag bits to clear ORed together (optional)
Returns
True if inhibition flags were set

◆ inhibited() [1/2]

int inhibited ( ) const
inline

Retrieve the inhibition flags set by MTP3 Management

Returns
Inhibition flags ORed together, zero if not inhibited

◆ inhibited() [2/2]

bool inhibited ( int flags) const
inline

Check some of the inhibition flags set by MTP3 Management

Parameters
flagsFlags to check for, ORed together
Returns
True if any of the specified inhibition flags is active

◆ notify()

void notify ( )
protected

Set the notify flag. The user part will be notified on timer tick about status change

◆ operational()

virtual bool operational ( ) const
pure virtual

Check if the link is fully operational

Returns
True if the link is aligned and operational

Implemented in SS7M2PA, SS7M2UA, and SS7MTP2.

◆ receivedMSU()

bool receivedMSU ( const SS7MSU & msu)
inlineprotected

Push a received Message Signal Unit up the protocol stack

Parameters
msuMessage data, starting with Service Indicator Octet
Returns
True if message was successfully delivered to the user component

◆ recoveredMSU()

bool recoveredMSU ( const SS7MSU & msu)
inlineprotected

Push a recovered Message Signal Unit back up the protocol stack

Parameters
msuMessage data, starting with Service Indicator Octet
Returns
True if message was successfully delivered to the user component

◆ recoverMSU()

virtual void recoverMSU ( int sequence)
inlinevirtual

Remove the MSUs waiting in the transmit queue and return them

Parameters
sequenceFirst sequence number to recover, flush earlier packets

Reimplemented in SS7M2PA, SS7M2UA, and SS7MTP2.

◆ sls() [1/2]

int sls ( ) const
inline

Get the Signalling Link Selection number allocated to this link

Returns
SLS value assigned by the upper layer

◆ sls() [2/2]

void sls ( int linkSel)
inline

Assign a new Signalling Link Selection number

Parameters
linkSelNew SLS to assign to this link

◆ status()

virtual unsigned int status ( ) const
virtual

Retrieve the current link status indications

Returns
Link status indication bits

Reimplemented in SS7M2PA, SS7M2UA, and SS7MTP2.

Referenced by statusName(), and statusName().

◆ statusName() [1/2]

const char * statusName ( bool brief = false) const
inline

Get the name of the current local Layer 2 status

Parameters
briefRequest to return the short status name
Returns
String describing the status

References status(), and statusName().

◆ statusName() [2/2]

virtual const char * statusName ( unsigned int status,
bool brief ) const
virtual

Get the name of a Layer 2 status

Parameters
statusStatus indication value
briefRequest to return the short status name
Returns
String describing the status

References status().

Referenced by statusName().

◆ timerTick()

virtual void timerTick ( const Time & when)
protectedvirtual

Method called periodically by the engine to keep everything alive

Parameters
whenTime to use as computing base for events and timeouts

Reimplemented from SignallingComponent.

Reimplemented in SS7M2PA, SS7M2UA, and SS7MTP2.

◆ transmitMSU()

virtual bool transmitMSU ( const SS7MSU & msu)
pure virtual

Push a Message Signal Unit down the protocol stack

Parameters
msuMessage data, starting with Service Indicator Octet
Returns
True if message was successfully queued

Implemented in SS7M2PA, SS7M2UA, and SS7MTP2.

◆ upTime()

unsigned int upTime ( ) const
inline

Get the uptime of the link

Returns
Time since link got up in seconds

References Time::secNow().

◆ user()

SS7L2User * user ( ) const
inline

Get the Layer 2 user component that works with this data link

Returns
Pointer to the user component to which the messages are sent

Member Data Documentation

◆ m_autoEmergency

bool m_autoEmergency
protected

Flag to automatically perform emergency alignment when linkset is down

Referenced by SS7Layer2().

◆ m_congestion

unsigned int m_congestion
protected

Current congestion level

Referenced by congestion(), and SS7Layer2().

◆ m_lastSeqRx

int m_lastSeqRx
protected

Last received MSU sequence number, -1 if unknown, bit 24 set if long FSN

Referenced by getSequence(), and SS7Layer2().


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