SS7Layer3 Class Reference

Abstract SS7 layer 3 (network) message transfer part. More...

#include <yatesig.h>

Inheritance diagram for SS7Layer3:

SignallingComponent GenObject DebugEnabler SS7M3UA SS7MTP3 SS7Router

List of all members.

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)
SS7L3Useruser () 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 &params)
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)
SS7RoutefindRoute (SS7PointCode::Type type, unsigned int packed)
void updateRoutes (SS7Layer3 *network)
void removeRoutes (SS7Layer3 *network)

Friends

class SS7Router


Detailed Description

Abstract SS7 layer 3 (network) message transfer part.

An interface to a Layer 3 (network) SS7 message transfer part


Constructor & Destructor Documentation

virtual ~SS7Layer3 (  )  [inline, virtual]

Destructor

SS7Layer3 ( SS7PointCode::Type  type = SS7PointCode::Other  )  [inline, protected]

Constructor

Parameters:
type Default point code type


Member Function Documentation

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

Parameters:
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

Parameters:
params The parameter list
Returns:
False if no route available

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

Parameters:
type The point code type used to choose the list of packed point codes
packed The packed point code to find in the list
Returns:
SS7Route pointer or 0 if type is invalid or the given packed point code was not found

unsigned int getRoutePriority ( SS7PointCode::Type  type,
unsigned int  packedPC 
)

Get the priority of a route. This method is thread safe

Parameters:
type Destination point code type
packedPC The packed point code
Returns:
The priority of the route. -1 if no route to the given point code

virtual bool maintenance ( const SS7MSU msu,
const SS7Label label,
int  sls 
) [protected, virtual]

Default processing of a MTN (Maintenance MSU)

Parameters:
msu Message data, starting with Service Indicator Octet
label Routing label of the received MSU
sls Signalling Link the MSU was received from
Returns:
True if the MSU was processed

virtual bool management ( const SS7MSU msu,
const SS7Label label,
int  sls 
) [protected, virtual]

Default processing of a SNM (Management MSU)

Parameters:
msu Message data, starting with Service Indicator Octet
label Routing label of the received MSU
sls Signalling Link the MSU was received from
Returns:
True if the MSU was processed

void notify ( int  sls = -1  )  [inline, protected]

Notify out user part about a status change

Parameters:
sls Signallink Link that generated the notification, -1 if none

virtual bool operational ( int  sls = -1  )  const [pure virtual]

Check if the network/linkset is fully operational

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

Implemented in SS7Router, and SS7MTP3.

void printRoutes (  ) 

Print the destinations or routing table to output

bool receivedMSU ( const SS7MSU msu,
const SS7Label label,
int  sls 
) [inline, protected]

Push a received Message Signal Unit up the protocol stack

Parameters:
msu Message data, starting with Service Indicator Octet
label Routing label of the received MSU
sls Signalling Link the MSU was received from
Returns:
True if message was successfully delivered to the user component

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

Parameters:
network The network to remove

void setType ( SS7PointCode::Type  type  ) 

Set the point code of this Layer 3 component for all network types

Parameters:
type Point code type to set

void setType ( SS7PointCode::Type  type,
unsigned char  netType 
)

Set the point code of this Layer 3 component for a network type

Parameters:
type Point code type to set for the network type
netType Type of the network like coded in the MSU NI field

virtual int transmitMSU ( const SS7MSU msu,
const SS7Label label,
int  sls = -1 
) [pure virtual]

Push a Message Signal Unit down the protocol stack

Parameters:
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
Returns:
Link the message was successfully queued to, negative for error

Implemented in SS7Router, and SS7MTP3.

SS7PointCode::Type type ( unsigned char  netType  )  const

Retrive the point code type of this Layer 3 component for a MSU type

Parameters:
netType Type of the network like coded in the MSU NI field
Returns:
The type of codepoint this component will use

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

Parameters:
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)
Returns:
True if the MSU was processed

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

Parameters:
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

Returns:
Pointer to the Layer 3 user this network is attached to


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

Generated on Sun Dec 7 21:45:27 2008 for Yate by  doxygen 1.5.7.1