Yate
|
Abstract SS7 layer 3 (network) message transfer part. More...
#include <yatesig.h>
Public Member Functions | |
virtual | ~SS7Layer3 () |
virtual int | transmitMSU (const SS7MSU &msu, const SS7Label &label, int sls=-1)=0 |
virtual bool | operational (int sls=-1) const =0 |
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 | buildRoutes (const NamedList ¶ms) |
unsigned int | getRoutePriority (SS7PointCode::Type type, unsigned int packedPC) |
void | printRoutes () |
Protected Member Functions | |
SS7Layer3 (SS7PointCode::Type type=SS7PointCode::Other) | |
bool | receivedMSU (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) |
SS7Route * | findRoute (SS7PointCode::Type type, unsigned int packed) |
void | updateRoutes (SS7Layer3 *network) |
void | removeRoutes (SS7Layer3 *network) |
Friends | |
class | SS7Router |
Abstract SS7 layer 3 (network) message transfer part.
An interface to a Layer 3 (network) SS7 message transfer part
virtual ~SS7Layer3 | ( | ) | [inline, virtual] |
Destructor
SS7Layer3 | ( | SS7PointCode::Type | type = SS7PointCode::Other | ) | [inline, protected] |
Constructor
type | Default point code type |
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 |
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 |
SS7Route* findRoute | ( | SS7PointCode::Type | type, |
unsigned int | packed | ||
) | [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 |
unsigned int getRoutePriority | ( | SS7PointCode::Type | type, |
unsigned int | packedPC | ||
) |
Get the priority of a route. This method is thread safe
type | Destination point code type |
packedPC | The packed point code |
virtual bool maintenance | ( | const SS7MSU & | msu, |
const SS7Label & | label, | ||
int | sls | ||
) | [protected, virtual] |
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 |
virtual bool management | ( | const SS7MSU & | msu, |
const SS7Label & | label, | ||
int | sls | ||
) | [protected, virtual] |
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 |
void notify | ( | int | sls = -1 | ) | [inline, protected] |
Notify out user part about a status change
sls | Signallink Link that generated the notification, -1 if none |
virtual bool operational | ( | int | sls = -1 | ) | const [pure virtual] |
void printRoutes | ( | ) |
Print the destinations or routing table to output
void removeRoutes | ( | SS7Layer3 * | network | ) | [protected] |
Remove the given network from all destinations in the routing table. Remove the entry in the routing table if empty (no more routes to the point code). Used by a SS7 router. This method is thread safe
network | The network to remove |
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 |
void setType | ( | SS7PointCode::Type | type | ) |
Set the point code of this Layer 3 component for all network types
type | Point code type to set |
SS7PointCode::Type type | ( | unsigned char | netType | ) | const |
Retrive 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 |
virtual bool unavailable | ( | const SS7MSU & | msu, |
const SS7Label & | label, | ||
int | sls, | ||
unsigned char | cause = 0 |
||
) | [protected, virtual] |
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) |
void updateRoutes | ( | SS7Layer3 * | network | ) | [protected] |
Add a network to the routing table. Clear all its routes before appending it to the table Used by a SS7 router. This method is thread safe
network | The network to add to the routing table |
SS7L3User* user | ( | ) | const [inline] |
Retrive the Layer 3 user component to which this network is attached