Yate
|
SIGTRAN MTP2 User Peer-to-Peer Adaptation Layer. More...
#include <yatesig.h>
Public Types | |
enum | m2paState { Alignment = 1, ProvingNormal = 2, ProvingEmergency = 3, Ready = 4, ProcessorOutage = 5, ProcessorRecovered = 6, Busy = 7, BusyEnded = 8, OutOfService = 9 } |
enum | msgType { UserData = 1, LinkStatus = 2 } |
enum | sctpState { Idle, Associating, Established } |
enum | M2PAOperations { Pause = SS7Layer2::Pause, Resume = SS7Layer2::Resume, Align = SS7Layer2::Align, Status = SS7Layer2::Status, TransRestart = 0x500 } |
Public Member Functions | |
SS7M2PA (const NamedList ¶ms) | |
~SS7M2PA () | |
virtual bool | initialize (const NamedList *config) |
virtual bool | control (NamedList ¶ms) |
virtual bool | control (M2PAOperations oper, NamedList *params=0) |
virtual unsigned int | status () const |
virtual bool | transmitMSU (const SS7MSU &msu) |
virtual void | notifyLayer (SignallingInterface::Notification status) |
virtual void | recoverMSU (int sequence) |
bool | decodeSeq (const DataBlock &data, u_int8_t msgType) |
void | abortAlignment (const char *info=0) |
void | transmitLS (int streamId=0) |
void | setHeader (DataBlock &data) |
bool | processLinkStatus (DataBlock &data, int streamId) |
bool | processSLinkStatus (DataBlock &data, int streamId) |
void | sendAck () |
bool | removeFrame (u_int32_t bsn) |
bool | nextBsn (u_int32_t bsn) const |
Static Public Member Functions | |
static u_int32_t | increment (u_int32_t &nr) |
static u_int32_t | getNext (u_int32_t nr) |
Protected Member Functions | |
virtual void | timerTick (const Time &when) |
virtual bool | aligned () const |
virtual bool | operational () const |
virtual bool | processMSG (unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId) |
void | startAlignment (bool emergency=false) |
void | retransData () |
SIGTRAN MTP2 User Peer-to-Peer Adaptation Layer.
RFC4165 SS7 Layer 2 implementation over SCTP/IP. M2PA is intended to be used as a symmetrical Peer-to-Peer replacement of a hardware based SS7 data link.
~SS7M2PA | ( | ) |
Destructor
void abortAlignment | ( | const char * | info = 0 | ) |
Helper method called when an error was detected Change state to OutOfService and notifys upper layer
info | Debuging purpose, Information about detected error |
virtual bool aligned | ( | ) | const [protected, virtual] |
Check if the link is aligned. The link may not be operational, the other side may be still proving.
Query or modify layer's settings or operational parameters
params | The list of parameters to query or change |
Reimplemented from SS7Layer2.
Execute a control operation. Operations can change the link status or can query the aligned status.
oper | Operation to execute |
params | Optional parameters for the operation |
Decode sequence numbers from message and process them
data | The message |
msgType | The message type |
static u_int32_t getNext | ( | u_int32_t | nr | ) | [inline, static] |
Obtain next sequence number
nr | The current sequence number |
static u_int32_t increment | ( | u_int32_t & | nr | ) | [inline, static] |
Increment the given sequence number
nr | Reference of the number to increment |
virtual bool initialize | ( | const NamedList * | config | ) | [virtual] |
Configure and initialize M2PA and its transport
config | Optional configuration parameters override |
Reimplemented from SignallingComponent.
bool nextBsn | ( | u_int32_t | bsn | ) | const |
Check if a sequence number may be a valid next BSN
bsn | Backward Sequence Number to check |
virtual void notifyLayer | ( | SignallingInterface::Notification | status | ) | [virtual] |
Method called when the transport status has been changed
status | Up or down |
Reimplemented from SIGTRAN.
virtual bool operational | ( | ) | const [protected, virtual] |
Check if the link is aligned and operational
Implements SS7Layer2.
bool processLinkStatus | ( | DataBlock & | data, |
int | streamId | ||
) |
Decode and process link status message
data | The message |
streamId | The stream id witch received the message |
virtual bool processMSG | ( | unsigned char | msgVersion, |
unsigned char | msgClass, | ||
unsigned char | msgType, | ||
const DataBlock & | msg, | ||
int | streamId | ||
) | [protected, virtual] |
Process a complete message
msgVersion | Version of the protocol |
msgClass | Class of the message |
msgType | Type of the message, depends on the class |
msg | Message data, may be empty |
streamId | Identifier of the stream the message was received on |
Implements SIGTRAN.
bool processSLinkStatus | ( | DataBlock & | data, |
int | streamId | ||
) |
Decode and process link status message in more strict manner
data | The message |
streamId | The stream id witch received the message |
virtual void recoverMSU | ( | int | sequence | ) | [virtual] |
Remove the MSUs waiting in the transmit queue and return them
sequence | First sequence number to recover, flush earlier packets |
Reimplemented from SS7Layer2.
bool removeFrame | ( | u_int32_t | bsn | ) |
Remove a frame from acknowledgement list
bsn | The sequence number of the frame to be removed |
void retransData | ( | ) | [protected] |
Retransmit unacknowledged data
void sendAck | ( | ) |
Helper method used to acknowledge the last received message when no data are to transmit
Create M2PA header (sequence numbers)
data | The data where the header will be stored |
void startAlignment | ( | bool | emergency = false | ) | [protected] |
Initiates alignment and proving procedure
emergency | True if emergency alignment is desired |
virtual unsigned int status | ( | ) | const [virtual] |
Retrieve the current link status indications
Reimplemented from SS7Layer2.
void transmitLS | ( | int | streamId = 0 | ) |
Send link status message to inform the peer about ouer curent state
streamId | The id of the stream who should send the message |
virtual bool transmitMSU | ( | const SS7MSU & | msu | ) | [virtual] |