|
Yate
|
Abstract SS7 layer 3 (network) message transfer part. More...
#include <yatesig.h>
Public Member Functions | |
| virtual | ~SS7Layer3 () |
| virtual bool | initialize (const NamedList *config) |
| virtual int | transmitMSU (const SS7MSU &msu, const SS7Label &label, int sls=-1)=0 |
| virtual bool | operational (int sls=-1) const =0 |
| virtual int | inhibited (int sls) const |
| bool | inhibited (int sls, int flags) const |
| virtual bool | inhibit (int sls, int setFlags, int clrFlags=0) |
| bool | inService (int sls, int ignore=0) |
| virtual unsigned int | congestion (int sls) |
| virtual int | getSequence (int sls) const |
| virtual void | recoverMSU (int sls, int sequence) |
| virtual bool | restart () |
| void | attach (SS7L3User *l3user) |
| SS7L3User * | user () 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 ¶ms) |
| 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) |
| virtual bool | allowedTo (SS7PointCode::Type type, unsigned int packedPC) const |
| 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 String & | toString () const |
| virtual bool | control (NamedList ¶ms) |
| virtual NamedList * | controlCreate (const char *oper=0) |
| virtual bool | controlExecute (NamedList *params) |
| virtual void | engine (SignallingEngine *eng) |
| SignallingEngine * | engine () const |
| int | debugLevel (int level) |
| const String & | componentType () 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 String & | traceId () const |
| NamedCounter * | getObjCounter () const |
| NamedCounter * | setObjCounter (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 | |
| 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 void | linkChecked (int sls, bool remote) |
| 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) |
| virtual bool | responder () const |
| SS7Route * | findRoute (SS7PointCode::Type type, unsigned int packed) |
| ObjList * | getRoutes (SS7PointCode::Type type) |
| const ObjList * | getRoutes (SS7PointCode::Type type) 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 () |
| virtual void | timerTick (const Time &when) |
| 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 | |
| Mutex | m_routeMutex |
| ObjList | m_route [YSS7_PCTYPE_COUNT] |
Friends | |
| class | SS7L3User |
| class | SS7Router |
| class | SS7Route |
Additional Inherited Members | |
Static Public Member Functions inherited from SignallingComponent | |
| static bool | resolveConfig (const String &cmpName, NamedList ¶ms, 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 NamedCounter * | getObjCounter (const String &name, bool create=true) |
| static ObjList & | getObjCounters () |
Abstract SS7 layer 3 (network) message transfer part.
An interface to a Layer 3 (network) SS7 message transfer part
|
protected |
|
inlinevirtual |
| void attach | ( | SS7L3User * | l3user | ) |
Attach a Layer 3 user component to this network. Detach the old user if valid. Attach itself to the given user
| l3user | Pointer to Layer 3 user component to attach |
Referenced by ~SS7Layer3().
| bool buildRoutes | ( | const NamedList & | params | ) |
Build the list of outgoing routes serviced by this network. Clear the list before re-building it. This method is thread safe
| params | The parameter list |
|
inlinevirtual |
Get the current congestion level of a link
| sls | Signalling Link to check for congestion, -1 for maximum |
Reimplemented in SS7MTP3.
|
protected |
Find a route having the specified point code type and packed point code. This method is thread safe
| type | The point code type used to choose the list of packed point codes |
| packed | The packed point code to find in the list |
References type().
|
inlinevirtual |
Retrieve the default local Point Code for a specific Point Code type
| type | Desired Point Code type |
Reimplemented in SS7Router.
References getLocal(), and type().
|
inline |
Retrieve the local Point Code for a specific Point Code type
| type | Desired Point Code type |
References type().
Referenced by getDefaultLocal().
|
inline |
Get the default Network Indicator bits
|
inline |
Get the Network Indicator bits that would match a Point Code type
| pcType | Point Code type to search for |
References getNI().
|
virtual |
| unsigned int getRouteMaxLength | ( | SS7PointCode::Type | type, |
| unsigned int | packedPC ) |
Get the maximum data length of a route by packed Point Code. This method is thread safe
| type | Destination point code type |
| packedPC | The packed point code |
References type().
|
inline |
Get the priority of a route by unpacked Point Code. This method is thread safe
| type | Destination point code type |
| dest | The destination point code |
References getRoutePriority(), SS7PointCode::pack(), and type().
| unsigned int getRoutePriority | ( | SS7PointCode::Type | type, |
| unsigned int | packedPC ) |
Get the priority of a route by packed Point Code. This method is thread safe
| type | Destination point code type |
| packedPC | The packed point code |
References type().
Referenced by getRoutePriority().
|
inlineprotected |
|
inlineprotected |
|
inline |
Get the current state of a route by unpacked Point Code. This method is thread safe
| type | Destination point code type |
| dest | The destination point code |
| checkAdjacent | True to take into account the adjacent STP |
References getRouteState(), SS7PointCode::pack(), and type().
| SS7Route::State getRouteState | ( | SS7PointCode::Type | type, |
| unsigned int | packedPC, | ||
| bool | checkAdjacent = false ) |
Get the current state of a route by packed Point Code. This method is thread safe
| type | Destination point code type |
| packedPC | The packed point code |
| checkAdjacent | True to take into account the adjacent STP |
References type().
Referenced by getRouteState().
|
inlinevirtual |
Get the sequence number of the last MSU received on a link
| sls | Signalling Link to retrieve MSU number from |
Reimplemented in SS7MTP3.
| bool hasType | ( | SS7PointCode::Type | pcType | ) | const |
Check if the network can possibly handle a Point Code type
| pcType | Point code type to check |
|
inlinevirtual |
Set and clear inhibition flags on the links
| sls | Signalling Link to modify |
| setFlags | Flag bits to set ORed together |
| clrFlags | Flag bits to clear ORed together (optional) |
Reimplemented in SS7MTP3.
|
inlinevirtual |
Retrieve inhibition flags of a specific link
| sls | Signalling Link to check |
Reimplemented in SS7MTP3.
Referenced by inhibited(), and inService().
|
inline |
Check some of the inhibition flags of a specific link
| sls | Signalling Link to check |
| flags | Flags to check for, ORed together |
References inhibited().
|
virtual |
Initialize the network layer, connect it to the SS7 router
| config | Optional configuration parameters override |
Reimplemented from SignallingComponent.
|
inline |
Check if a link is operational and not inhibited
| sls | Signalling Link to check |
| ignore | Inhibition flags to ignore, ORed together |
References inhibited(), and operational().
|
inlineprotectedvirtual |
Callback called from maintenance when valid SLTA or SLTM are received
| sls | Link that was checked by maintenance |
| remote | True if remote checked the link, false if local success |
Reimplemented in SS7MTP3.
Default processing of a MTN (Maintenance MSU)
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the received MSU |
| sls | Signalling Link the MSU was received from |
Default processing of a SNM (Management MSU)
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the received MSU |
| sls | Signalling Link the MSU was received from |
|
inlineprotected |
Notify out user part about a status change
| sls | Link that generated the notification, -1 if none |
|
pure virtual |
Check if the network/linkset is fully operational
| sls | Signalling Link to check, negative to check if any is operational |
Implemented in SS7MTP3, and SS7Router.
Referenced by inService().
| void printRoutes | ( | ) |
Print the destinations or routing table to output
|
protectedvirtual |
Send a Transfer Prohibited if an unexpected MSU is received in STP mode
| ssf | Subservice Field of received MSU |
| label | Routing label of the received MSU |
| sls | Signalling Link the MSU was received from |
|
inlineprotected |
Push a received Message Signal Unit up the protocol stack
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the received MSU |
| sls | Signalling Link the MSU was received from |
Push a recovered Message Signal Unit back up the protocol stack
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the recovered MSU |
| sls | Signalling Link the MSU was recovered from |
|
inlinevirtual |
Remove the MSUs waiting in the transmit queue and return them
| sls | Signalling Link to recover MSUs from |
| sequence | First sequence number to recover, flush earlier packets |
Reimplemented in SS7MTP3.
|
inlineprotectedvirtual |
Check if we should answer with SLTA to received SLTM in maintenance()
Reimplemented in SS7MTP3.
|
inlinevirtual |
Initiate a MTP restart procedure if supported by the network layer
Reimplemented in SS7Router.
| void setNI | ( | unsigned char | defNI | ) |
Set the default Network Indicator bits
| defNI | Network Indicator bits to set as defaults |
| void setType | ( | SS7PointCode::Type | type | ) |
Set the point code of this Layer 3 component for all network types
| type | Point code type to set |
References type().
| void setType | ( | SS7PointCode::Type | type, |
| unsigned char | netType ) |
Set the point code of this Layer 3 component for a network type
| type | Point code type to set for the network type |
| netType | Type of the network like coded in the MSU NI field |
References type().
Push a Message Signal Unit down the protocol stack
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the MSU to use in routing |
| sls | Signalling Link Selection, negative to choose best |
| SS7PointCode::Type type | ( | unsigned char | netType | ) | const |
Retrieve the point code type of this Layer 3 component for a MSU type
| netType | Type of the network like coded in the MSU NI field |
Referenced by allowedTo(), SS7MTP3::allowedTo(), findRoute(), getDefaultLocal(), SS7Router::getDefaultLocal(), getLocal(), getRouteMaxLength(), getRoutePriority(), getRoutePriority(), getRoutes(), getRoutes(), getRouteState(), getRouteState(), SS7Router::getRouteView(), SS7Router::receivedUPU(), SS7Router::routeChanged(), SS7Router::setRouteState(), SS7Router::setRouteState(), setType(), setType(), and SS7Layer3().
|
protectedvirtual |
Default processing of an unknown MSU - emit an User Part Unavailable
| msu | Message data, starting with Service Indicator Octet |
| label | Routing label of the received MSU |
| sls | Signalling Link the MSU was received from |
| cause | Unavailability cause code (Q.704 15.17.5) |
|
inline |
Retrieve the Layer 3 user component to which this network is attached
|
protected |
Outgoing point codes serviced by a network (for each point code type)
Referenced by getRoutes(), and getRoutes().