Long Term Evolution (LTE) call setup on a Packet Data Network Gateway (PGW) includes GPRS Tunelling Protocol (GTP) mesages, Create Session Request and Create Session Response, at both ends of the setup. For the case of rejected calls, Create Session Response may or may not include a bearer context information element (IE). This article explains why some rejections include the bearer context, while others do not. This document provides clarification to avoid potential confusion when troubleshooting and analyzing rejection cause codes on S5/S11 interfaces via packet captures (PCAPs).
The screenshot shown below shows an example of Create Session Response which has two entries for Cause Code 73 (No resources available) rejection, whereas the second screenshot has only one entry. Why does this seem inconsistent?
Wireshark Packet Capture
It turns out that if the call is responded to during the early stages of the setup, there is no bearer context included in the response, and so therefore only one instance of a cause code included. An early stage can include being rejected at the demux process level (i.e. egtpinmgr), parse error, or incorrect Information Element (IE). But if calls are rejected in later stages, such as Diameter S6b, Gx, Gy, etc., while being processed by sessmgr, which is the more common scenario, then a cause code at the bearer context level is included (which effectively duplicates the main cause code).
Per specification the behavior of not including the bearer context is acceptable: 3GPP 29.274-a50 Section 6.1.1 clearly says that “Only the Cause information element at message level shall be included in the response if the Cause contains a value that indicates that the request is not accepted regardless of whether there are other mandatory or conditional information elements defined for a given response message”. In summary, what is normally a mandatory IE becomes optional (and so it is OK not to include it) in the case where the message level response is a rejection.