Ethereal-dev: [Ethereal-dev] Q.931 Codeset Shift IE not being decoded properly

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Bryan Pelham <bryanp@xxxxxxxxxxxx>
Date: Wed, 9 Jul 2003 09:05:59 -0700
I believe the Q.931 codeset Shift Information Element is not being decoded
properly by EtherReal.

Sections 4.5.3 and 4.5.4 of the Q.931 standard specify the following format
for the Codeset Shift Information Element:

Length: 1 byte
Bits 8 - 5
   1001  = Shift Identifier
Bit 4
   0 = Locking shift
   1 = Non-locking shift
Bits 3 - 1
   000 = Not applicable (locking) / Codeset 0 (initially active): Q.931
information elements (non-locking)
   001 = Reserved
   010 = Reserved
   011 = Reserved
   100 = Codeset 4: information elements for ISO/IEC use
   101 = Codeset 5: information elements for national use
   110 = Codeset 6: information elements specific to the local network
(either public or private)
   111 = Codeset 7: user-specific information elements

Refer to Figure 4-9, Table 4-4, Figure 4-10, and Table 4-5 in the Q.931
specification.

H.323 EtherReal improperly decodes Bit 4 as:
   0 = Non-Locking shift (should be locking)
   1 = Locking shift (should be non-locking)
In the Non-Locking case, the codeset number is not properly decoded.

Examples:
Byte  Etherreal decode             Q.931 Spec
0x90  Non-lock codeset 0 Q931      Locking codeset 0 N/A
0x91  Non-lock codeset 1 Unknown   Locking codeset 1 Reserved
0x92  Non-lock codeset 2 Unknown   Locking codeset 2 Reserved
0x93  Non-lock codeset 3 Unknown   Locking codeset 3 Reserved
0x94  Non-lock codeset 4 ISO/IEC   Locking codeset 4 ISO/IEC
0x95  Non-lock codeset 5 National  Locking codeset 5 National
0x96  Non-lock codeset 6 Local     Locking codeset 6 Local
0x97  Non-lock codeset 7 User	     Locking codeset 7 User
0x98  Lock codeset 8 Unknown       Non-lock codeset 0 Q.931
0x99  Lock codeset 9 Unknown       Non-lock codeset 1 Reserved
0x9a  Lock codeset 10 Unknown      Non-lock codeset 2 Reserved
0x9b  Lock codeset 11 Unknown      Non-lock codeset 3 Reserved
0x9c  Lock codeset 12 Unknown      Non-lock codeset 4 ISO/IEC
0x9d  Lock codeset 13 Unknown      Non-lock codeset 5 National
0x9e  Lock codeset 14 Unknown      Non-lock codeset 6 Local
0x9f  Lock codeset 15 Unknown      Non-lock codeset 7 User


Bryan Pelham
Vertical Networks Inc.
1148  East Arques Ave.
Sunnyvale,  CA  94085
email:   bryanp@xxxxxxxxxxxx
Web: http://www.vertical.com