Wireshark-users: Re: [Wireshark-users] Is that a bug in packet-gsm_sms.c ?
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Sun, 3 Apr 2011 09:57:12 -0700
On Apr 3, 2011, at 5:52 AM, damker wrote:

> means that it can be a FCS with PI?

No.  It means that a message can have an FCS and a PI, but they're separate octets.

According to 3GPP TS 23.040, an SMS-DELIVER-REPORT message has a TP-Failure-Cause (TP-FCS) if it's reporting an error, and always has a TP-Parameter-Indicator (TP-PI).

The check in question is trying to determine whether the octet in question is the TP-FCS from a delivery report from an RP-ERROR or the TP-PI from a delivery report from an RP-ACK.  If it's the former, it adds it as a TP-FCS and advances the offset to the next octet, which is the TP-PI, otherwise it doesn't report it at all and leaves the offset alone.  The code after that fetches the octet at the offset in question - which is the offset after the TP-FCS if it's determine to be a TP-FCS, and the offset of the field determined *not* to be a TP-FCS otherwise - and adds it as a TP-PI.

So, not a bug.

(Amusingly, a text message was being received, and responded to, in our household at the same time I was looking this up - and, yes, it was over a UMTS network.)