Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#44 Error in rendering disconnected MSC

open
Tomas Marton
5
2012-07-17
2012-05-29
Gilberto Tavan
No

I've noticed SCstudio has a bug in import function, when rendering of disconnected MSC.
When a new instance of a node pops up, the messages are placed at the beginning of the .vsd file,
they should be always added after the last message.

Having multiple interfaces (IPaddresses) is quite common in SIP applications.

In the attachment an example of SIP Call Flow, where the rendering is incorrect.

Discussion

  • Gilberto Tavan
    Gilberto Tavan
    2012-05-29

    Error in rendering import of .mpr created with pcap2z120.py

     
    Attachments
  • Gilberto Tavan
    Gilberto Tavan
    2012-05-29

    Correct rendering created with mscgen

     
    Attachments
  • Gilberto Tavan
    Gilberto Tavan
    2012-05-29

    The .mpr file imported with SCstudio

     
    Attachments
  • Gilberto Tavan
    Gilberto Tavan
    2012-05-29

    The .msc file created with pcap2msc

     
    Attachments
  • Vojtech Rehak
    Vojtech Rehak
    2012-05-30

    Actually, it is a basic feature of MSC that disconnected events on different instances can be placed arbitrarily.

    I suggest two solutions:
    - consider the interfaces of a single computer as standalone components and add some messages between these interfaces representing internal communication proceed within the computer; hence, the relevant messages will not be disconnected any more. (Ok. this should be hardly achieved from pcap. )
    - consider the multiple interfaces as nicknames of the same computer and make a single instance representing all of them together (Matus, is there any possibility to specify this by parameters of pcap2z120.py?)

     
  • Vojtech Rehak
    Vojtech Rehak
    2012-05-30

    • assigned_to: mbezdeka --> madzin
     
  • Matus  Madzin
    Matus Madzin
    2012-06-03

    Hi,
    Firstly I would like to thank Mr. Tavan for good report. Now, I replay to xrehak's comment.

    Actually, I can confirm that it's basic feature of MSC, but I don't like any of xrehak's suggestions.

    If I understand the problem correctly, Mr. Tavan wants a linearization over all messages in an MSC diagram. To reach this functionality by clear solution, I suggest to set time stamp of each message from pcap as an absolute time constraint and create new feature of SCStudio to linearize messages in MSC diagram if it's possible (when the diagram is created from pcap file, it should be always possible).

    I think, it would be correct to assign this ticket to feature request category.

    Matus

     
  • Gilberto Tavan
    Gilberto Tavan
    2012-06-09

    Hi Matus,

    Your interpretation is absolutely correct, sorry I could have been more clear in my explanations.

    Using .pcap timestamps as references would give a correct temporal order, which would then render the MSC exactly as mscgen.exe does, but with the great advantage of editing capabilities thanks to SCstudio.
    The time constraint would solve the problem, if time constraint implies a graphical spacing on the Y-axis.

    The correct order and a constant spacing is more than enought in most MSC Diagrams in my area of expertise (which is Telecomunications)

    Talking about Z120 import .mpr files produced by pcap2z120.py do not contain timestamps, but I think that correct temporal order and constant spacing could be easier to implement and have a better aesthetical result.

    Thanks to you all for this unique and handy tool.

    BR

    Gilberto

    PS I've searched for import procedure in the source code, but I can't find them easily.

     
  • Gilberto Tavan
    Gilberto Tavan
    2012-06-19

    • summary: Error in renderind disconnected MSC --> Error in rendering disconnected MSC
     
  • Vojtech Rehak
    Vojtech Rehak
    2012-06-22

    bug -> feature request

    We will solve it as a special kind of Beautify that will take time information into account.

    Gilberto wrote:
    > PS I've searched for import procedure in the source code, but I can't find them easily.

    The import procedure itself is in "trunk/src/data/pcap/". It reads a given file and fills the internal data structure.
    It has not been implemented In the visio part yet, i.e. in "trunk/src/view/visio/addon/document.cpp".

     
  • Vojtech Rehak
    Vojtech Rehak
    2012-06-22

    • labels: 1076816 --> Visio Interface
     
  • A few comments on .mpr creation script pcap2z120.py, I know it may seem OoS at first sight, but if current pcap2z120 algorithm will be inherited by the new feature there are a few things to take into account:

    1) pcap2z120.py assumes the instances should be IP address only.
    In telco applications and especially in LTE it is quite common to have a Point Code, i.e. a single number, instead of an IP address as instance of an MSC.

    2) It's also quite common to perform Network Name resolution of the IP adresses in Wireshark in order to automatize the substitution of IP addresses with Node Names, using host file. In this case an instance can be represented by an alphanumeric string.

    3) In telco application of MSC, i.e. Call Flows most of the time it is not necessary to have a linearization proportional to time stamps, so it could be an option.
    The important thing is to be able to use vertical spacing (i.e. time constraint) on new "disconnected" instances.
    After importing with timestaps coordinates beautify function could linearize vertical spacing as it does today, while other applications may require to respect timestamps spacing.

    4) Regarding .mpr import function, that will have anyway a rendering problem, the vertical spacing could be proportional to Message Number, which is already available in .mpr file

    PS: I was referring to current z120 import function, I would like to take a look to a possible implementation of the concept expressed in bullet 4)
    Thanks

     
  • Matus  Madzin
    Matus Madzin
    2012-07-17

    • assigned_to: madzin --> tmarton
     
  • Gilberto Tavan
    Gilberto Tavan
    2012-10-07

    In my last comment (nobody was me, sorry) in bullet 1), the comment about instance of an MSC that can be in the more general context, also a Number..
    The example of an MSC (Mobile Switching Center, which is a Telephony Exchange) is thta can be represented by a Point Code is a little bit unfortunate because MSC is also the Acronym of Message Sequence Chart.

    Now It will be more clear, that in Telco you can have an MSC (Switching Center) as an instance of a Message Sequence Chart.

     
  • Matus  Madzin
    Matus Madzin
    2012-10-18

    Thank you for your interest in this topic. Currently we prepare a bigger package of modifications and I pretty sure that we achieve improvements in the issues you have posted (post from 2012-06-22).

    We will change the way to work with pcap files. Pcap2z120 script will not be necessary to use. Instead of that pcap files will be imported from the MS Visio similarly as .mpr files are imported today. We will test new functionality and we will have released by the end of the year (hope before the December).

    Finally I have a question about your post from 2012-06-22. I am not able to see difference between 1) and 2) bullet. In bullet 1) you asked for ability to express instance name by a number and in 2) bullet you suggested to express instance name by alphanumeric string.

    BTW: today it is able to express instance name by the alphanumeric strings and we will think about the possibility to rename instances automatically by some definition from external file.

     
  • Gilberto Tavan
    Gilberto Tavan
    2012-10-21

    Hi,

    bullet 1) refers to Instances of Telco Network Elements (like MSC, SMSC, SGSN, MME) represented by SS7 Point Codes, i.e. numbers, which extended to a more general concept would be "every Application protocol on top of the IP stack will have is own format of representing Nodes"

    When using pcap2z120.py script this complexity is masked to the user by Tshark which elects a protocol in the stack and gives in output as Source/Destination non only IPv4/IPv6 addresses but also Numbers.
    For some protocols could also be Hexadecimal numbers or Labels.

    Will the pcap import procedure use the same "deafault dissector rule" used by Tshark? In that case Nodes can appear as numbers or labels

    Regarding bullet 2) i.e. resolving name of instances, IP addresses could resolved by means of hosts file, but for general Name Resolution a more general approach is the best way, like you said.

    The important thing is that, in case pcap import is going to mimic Tshark behavior then the external file of node definition should support declaration of numbers/labels as instances.

    Best Regards