Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-bugs: [Wireshark-bugs] [Bug 6881] Support for MPLS Packet Loss and Delay Measurement,

Date: Fri, 10 Aug 2012 06:13:58 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6881

--- Comment #16 from Anders Broman <anders.broman@xxxxxxxxxxxx> 2012-08-10 06:13:58 PDT ---
(In reply to comment #15)
> (In reply to comment #13)
> > (In reply to comment #12)
> > > sure, you are right (grrr I tested this with sid = 1, 2 and 3).  Would you 
> > > mind to also remove those ugly spaces between types and variables, I 
> > > mean:
> > > 
> > >      } else {
> > >          <...>
> > >          *sid = ((guint32)sid0 >> 6) | ((guint32)sid1 << 8) |
> > >                 ((guint32)sid2 << 16) | ((guint32)sid3 << 24);
> > >      }
> > > 
> > > thanks a lot!
> > > ciao
> > > FF
> > 
> > Done in SVN #41118
> Hi Bill,
> actually, I think I made a mess... my_brain.reboot()
>    0                   1                   2                   3
>    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>   |Version| Flags |  Control Code |        Message Length         |
>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>   | DFlags|  OTF  |                   Reserved                    |
>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>   |                       Session Identifier          |    DS     |
>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> Session Identifier (sid in my code) is encoded in network byte order
> and is *26* bits (DS is part of the Session Identifier in case of
> class_specific flag is not set).
> So... what I think is correct is:
>     if (!(*class_specific)) {
>         /*
>          * FF: when the T flag is set to 0 the DS field can be considered
>          * part of the Session Identifier.
>          */
>         *sid = tvb_get_ntohl(tvb, offset + 8);
>     } else {
>         sid3 = tvb_get_guint8(tvb, offset + 8);
>         sid2 = tvb_get_guint8(tvb, offset + 9);
>         sid1 = tvb_get_guint8(tvb, offset + 10);
>         sid0 = tvb_get_guint8(tvb, offset + 11) & 0xC0;
>         *sid = (sid0 >> 6) | (sid1 << 2) | (sid2 << 10) | (sid3 << 18);
>         *sid = g_ntohl(*sid);
>     }
> In case you think this is correct feel free to use attachment 8930 [details].
> thank you
> ciao
> FF


Hi,
How about:
     if (!(*class_specific)) {
         /*
          * FF: when the T flag is set to 0 the DS field can be considered
          * part of the Session Identifier.
          */
         *sid = tvb_get_ntohl(tvb, offset + 8);
     } else {
         *sid = (tvb_get_ntohl(tvb, offset + 8)>>6;

-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.