Yate
SS7MTP3 Class Reference

SS7 Layer 3 implementation on top of Layer 2. More...

#include <yatesig.h>

Inheritance diagram for SS7MTP3:
SS7Layer3 SS7L2User SignallingDumpable Mutex SignallingComponent SignallingComponent Lockable RefObject DebugEnabler RefObject DebugEnabler GenObject GenObject

Public Types

enum  Operation { Pause = 0x100 , Resume = 0x200 , Restart = 0x300 , Status = 0x400 }
 

Public Member Functions

 SS7MTP3 (const NamedList &params)
 
virtual ~SS7MTP3 ()
 
virtual bool initialize (const NamedList *config)
 
virtual int transmitMSU (const SS7MSU &msu, const SS7Label &label, int sls=-1)
 
virtual bool operational (int sls=-1) const
 
virtual int inhibited (int sls) const
 
virtual bool inhibit (int sls, int setFlags, int clrFlags=0)
 
virtual unsigned int congestion (int sls)
 
virtual int getSequence (int sls) const
 
virtual void recoverMSU (int sls, int sequence)
 
virtual bool control (Operation oper, NamedList *params=0)
 
virtual void attach (SS7Layer2 *link)
 
virtual void detach (SS7Layer2 *link)
 
virtual bool control (NamedList &params)
 
virtual bool allowedTo (SS7PointCode::Type type, unsigned int packedPC) const
 
unsigned int linksTotal () const
 
unsigned int linksChecked () const
 
unsigned int linksActive () const
 
const ObjListlinks () const
 
- Public Member Functions inherited from SS7Layer3
virtual ~SS7Layer3 ()
 
bool inhibited (int sls, int flags) const
 
bool inService (int sls, int ignore=0)
 
virtual bool restart ()
 
void attach (SS7L3User *l3user)
 
SS7L3Useruser () const
 
SS7PointCode::Type type (unsigned char netType) const
 
void setType (SS7PointCode::Type type, unsigned char netType)
 
void setType (SS7PointCode::Type type)
 
bool hasType (SS7PointCode::Type pcType) const
 
virtual unsigned char getNI (SS7PointCode::Type pcType, unsigned char defNI) const
 
unsigned char getNI (SS7PointCode::Type pcType) const
 
unsigned char getNI () const
 
void setNI (unsigned char defNI)
 
bool buildRoutes (const NamedList &params)
 
unsigned int getRouteMaxLength (SS7PointCode::Type type, unsigned int packedPC)
 
unsigned int getRoutePriority (SS7PointCode::Type type, unsigned int packedPC)
 
unsigned int getRoutePriority (SS7PointCode::Type type, const SS7PointCode &dest)
 
SS7Route::State getRouteState (SS7PointCode::Type type, unsigned int packedPC, bool checkAdjacent=false)
 
SS7Route::State getRouteState (SS7PointCode::Type type, const SS7PointCode &dest, bool checkAdjacent=false)
 
void printRoutes ()
 
unsigned int getLocal (SS7PointCode::Type type) const
 
virtual unsigned int getDefaultLocal (SS7PointCode::Type type) const
 
- Public Member Functions inherited from SignallingComponent
virtual ~SignallingComponent ()
 
virtual const StringtoString () const
 
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)
 
- Public Member Functions inherited from SignallingDumpable
 ~SignallingDumpable ()
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 

Protected Member Functions

virtual void destroyed ()
 
virtual void timerTick (const Time &when)
 
virtual void linkChecked (int sls, bool remote)
 
virtual bool responder () const
 
virtual bool receivedMSU (const SS7MSU &msu, SS7Layer2 *link, int sls)
 
virtual bool recoveredMSU (const SS7MSU &msu, SS7Layer2 *link, int sls)
 
virtual void notify (SS7Layer2 *link)
 
unsigned int countLinks ()
 
- Protected Member Functions inherited from SS7Layer3
 SS7Layer3 (SS7PointCode::Type type=SS7PointCode::Other)
 
HandledMSU receivedMSU (const SS7MSU &msu, const SS7Label &label, int sls)
 
bool recoveredMSU (const SS7MSU &msu, const SS7Label &label, int sls)
 
void notify (int sls=-1)
 
virtual bool maintenance (const SS7MSU &msu, const SS7Label &label, int sls)
 
virtual bool management (const SS7MSU &msu, const SS7Label &label, int sls)
 
virtual bool unavailable (const SS7MSU &msu, const SS7Label &label, int sls, unsigned char cause=0)
 
virtual bool prohibited (unsigned char ssf, const SS7Label &label, int sls)
 
SS7RoutefindRoute (SS7PointCode::Type type, unsigned int packed)
 
ObjListgetRoutes (SS7PointCode::Type type)
 
const ObjListgetRoutes (SS7PointCode::Type type) const
 
- Protected Member Functions inherited from SignallingComponent
 SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown")
 
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 Member Functions inherited from SignallingDumpable
 SignallingDumpable (SignallingDumper::Type type, bool network=false)
 
bool dump (void *buf, unsigned int len, bool sent=false, int link=0)
 
bool dump (const DataBlock &data, bool sent=false, int link=0)
 
void setDumpNetwork (bool network)
 
void setDumper (SignallingDumper *dumper=0)
 
bool setDumper (const String &name, bool create=true, bool append=false)
 
bool control (NamedList &params, SignallingComponent *owner=0)
 

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 ()
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 
- Protected Attributes inherited from SS7Layer3
Mutex m_routeMutex
 
ObjList m_route [YSS7_PCTYPE_COUNT]
 

Detailed Description

SS7 Layer 3 implementation on top of Layer 2.

Q.704 SS7 Layer 3 (Network) implementation on top of SS7 Layer 2

Member Enumeration Documentation

◆ Operation

enum Operation

Control primitives

Constructor & Destructor Documentation

◆ SS7MTP3()

SS7MTP3 ( const NamedList & params)

Constructor

Parameters
paramsLayer's parameters

◆ ~SS7MTP3()

virtual ~SS7MTP3 ( )
virtual

Destructor

Member Function Documentation

◆ allowedTo()

virtual bool allowedTo ( SS7PointCode::Type type,
unsigned int packedPC ) const
virtual

Check if access to a specific Point Code is allowed from this network

Parameters
typeDestination point code type
packedPCThe destination point code
Returns
True if access to the specified Point Code is allowed

Reimplemented from SS7Layer3.

References SS7Layer3::type().

◆ attach()

virtual void attach ( SS7Layer2 * link)
virtual

Attach a SS7 Layer 2 (data link) to the network transport. Attach itself to the link

Parameters
linkPointer to data link to attach

Implements SS7L2User.

◆ congestion()

virtual unsigned int congestion ( int sls)
virtual

Get the current congestion level of a link

Parameters
slsSignalling Link to check for congestion, -1 for maximum
Returns
Congestion level, 0 if not congested, 3 if maximum congestion

Reimplemented from SS7Layer3.

◆ 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.

◆ control() [2/2]

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

Execute a control operation on the linkset

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

◆ countLinks()

unsigned int countLinks ( )
protected

Count the total and active number of links

Returns
Number of active links

◆ destroyed()

virtual void destroyed ( )
protectedvirtual

Detach all links and user. Destroys the object, disposes the memory

Reimplemented from SignallingComponent.

◆ detach()

virtual void detach ( SS7Layer2 * link)
virtual

Detach a SS7 Layer 2 (data link) from the network transport. Remove the link's L2 user

Parameters
linkPointer to data link to detach

Implements SS7L2User.

◆ getSequence()

virtual int getSequence ( int sls) const
virtual

Get the sequence number of the last MSU received on a link

Parameters
slsSignalling Link to retrieve MSU number from
Returns
Last FSN received, negative if not available

Reimplemented from SS7Layer3.

◆ inhibit()

virtual bool inhibit ( int sls,
int setFlags,
int clrFlags = 0 )
virtual

Set and clear inhibition flags on the links

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

Reimplemented from SS7Layer3.

◆ inhibited()

virtual int inhibited ( int sls) const
virtual

Retrieve inhibition flags of a specific link

Parameters
slsSignalling Link to check
Returns
Inhibitions of the specified link, zero if not inhibited

Reimplemented from SS7Layer3.

◆ initialize()

virtual bool initialize ( const NamedList * config)
virtual

Configure and initialize the MTP3 and all its links

Parameters
configOptional configuration parameters override
Returns
True if MTP3 and at least one link were initialized properly

Reimplemented from SS7Layer3.

◆ linkChecked()

virtual void linkChecked ( int sls,
bool remote )
protectedvirtual

Callback called from maintenance when valid SLTA or SLTM are received

Parameters
slsLink that was checked by maintenance
remoteTrue if remote checked the link, false if local success

Reimplemented from SS7Layer3.

◆ links()

const ObjList * links ( ) const
inline

Get a list of the links held by this linkset

Returns
A list containing the links

◆ linksActive()

unsigned int linksActive ( ) const
inline

Get the number of links that are currently operational

Returns
Number of operational data links

◆ linksChecked()

unsigned int linksChecked ( ) const
inline

Get the number of links that are checked by maintenance

Returns
Number of MTN checked data links

◆ linksTotal()

unsigned int linksTotal ( ) const
inline

Get the total number of links attached

Returns
Number of attached data links

◆ notify()

virtual void notify ( SS7Layer2 * link)
protectedvirtual

Process a notification generated by the attached data link

Parameters
linkData link that generated the notification
Returns
True if notification was processed

Implements SS7L2User.

◆ operational()

virtual bool operational ( int sls = -1) const
virtual

Check if the network/linkset is fully operational

Parameters
slsSignalling Link to check, negative to check if any is operational
Returns
True if the linkset is enabled and operational

Implements SS7Layer3.

◆ receivedMSU()

virtual bool receivedMSU ( const SS7MSU & msu,
SS7Layer2 * link,
int sls )
protectedvirtual

Process a MSU received from the Layer 2 component

Parameters
msuMessage data, starting with Service Indicator Octet
linkData link that delivered the MSU
slsSignalling Link the MSU was received from
Returns
True if the MSU was processed

Implements SS7L2User.

◆ recoveredMSU()

virtual bool recoveredMSU ( const SS7MSU & msu,
SS7Layer2 * link,
int sls )
protectedvirtual

Process a MSU recovered from the Layer 2 component after failure

Parameters
msuMessage data, starting with Service Indicator Octet
linkData link from where the MSU was recovered
slsSignalling Link the MSU was recovered from
Returns
True if the MSU was processed

Implements SS7L2User.

◆ recoverMSU()

virtual void recoverMSU ( int sls,
int sequence )
virtual

Remove the MSUs waiting in the transmit queue and return them

Parameters
slsSignalling Link to recover MSUs from
sequenceFirst sequence number to recover, flush earlier packets

Reimplemented from SS7Layer3.

◆ responder()

virtual bool responder ( ) const
inlineprotectedvirtual

Check if we should answer with SLTA to received SLTM in maintenance()

Returns
True to send a SLTA for each good received SLTM

Reimplemented from SS7Layer3.

◆ timerTick()

virtual void timerTick ( const Time & when)
protectedvirtual

Periodical timer tick used to perform housekeeping and link checking

Parameters
whenTime to use as computing base for events and timeouts

Reimplemented from SignallingComponent.

◆ transmitMSU()

virtual int transmitMSU ( const SS7MSU & msu,
const SS7Label & label,
int sls = -1 )
virtual

Push a Message Signal Unit down the protocol stack

Parameters
msuMessage data, starting with Service Indicator Octet
labelRouting label of the MSU used in routing
slsSignalling Link Selection, negative to choose best
Returns
Link the message was successfully queued to, negative for error

Implements SS7Layer3.


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