telecom • networking • design

an blog

Leave a comment

Generate sequence diagrams from PCAP files that carry tunneled GTP traffic

VisualEther 6.1.103 now supports generating sequence diagrams from tunneled messages in PCAP files. You can create filters that will ignore the outer GTP message and extract the fields from the inner message.
Capture inner and outer messages is GTP

Leave a comment

LTE X2 Handover Sequence Diagrams

Let’s examine the X2 Handover in detail. We look at the X2 handover signaling procedure through sequence diagrams that focus on different aspects of the procedure.

The sequence diagrams presented here were generated with EventStudio System Designer.

LTE X2 Handover

Full signaling details are presented here.


Now we examine the same flow at a higher level of abstraction. The diagram focuses on the interactions between the mobile, eNodeBs and the MME/SGW.

UE Interactions

We now explore the signaling procedures that involve the UE.

Source eNodeB Role

Examine the interactions that involve the eNodeB that initiated the handover.

Target eNodeB Role

We now look at the interactions involving the eNodeB that will be serving the UE after the handover.

RRC Signaling the X2 Handover

The Radio Resource Control (RRC) signaling between the UE and the eNodeBs is covered here.

X2AP Signaling Between eNodeBs

X2AP is used for signaling between the eNodeBs. Here we examine the X2AP interactions.

Data Path Changes During an X2 Handover

The data path switching goes through several steps to accomplish a seamless handover.

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