telecom • networking • design

an EventHelix.com blog


Leave a comment

LTE X2 Handover Between eNodeBs Served by the same MME

LTE eNodeBs can directly communicate with other eNodeBs on the X2 interface. The X2 interface is used to perform a handover between eNodeB.

The messaging in X2 handover is detailed in LTE X2 Handover Presentation. A few excerpts from the presentation as shown below.

X2 Handover Sequence Diagram

The X2 handover flow is shown in the following sequence diagram:

Figure 1 X2 Handover Sequence Diagram

Handover Preparation

The handover procedure is triggered by the X2AP Handover Request message. The RABs to be handover over are sent from the source eNodeB to the target eNodeB.

Figure 2X2AP Handover Request

The target eNodeB then admits the user and responds with X2AP Handover Request Acknowledge message. This message contains a transparent container that carries the Handover Command message that needs to be sent to the UE.

Figure 3 X2AP Handover Request Acknowledge

The source eNodeB sends the handover command to the UE. It then sends sequence number information to the target eNodeB.

The target eNodeB then requests the MME to switch the path from the source eNodeB to target eNodeB.

Handover Execution

Figure 4 S1AP Path Switch Request

This was an overview of the messaging involved in the X2 handover. For details refer to the LTE X2 Handover Presentation.

Advertisements


Leave a comment

What’s New in EventStudio System Designer 6

Introducing EventStudio System Designer 6. A free 45 day trial is available for download.

New features in the release:

Message endpoint tagging

Specify tags

Tag the message source and destinations. This can be used to identify the endpoint port numbers, and specify the protocol layer or software entities.

“BSSMAP PAGING”: A-bssmap -> B-bssmap
HTTPGet : Client -> Server-“80”
Cascade : A-rr -> B-cc -> C-“80”
A-bcch multicasts SI to B-bcch, C-bcch
Cascade : A-cc -> B-cc -> C-rr
chain
Chain1(par1,param2,param3):A-cc-> B-cc
Chain2: B-cc -> C-rr
endchain

Style tags

Each type of tag can be individually formatted. The color, font and font size may be specified. The styles for tags should be named as <tag>_tag_style. A few examples are shown below:

style rr_tag_style: color=RED, bgcolor=RED, textcolor=WHITE
style sccp_tag_style: color=DODGERBLUE, bgcolor=DODGERBLUE, textcolor=WHITE
style isup_tag_style: color=GREY, bgcolor=GREY, textcolor=WHITE
style bssmap_tag_style: color=MIDNIGHTBLUE, bgcolor=MIDNIGHTBLUE, textcolor=WHITE
style cc_tag_style: color=DARKSLATEGRAY, bgcolor=DARKSLATEGRAY, textcolor=WHITE
style bcch_tag_style: color=DODGERBLUE, bgcolor=DODGERBLUE, textcolor=WHITE
style “80_tag_style”: color=DODGERBLUE, bgcolor=DODGERBLUE, textcolor=WHITE

Tag specific diagrams

Use tags to filter and generate sequence diagrams that just contain messages with a specific tag.

Styling

Control the look and feel of documents with default styles. Automatically apply these styles that match regular expressions. For example, specify a style for all messages that start with specific text. Styles have been enhanced to change colors for the background, text, and parameters.

Group interactions with sequences

Simplified sequence definitions

Grouping interactions has been simplified. Just enclose the interactions in a sequence statement. EventStudio automatically identifies the interacting entities.

Nest sequences

Sequences may be nested. Quickly access a sequence from a PDF bookmark, which are nested too.

Collapse sequences

Complete sequences are shown the first time they occur in a sequence diagram. Subsequent occurrences of the sequence are shown as a simple clickable box. Clicking on the box takes the user to the expanded sequence.
module: Module_01
component: Component_01 in Module_01
eternal: a in Component_01, b in Component_01, c in Component_01
feature "Sequence Grouping"
  sequence "Call Setup"
     IAM : a -> b
     b takes action "Check digits"
     ACM : a <- b
  endsequence
  case
     leg "Called Party Free":
       a, b take action "Set up the  voice path"
     leg "Called Party Busy": 
       a, b take action "Feed busy tone"
  endcase
  sequence "Call Release"
     REL : a -> b
     RLC : a <- b
  endsequence
endfeature

Classify systems with 5 levels of hierarchy

Generate sequence diagrams at any of the five abstraction levels.

Developers may work at the component and object level. System architects analyze the design at a system and subsystem level.

Improved modeling

Actions

Actions, which have a distinct beginning and ending, can be modeled with the new continuous action support. Also, actions may be specified at different levels in the hierarchy.

Messages

Lost messages can be modeled in sequence diagrams. Additionally, messages can be represented through a single simple statement.

“Lost Message”: A ->X B
“Message Cascade”: A -> B -> C

Enhanced tracing support

Flexible object interactions

Method invocation rules have been relaxed to make them compatible with sequence diagram generation from trace messages (http://eventhelix.github.com/trace-to-sequence-diagram/). Method calls to caller classes are permitted.

Command line

Command line mode is used to generate sequence diagrams from scripts. The command line can now be customized with specific conditional defines and include paths.

Model large systems

Share instance axes

Large number of interacting entities need not result in a large number of axis in diagrams. Dynamic objects can share a single instance axis, thus reducing the total number of axes needed in a sequence diagram.

Really large sequence diagrams

Sequence diagrams can now run into hundreds of pages. This is useful when converting large trace documents to sequence diagrams.

XML export

Export scenarios and interactions to XML. This enables generation of custom diagrams and documents.


Leave a comment

IMS subscriber to PSTN subscriber call flow

IP Multimedia Subsystem is an IP based signaling system for setting up and tearing down multimedia sessions. SIP based signaling is used to setup these sessions.

We have covered call flows for an IMS to IMS and PSTN to IMS calls. We now look at the call flow for a IMS to PSTN subscriber call.

The call is routed via the BGCF (Border Gateway Control Function) to the MGCF (Media Gateway Control Function). The MGCF uses one context with two terminations in IM-MGW (Media Gateway). The termination RTP1 is used towards IMS Core network subsystem entity and the bearer termination TDM1 is used for bearer towards PSTN CS network element.

The call flow is complex and it is analyzed with multiple diagrams. Some of the diagrams are presented here:

IMS to PSTN sequence diagram

A detailed call flow describing all message interactions in a IMS to PSTN call

IMS to PSTN high level flow

A high level view that abstracts out individual component details and just presents the flow between the UE, IMS Core and the PSTN.

IMS to PSTN UE collaboration diagram

Here we examine the call flow from the UE point of view. The call flow is represented as a collaboration diagram.

Link: IMS subscriber to PSTN subscriber call flow

All documents:


1 Comment

PSTN subscriber to IMS subscriber call flow

IP Multimedia Subsystem is the new IP based signaling system for setting up multimedia sessions. We have already covered the call flow for an IMS subscriber calling another IMS subscriber. Here we will look at the call flow of a regular PSTN subscriber calling an IMS user.

PSTN to IMS call flow

PSTN subscriber to IMS subscriber call flow

This call flow covers the handling of a CS network originated call with ISUP. In the diagram the MGCF requests seizure of the IM CN subsystem side termination and CS network side bearer termination. When the MGCF receives an answer indication, it requests the IM-MGW to both-way through-connect the terminations. Originating and terminating end initiated call releases are also covered.

The following sequence is covered:

  1. ISUP IAM Handling and Initial IM-MGW and MGCF (Mn) Interactions
  2. Initial Handshake between MGCF and IMS CSCF Servers
  3. Mn Interactions for Codec selection
  4. ISUP ACM related interactions on Mn interface
  5. IMS Answer to ISUP ANM Handling
  6. Conversation Mode
  7. Call Release:
    • Calling PSTN Subscriber Initiated Call Release
    • Called Subsciber Initiates Call Release

Link: PSTN subscriber to IMS call flows

Focus on different aspects of the call flow

PSTN to IMS call is a very complex flow. The main sequence flow is supplemented with flows that focus on a particular aspect of the flow. A snapshot of one such diagrams is shown here:PSTN subscriber to IMS subscriber - Terminating S-CSCF interactions

Link: PSTN subscriber to IMS call flows


Leave a comment

LTE Attach and Default Bearer Setup Sequence Diagram

LTE Attach and Default Bearer Setup

Click to open the PDF sequence diagram describing LTE attach and default bearer setup

This call flow describes the signaling involved in LTE attach and default bearer setup. The sequence diagram covers the following phases:

  1. Random Access Procedure: The UE uses a slotted aloha procedure to access the eNodeB. The UE sends a preamble on a random access channel, the network replies with corrected timing and resource assignments.
  2. RRC Connection Establishment: The UE and the eNodeB then interact to establish a Signaling Radio Bearer (SRB). The SRB will be used for the signaling between the eNodeB and the UE.
  3. Attach and Authentication: The UE now registers with the Core Network. Session contexts are setup at the MME and the Serving Gateway. This step also results in the authentication of the UE and the Network.
  4. Default Radio Bearer Setup: Finally, the default bearer for data transfer is established. Default bearer session is established at the UE, eNodeB, MME, Serving GW and PDN Gateway. User data sessions is exchanged once the default bearer is setup.

The sequence diagram also contains links to access further details about the messages. Click on the messages with blue title for details about the message.

RRC Connection, LTE Attach and Default Radio Bearer Setup

 


Leave a comment

Convert trace logs to sequence diagrams

Browsing through the code traces is an exercise in frustration. Applications produce huge logs that take hours to analyze. The Python scripts presented here let you visualize the traces as sequence diagrams. Interactions between objects are presented visually.

Python scripts and EventStudio work together to transform the following trace…

[16-Apr-2011 03:05:02.111][Messaging][MessageHandler.cpp:563]received RandomAccessMessage(signalQuality=15) from DSP_01
[16-Apr-2011 03:05:02.111][Messaging][MessageRouter.cpp:94]called MessageRouter::OnRandomAccessMessage()
[16-Apr-2011 03:05:02.111][Messaging][MessageRouter.cpp:90]decoded RRCConnectionRequest(cause = Mobile Originated Data, s_tmsi=5)
[16-Apr-2011 03:05:02.111][Dispatcher][MobileManager.cpp:92]called MobileManager::OnRRCConnectionRequest()
[16-Apr-2011 03:05:02.112][Dispatcher][MobileManager.cpp:94]created Mobile(id=5)
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:110]called Mobile::OnRRCConnectionRequest()
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:89]moved-to Setting up RRC Connection
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:100]begun RRC Connection Setup
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:105]allocated TrafficDSP(id=23)
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:141]called Mobile::SendRRCConnection()
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:220]sent RRCConnectionSetup(s_tmsi=5) to DSP_23
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:118]returned from Mobile::SendRRCConnection
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:117]started AwaitRRCConnection
[16-Apr-2011 03:05:02.112][UE][Mobile.cpp:118]returned (val=5) from Mobile::OnRRCConnectionRequest

…sequence diagrams and collaboration diagrams.

This slideshow requires JavaScript.

The Python scripts lets you customize the mapping from your traces to sequence diagrams with regular expression definitions.

The example below shows how named regular expression groups are mapped to sequence diagram generation language (FDL).

 # Regular expression for parsing the function/method entry trace body
    invokeRegex = '(?P\w+)(\.|::)(?P\w+)\s*(\((?P\w+)\))?'

    # FDL mapping template for function/method entry
    invokeTemplate = '{method} {params} :{caller} -> {called}'

Trace Log to Sequence Diagram Conversion


Leave a comment

Introducing a sequence diagram based system modeling tool

Model object and message interactions in text. Visualize with sequence diagrams and context diagrams.

Image

Features