Wireshark-bugs: [Wireshark-bugs] [Bug 9644] New: Issues with decoding AbsentSubscriber error

Date: Thu, 16 Jan 2014 16:06:22 +0000
Bug ID 9644
Summary Issues with decoding AbsentSubscriber error
Classification Unclassified
Product Wireshark
Version unspecified
Hardware x86
OS Windows 7
Status UNCONFIRMED
Severity Major
Priority Low
Component Wireshark
Assignee [email protected]
Reporter [email protected]

Build Information:

Version 1.11.3-SVN-54548 (SVNRev 54548 from /trunk)

Copyright 1998-2014 Gerald Combs <[email protected]> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (32-bit) with GTK+ 3.4.4, with Cairo 1.10.2, with Pango 1.30.1, with
GLib 2.32.4, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.1, without Python, with GnuTLS 2.12.18, with Gcrypt 1.4.6,
with MIT Kerberos, with GeoIP, with PortAudio V19-devel (built Jan  1 2014),
with AirPcap.

Running on 32-bit Windows 7 Service Pack 1, build 7601, with WinPcap version
4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch
1_0_rel0b (20091008), GnuTLS 2.12.18, Gcrypt 1.4.6, without AirPcap.
       Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz, with 3240MB of physical
memory.


Built using Microsoft Visual C++ 10.0 build 40219

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.



--
Issues with decoding of AbsentSubscriber

(A) An attempt should be made to decode an AbsentSubscriberParam when 
      phase < 3. Seems to be a problem with the comment in the asn file. 
      Code seems to be behaving correctly. 
(B) AbsentSubscriberParam does not include Phase 1 definition

Regarding (A), here is the definition from wireshark

absentSubscriber  ERROR ::= {
    PARAMETER
        AbsentSubscriberParam
        -- optional
        -- AbsentSubscriberParam must not be used in version <3
    CODE    local:27 }

AbsentSubscriberParam ::= SEQUENCE {
    extensionContainer  ExtensionContainer  OPTIONAL,
    ...,
    absentSubscriberReason  [0] AbsentSubscriberReason  OPTIONAL}

AbsentSubscriberReason ::= ENUMERATED {
    imsiDetach (0),
    restrictedArea (1),
    noPageResponse (2),
    ... ,
    purgedMS (3),
    mtRoamingRetry (4),
    busySubscriber (5)}

However here is the definition from 0902-550.doc  
http://www.3gpp.org/DynaReport/0902.htm

Section 14.1.6 page 201
    shortMsgMO-RelayContext    v2    forwardSM
    shortMsgMT-RelayContext    v3    mt-forwardSM

forwardSM  OPERATION
   ARGUMENT
      forwardSM-Arg SEQUENCE {
         sm-RP-DA   CHOICE {
            imsi       [0] IMPLICIT OCTET STRING ( SIZE (3 .. 8 ) ), 
            lmsi       [1] IMPLICIT OCTET STRING ( SIZE (4 ) ), 
            serviceCentreAddressDA [4] IMPLICIT OCTET STRING ( SIZE (1 .. 20 )
), 
            noSM-RP-DA [5] IMPLICIT NULL}, 
         sm-RP-OA   CHOICE {
            msisdn     [2] IMPLICIT OCTET STRING ( SIZE (1 .. 20 ) ) ( SIZE (1
.. 9 ) ), 
            serviceCentreAddressOA [4] IMPLICIT OCTET STRING ( SIZE (1 .. 20 )
), 
            noSM-RP-OA [5] IMPLICIT NULL}, 
         sm-RP-UI   OCTET STRING ( SIZE (1 .. 200 ) ), 
         moreMessagesToSend NULL OPTIONAL, 
         ... }
   ERRORS {
      -- systemFailure -- localValue : 34, 
      -- dataMissing -- localValue : 35, 
      -- unexpectedDataValue -- localValue : 36, 
      -- facilityNotSupported -- localValue : 21, 
      -- unidentifiedSubscriber -- localValue : 5, 
      -- illegalSubscriber -- localValue : 9, 
      -- illegalEquipment -- localValue : 12, 
      -- absentSubscriber -- localValue : 27, 
      -- subscriberBusyForMT-SMS -- localValue : 31, 
      -- sm-DeliveryFailure -- localValue : 32}
 ::= localValue : 46

absentSubscriber ERROR
   PARAMETER
      absentSubscriberParam SEQUENCE {
         extensionContainer SEQUENCE {
            privateExtensionList [0] IMPLICIT SEQUENCE SIZE (1 .. 10 ) OF
               SEQUENCE {
                  ... } OPTIONAL, 
            pcs-Extensions [1] IMPLICIT SEQUENCE {
               ... } OPTIONAL, 
            ... } OPTIONAL, 
         ... }
 ::= localValue : 27

So I would think that this comment should be removed. 

-- optional
        -- AbsentSubscriberParam must not be used in version <3

The code in dissect_returnErrorData(..) does not seem to take application
context version
into consideration

Absent Subscriber definition (Phase 1)
=======================
Here is the phase 1 definition from: 

http://www.etsi.org/deliver/etsi_gts/09/0902/03.11.00_60/gsmts_0902sv031100p.pdf
page 436 
AbsentSubscriber:: ERROR
PARAMETER 
    mwd-set  BOOLEAN optional

So perhaps we need a definition like:
PARAMETER CHOICE {
               mwd-Set BOOLEAN,
           absentSubscriberParam AbsentSubscriberParam}

I will follow up with wireshark associated with (B) next.


You are receiving this mail because:
  • You are watching all bug changes.