Mobile Core Network Optimization Handbook – 13 Anonymized Field Case Studies

Hi everyone,

I recently published an open-access technical handbook titled Mobile Core Network Optimization Handbook.

It presents 13 anonymized field case studies based on practical mobile-core network troubleshooting and optimization activities.

The cases cover areas including:

  • EPC / Packet Core optimization
  • VoLTE and SRVCC
  • 5G/LTE interworking and EN-DC
  • Mobility and gateway selection
  • DNS and topology issues
  • Charging and session efficiency
  • Roaming access control

Each case follows a practical structure covering the operational symptom, investigation, root cause, corrective action, verification, engineering lessons, and relevant 3GPP context.

The handbook is completely open access and can be read or downloaded freely.

DOI: https://doi.org/10.5281/zenodo.22125383

I would particularly appreciate feedback from engineers working in Packet Core, VoLTE, EPC and 5G Core. Technical comments, corrections and suggestions for future editions are very welcome.

Hi,

On CO-004, one precision worth stating explicitly for readers. The Create Bearer Request is network-initiated and rides the already-established S5/S8 and S11 GTP-C tunnels on stored FQ-TEIDs; it does not itself resolve a hostname. So the stale cache and hostname inconsistency are biting at the S-GW selection step of the mobility procedure, where the MME does a TAI-FQDN resolution during S-GW relocation, and the Create Bearer rejection is the downstream symptom on the mis-resolved endpoint rather than the transaction resolving anything per bearer. Making that explicit stops a reader inferring the MME resolves a hostname per Create Bearer. If your traces put the resolution somewhere else in the flow, I would be interested to see where.

On CO-008, the S1AP Paging Priority IE is the right lever, and there is a standardized end-to-end complement worth a line: Paging Policy Differentiation from Rel-13. The P-GW marks the DSCP of the downlink packet, the S-GW derives a Paging Policy Indicator, and the MME applies differentiated paging from that. It lets the differentiation trigger from the actual voice-triggered downlink rather than a static MME policy, which directly answers your own caution about not starving background paging, because the scope follows the real service instead of a blanket rule.

On CO-013, the three-layer separation is the strongest framing in the book, and naming the mechanisms would let readers map them cleanly: PLMN or regional-subscription restriction, Operator Determined Barring for barring of packet-oriented services, and APN-level authorization through the subscribed APN list and the VPLMN-address-allowed flag are three different subscription fields. Enforcing earlier really means carrying the correct field in the HSS subscription so the MME or SGSN rejects the PDN or PDP request at the ESM or SM layer with the correct cause, rather than letting the gateway or policy system reject it later after more signaling.

I work in core RCA and this is squarely my area, so if a v2 is planned I am happy to review the interworking and charging cases in draft. Honest, well-bounded piece of work.

Thanks for pointing this out for CO-004. I agree with the distinction.

The actual case was related to inconsistent S-GW FQDN configuration inside the MME pool. One MME had a different S-GW hostname from another MME, even though both hostnames pointed to the same S-GW IP address.

Because the old and new S-GW hostnames were different, the MME treated it as an S-GW change procedure. As a result, it sent a Create Session Request to the S-GW instead of a Modify Bearer Request.

The S-GW then rejected the Create Session Request with “Request Rejected / SP-to-SP Change Fail.”

So the Create Bearer failure mentioned in the case was a downstream symptom, while the actual problem started earlier with the S-GW identity/FQDN inconsistency.

Thanks for the technical review — this is exactly the kind of feedback I was hoping to get from publishing the casebook.

Good point for CO-008. Paging Policy Differentiation is a useful standardized complement to this feature.

In CO-008, however, the implemented solution was different. We used the MME VOICEPAGINGPRIORITY feature. The MME identifies the VoLTE/CSFB service and includes the Paging Priority IE in the S1AP Paging message. The eNodeB can then give that voice-related paging higher priority than normal paging.

So in this deployment the priority was already limited to identified voice services rather than being applied as a blanket priority to every paging message.

Rel-13 Paging Policy Differentiation provides another, more end-to-end way of carrying the service indication from the downlink packet toward the MME through the Paging Policy Indication. That was not the mechanism implemented in this particular case, but it is definitely worth mentioning in the standards/background section.

One small clarification on the Rel-13 flow: the P-GW preserves the received DSCP/Traffic Class; the S-GW uses that information for the Paging Policy Indication sent toward the MME.

Thanks for pointing it out.

Thanks, very useful clarification. I agree that naming the actual subscription mechanisms would make CO-013 clearer.

The main point of this case was exactly to separate roaming/registration restriction, packet-service barring, and APN/PDN authorization, because they should not be treated as the same control. The objective was to reject an unauthorized packet-data request at the appropriate subscription/policy layer instead of allowing unnecessary downstream session processing.

For the next revision I will go back to the original configuration and traces and identify the exact HSS/HLR subscription field and reject cause used in this deployment, rather than generalizing it.

And thanks for offering to review the interworking and charging cases. I would definitely appreciate that