Professional Documents
Culture Documents
DPE Router
DPE Router
02/07/01
Introduction
Contents
This document covers the following topics. Already available information.......................................................................... DPE and management of lost messages with SIB srobj ................................... Flow control management at application level................................................. Formats of the DPE messages .......................................................................... Meaning of the DPE messages ......................................................................... Dynamic of the DPE messages......................................................................... New message management inside the DPE...................................................... Document references ........................................................................................ 2 4 5 7 12 13 18 20
1 / 20
Alcatel NAD
02/07/01
References
The following documents provide information about the DPE. Architecture & Functionality Platform Basic Components Fast Distributed Processing Environment (F-DPE) Description of Platform Services Configuration Service Operations and mechanisms using configuration data: configuration data used by the DPE Router Configuration Service Features Configuration of the DPE FAQ 2.3 : "The F-DPE"
Excerpts
The F-DPE allows real-time communication between platform services and IN services based on TCP/IP. The F-DPE can also communicate with other external nodes. Services exchanging messages based on a dialog (with answer / acknowledgements) have thus to use timeout mechanisms in order to guard against a crash of the destination service or any other reason making it impossible to route the message to the destination service. The F-DPE bus reliability depends on the path the message follows from the originating SEP to the destination SEP. This path is made of: originating SEP to F-DPE router F-DPE router to F-DPE router (in case of inter-domain communication) F-DPE router to destination SEP
Continued on next page
2 / 20
Alcatel NAD
02/07/01
Excerpts (continued)
A message is lost in the following conditions: the destination SEP crashes when the message is in the TCP/IP pipe of the destination SEP the F-DPE crashes when the message is in the TCP/IP pipe of the F-DPE the destination SEP is unable to treat the traffic and the message is not flagged as "store and forward" (recovery). the destination SEP is "RESTRICTED" and the current message corresponds to a new dialogue the destination SEP is "OVERLOADED" no F-DPE router is available on the domain to relay the message to a SEP.
3 / 20
Alcatel NAD
02/07/01
There is no flow control mechanism inside the DPE. This allows reaching higher speed because the cost of flow control would slow up all applications.
Transport modes
The table below describes the 3 modes of transport protocol used by the DPE. Mode NORMAL (i.e. without recovery) WITH RECOVERY Description no guaranty of message delivery or sequentiality this mode is used for alarms guaranty of delivery but still no guaranty of sequentiality this mode is only possible with one-way messages, e.g. stat tickets, ddup tickets
WITHOUT Each message is acknowledged by the DPE RECOVERY, guaranty of sequentiality WITH ACKNOWLEDGE this mode can also be used to control the submission from DPE flow (from Rel 2.3.5 + patch or 2.3.6).
In the two first modes above, the srobj (send) SIB exits with OK output signal if the write operation on the DPE connection succeeds. This means that (if the DPE does not crash and if the connection is not closed) the message will be processed by the DPE router: If the message can be sent to the destination, then no feed back is provided to the sender. If the message cannot be sent to the destination immediately but can be bufferized inside the DPE, then no feed back is provided to the sender. If the message cannot be sent to the destination and cannot be bufferized inside the DPE, then an UNAVAILABLE (T_ERROR) message is sent back to the sender. But the SIB srobj in sending mode DOES NOT manage T_ERROR message. This means that it is possible to lose messages with no feedback to the sender. To avoid such a situation, flow control has to be managed at application level, as mentioned earlier: Services exchanging messages based on a dialog (with answer / acknowledgements) have thus to use timeout mechanisms, in order to guard against a crash of the destination service or any other reason making it impossible to route the message to the destination service. (See Architecture and Functionality, F-DPE Router: connectivity and addressing).
4 / 20
Alcatel NAD
02/07/01
Proposition 1
Proposition 2
Replace the srobj (send) SIB by the srobj (send) SIB followed by a dispatch SIB on: T_QUIT message (end of destination context), T_ERROR message (UNAVAILABLE sent by DPE router), OTHER messages, timeout.
Proposition 3
Use the possibility in the srobj SIB to wait for an ACK from DPE router (available with 2.3.6). By this mean, some automatic flow control is implemented between SEPs and the DPE router, and the reception of an UNAVAILABLE (T_ERROR) message will be interpreted as a NOK case in the SIB srobj.
5 / 20
Alcatel NAD
02/07/01
Proposition 4
If many messages have to be sent asynchronously with the answers, use a "loop" to send all messages (srobj SIB with send mode) and then a "loop" to receive answers (dispatch SIB). The picture below shows the flow:
6 / 20
Alcatel NAD
02/07/01
General format
All messages managed by the DPE router consist in 3 parts described in the figure and table below:
Part # 1 2 3
Description integer; its value provides the length of the 2 next parts of the message information for message routing the message itself
General message The message header contains the fields described in the figure and table below: header
Field V orig
Description version of the DPE protocol for current message (by default : 1) identification of the sending SEP or application : [0x00000001 => 0x0000FFFF] : sep.ri 0x00010000 : OD_DPEROUTER [0x01000000 => 0x0100FFFF] : generated origin for host 0x01 [0xnn000000 => 0xnn00FFFF] : generated origin for host 0xnn
identification of the destination SEP or application (same as orig) identification of the origin dialog (sending call context)
7 / 20
Alcatel NAD
02/07/01
Description DPE protocol used for current message INFORMATION_MESSAGE : 0 OTHER_MESSAGE :>0
flags
set of bits indicating some options for current message processing (see table below)
gr.ref.
Flags table Flag name RECOVERY Value (0x0001 = 0000 0000 0000 0001) Description Current message has to be stored and forwarded later if it cannot be sent immediatly Current message is a stored one and has to be forwarded An acknowledgement message has to be sent to origin in case of success Broadcast processing has to be undertaken Current message has to be sent to a sep group Do not inform origin in case of problem Associate a computed origin to connection Current message corresponds to a new transaction
Continued on next page
(0x0002 = 0000 0000 0000 0010) (0x0004 = 0000 0000 0000 0100) (0x0008 = 0000 0000 0000 1000) (0x0010 = 0000 0000 0001 0000) (0x0020 = 0000 0000 0010 0000) (0x0040 = 0000 0000 0100 0000)
8 / 20
Alcatel NAD
02/07/01
Message content Information messages : (data) For these messages, only the first byte is taken into account :
Value 1
Meaning UNAVAILABLE
Description The last message sent by the call context of the current sep has NOT been provided to destination. The last message sent by the call context of the current sep has been provided to destination. DPE internal message : current message contain information for the user distribution (destination should be the DPE) current message is a polling message (must be answered with an ALIVEANSWER) current message is the answer to the polling message DPE internal message : asks for a list of seps associated to a given host DPE internal message : provides a list of seps associated to a given host do not consider this message (not documented) (not documented) message sent by netwatcher to DPE : message data contains a list of IP addresses that cannot be contacted any more message sent by a DPE to an other DPE in an other domain to create an inter-domain link.
Continued on next page
2 3
ACK UDINFO
4 5 6 7 8 9 10 11
12
DPEINFO
9 / 20
Alcatel NAD
02/07/01
Message content IN messages (data) These messages are related to inter-sep messages. (continued)
Description sequence counter in current dialog (this allows detecting sequentiality between 2 call contexts). protocol used for current message interpretation TCAP : 0 TIMER : 1 OBJ : 2 (object) ANY : 3 INFO : 4 (information) OTHER : -1
message type (see table below) output signal string containing the name of destination script connector (null terminated) message content (see example below)
The table below describes the message types. Name ABORT BEGIN CONT END REJECT CANCEL INVOKE RESULT Value 0 1 2 3 4 5 6 7
Continued on next page
Comment
10 / 20
Alcatel NAD
02/07/01
Value 8 9 10 11 12 13 -1 object
Comment prot=INFO, T_ERROR : destination is unavailable, UNAVAILABLE message received from DPE. (prot=INFO, T_TIMCON : initiate a timer connector)
Example of content
The length is the length of the object serialization (sum of the serialization of all attributes). The serialization is the list of serialized attributes. the attribute name string is terminated with null the length is the length of the attribute value the attribute value itself.
11 / 20
Alcatel NAD
02/07/01
Messages table
The table below gives the definition of the DPE messages. Name T_END T_ERROR Value of protocol prot=INFO prot=INFO Meaning local dialog is closed in current interscript communication destination is unavailable, UNAVAILABLE message received from DPE initiate a timer connector remote dialog is closed in current inter-sep communication
T_TIMCON T_QUIT T_ABORT T_BEGIN T_CONT T_REJECT T_CANCEL T_INVOKE T_RESULT T_TIMER T_INANY T_OBJ
prot=INFO prot=INFO
12 / 20
Alcatel NAD
02/07/01
Introduction
Connexion
Message processing
Destination reached ?
No
RECOVERY flag No
ACK flag
IGNORE_ERROR flag
Yes
No
Connection
When a SEP connects to the DPE, the DPE sends immediately an "ALIVE REQUEST" message to the SEP. The SEP is then supposed to answer with an "ALIVE ANSWER" to the DPE.
SEP connect ALIVE REQUEST ALIVE ANSWER DPE
13 / 20
Alcatel NAD
02/07/01
Processing
The SEP can now send messages via the DPE. When the DPE receives a message, it computes the destination sep from the message header and forwards the message to the destination SEP.
SEP1 DPE msg (dest SEP2) computes destination from msg header msg (dest SEP2) SEP2
ACK flag
and if
then
the DPE router succeeded in the DPE router sends an forwarding the message to the acknowledgement message destination SEP to the sending SEP.
SEP1 ACK
DPE
SEP2
Normal processing If the "IGNORE_ERROR" flag is not set in the message header and if the DPE router cannot forward the message to the destination then the DPE router sends an warning message to the sending SEP.
SEP1
DPE
SEP2
UNAVAILABLE
14 / 20
Alcatel NAD
02/07/01
Store and forward If the "RECOVERY" flag is set in message header and if the DPE router cannot forward message to destination then the DPE router stores the message on disk for further processing by the Recovery process
DPE
SEP2
Recovery
reads msg from disk unsets the 'Recovery' flag set the 'Recovered' flag send msg to DPE while no ACK received
msg (dest SEP2, Recovered, Ack) msg (dest SEP2, Recovered, Ack)
15 / 20
Alcatel NAD
02/07/01
then it sends the answer by using the orig field of the incoming message
SEP1
DPE msg (orig=SEP1, dest=SEP2) computes destination from msg header msg (orig=SEP1, dest=SEP2) msg (orig=SEP2, dest=SEP1) computes destination from msg header msg (orig=SEP2, dest=SEP1)
SEP2
16 / 20
Alcatel NAD
02/07/01
Then the originating application has to ask the DPE router to generate an origin for its connection by using the "GENERATE ORIGIN" flag in message header.
APP
DPE
SEP2
alive_request, generate_origin computes origin alive_answer, dest=<orig> msg (orig=<orig>, dest=SEP2) computes destination from msg header msg (orig=<orig>, dest=SEP2) msg (orig=SEP2, dest=<orig>) computes destination from msg header msg (orig=SEP2, dest=<orig>)
17 / 20
Alcatel NAD
02/07/01
Introduction
This document consists in developers notes explaining the new logic of message management inside the DPE.
Read raw message (non-blocking operation) read message length (4 bytes) message (message length bytes) decode message header generate origin (if needed : external application) if (ROUTING)// message for a sep group (or broadcast) { get destination list from user distribution if (destination list is not empty) { for each destination { routeMessageTo (destination) reply ACK (if required) } } else if (group is unknown from user distribution) { compute group domain
if (not current domain and domain exists) { compute destination dpe send message on destination dpe reply ACK (if required) } } Recover message (if needed and required) Reply UNAVAILABLE (if needed and required) } else if (header.dest == DPE) { UDINFO : register origating sep to DPE manage message at user distribution level DPEINFO : register remote domain DPE ... reply ACK (if required) }
18 / 20
Alcatel NAD
02/07/01
else if (DpeTransport (header.dest)) { send message on concerned transport reply ACK (if required) Recover message (if needed and required) Reply UNAVAILABLE (if needed and required) } else (normal case : message for a given destination { routeMessageTo (header.dest) reply ACK (if required) Recover message (if needed and required) Reply UNAVAILABLE (if needed and required) } routeMessageTo(header.dest) compute destination connection file descriptor if (file descriptor (cnx) already known) { if (destination is not overloaded) { if (destination is not restricted or it is not a new dialog) { send message on destination connection } } } else if (it is an inter-domain destination) { compute destination domain (from config) if (other domain) { if (new transaction) { compute destination dpe with a round-robin algorithm } else (keep same route for further dialogue msgs) { compute destination dpe from dialog (keep same route for sequentiality) } send message on destination dpe } } else if (it is an external application) { compute destination host from header.dest send message to dpe corresponding to destination host }
19 / 20
Alcatel NAD
02/07/01
Document References
Status
Author
Editor
Appraiser
Disclaimer
All rights reserved. Passing on and copying of this document, use and communication of its contents not permitted without written authorisation from Alcatel Namur INDC. A1435 SMP, A1425 SCP, A1400 Intelligent Network, A1452 SCE Engineering Tool, Alcatel 1300 Network Management Centre are the registered trademarks of Alcatel. The other marks and product names cited are the service marks or registered trademarks of their respective owners. The information in this documentation is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Alcatel does not warrant that this documentation is error free.
20 / 20