Wireshark 4.4.2 not able to decode RRC's UE Information Response coarseLocation's degreesLongitude correctly
Wireshark 4.4.2 version (latest one) seems to decode degreesLongitude incorrectly. Please find below the parameter and issue details:
Parameter is present inside NR RRC message as shown in below heirarchy:
NR Radio Resource Control (RRC) protocol->UL-DCCH message ->ueInformationResponse-r16->coarseLocationInfo-r17->Ellipsoid-Point->degreesLongitude
Here, as per specification 3gpp 23032 (v18.01.00) section 6.1 -> Coding of Point -> The longitude, expressed in the range -180°, +180°, is coded as a number between -223 and 223-1, coded in 2's complement binary on 24 bits. The relation between the coded number N and the range of longitude X it encodes is the following (X in degrees):
2^24 * X
N <= ----------- < N+1
360
Issue:
Here if we want to send a longitude in degrees with a positive value, msb is always set with "1" even though it is a positive number and in case of a negative longitude value, 2's complement is calculated and MSB is always set as "0" even though it should be "1" as it's a negative number.
For e.g. In case of -4.9 degrees, if we calculate value of N using above formula, it should be -233013. 2's complement of -233013 is 1111 1100 0111 0001 1100 1010
i.e. FC 71 CB but in wireshark it is 7C 71 CB i.e. msb is set to 0 instead of 1 as its a negative number
and similarly wrong msb in case of positive number.
To report a bug please go to https://gitlab.com/wireshark/wireshar...
For info see https://www.wireshark.org/docs/wsdg_h...