Skip to content
LIVE FEED

BlogUpdate-Location-Request / Update-Location-Answer (ULR/ULA) - PART 1

Update-Location-Request / Update-Location-Answer (ULR/ULA)

Reference: 3GPP TS 29.272 R15 (29272-fa0), S6a/S6d interface

Command-Code: 316, Application-ID: 16777251 (3GPP S6a/S6d)

  • ULR: R-bit set (Request), sent MME/SGSN → HSS
  • ULA: R-bit cleared (Answer), sent HSS → MME/SGSN

Cat. legend: M = Mandatory, C = Conditional, O = Optional


1. ULR — Update-Location-Request (§7.2.3)

1.1 ABNF / Message structure

<Update-Location-Request> ::= < Diameter Header: 316, REQ, PXY, 16777251 >
                               < Session-Id >
                               [ DRMP ]
                               [ Vendor-Specific-Application-Id ]
                               { Auth-Session-State }
                               { Origin-Host }
                               { Origin-Realm }
                               [ Destination-Host ]
                               { Destination-Realm }
                               { User-Name }
                               [ OC-Supported-Features ]
                              *[ Supported-Features ]
                               [ Terminal-Information ]
                               { RAT-Type }
                               { ULR-Flags }
                               [ UE-SRVCC-Capability ]
                               { Visited-PLMN-Id }
                               [ SGSN-Number ]
                               [ Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions ]
                               [ GMLC-Address ]
                              *[ Active-APN ]
                               [ Equivalent-PLMN-List ]
                               [ MME-Number-for-MT-SMS ]
                               [ SMS-Register-Request ]
                               [ SGs-MME-Identity ]
                               [ Coupled-Node-Diameter-ID ]
                               [ Adjacent-PLMNs ]
                               [ Supported-Services ]
                              *[ AVP ]
                              *[ Proxy-Info ]
                              *[ Route-Record ]

{ } = Mandatory, [ ] = Optional/Conditional, *[ ] = zero or more instances.

1.2 Field table (Table 5.2.1.1.1/1)

IE (Info. Element)Diameter AVPCat.Meaning / When present
IMSIUser-NameMSubscriber IMSI, formatted per TS 23.003 §2.2. This is the key identifying the subscriber the update applies to.
Supported FeaturesSupported-FeaturesOFeature list supported by origin host (per TS 29.229). Used for capability negotiation.
Terminal InformationTerminal-InformationOUE equipment info. On S6a/S6d only IMEI and Software-Version sub-AVPs are used.
ULR FlagsULR-FlagsMBitmask — see §1.3 below. Central control field: tells HSS what to do / what the requester is.
Visited PLMN IdVisited-PLMN-IdMMCC+MNC of the visited network; used for roaming-based feature/policy decisions.
Equivalent PLMN ListEquivalent-PLMN-ListOList of equivalent PLMNs for which CSG subscription data is requested.
RAT TypeRAT-TypeMRadio access type UE is using (EUTRAN, UTRAN, GERAN, WLAN, etc.) — HSS may reject certain RAT types (RAT_NOT_ALLOWED).
SGSN numberSGSN-NumberCISDN number of SGSN. Required on S6d if SGSN supports LCS/SMS/Gs; may appear on S6a for combined MME/SGSN.
Homogeneous Support of IMS Voice Over PS SessionsHomogeneous-Support-of-IMS-Voice-Over-PS-SessionsOIndicates whether IMS-VoPS is uniformly supported across all TAs/RAs of the serving node.
V-GMLC addressGMLC-AddressCIPv4/IPv6 of Visited GMLC, if available (location services).
Active APNActive-APNOList of APNs currently active at MME/SGSN + assigned PGW identity — used to restore PGW data in HSS after a Reset.
UE SRVCC CapabilityUE-SRVCC-CapabilityCWhether UE supports SRVCC; present if serving node supports SRVCC and info is known.
MME Number for MT SMSMME-Number-for-MT-SMSCISDN number to route MT-SMS to MME; present if MME supports/wants SMS-in-MME.
SMS Register RequestSMS-Register-RequestCMME/SGSN preference on SMS registration; present when SMS-in-MME or SMS-in-SGSN is supported and requested.
SGs MME identitySGs-MME-IdentityOMME identity used over SGs interface, if different from the S6a Diameter identity.
Coupled node’s Diameter identityCoupled-Node-Diameter-IDODiameter identity of the paired node (MME↔SGSN) for a combined MME/SGSN.
Adjacent PLMNsAdjacent-PLMNsOList of PLMNs into which UE handover is statically expected (operator-configured).
Supported ServicesSupported-ServicesOServices supported by MME/SGSN (per TS 29.336).

1.3 ULR-Flags bitmask (§7.3.7)

BitNameMeaning
0Single-Registration-IndicationHSS sends Cancel Location to SGSN. SGSN must not set this bit.
1S6a/S6d-IndicatorSet = message on S6a (source is MME). Clear = message on S6d (source is SGSN).
2Skip Subscriber DataHSS may omit Subscription-Data in ULA — but must still send it if subscriber data changed since last successful update.
3GPRS-Subscription-Data-IndicatorRequests HSS to include GPRS-Subscription-Data inside Subscription-Data. A standalone MME must not set this.
4Node-Type-IndicatorSet = requesting node is combined MME/SGSN; clear = standalone MME or SGSN.
5Initial-Attach-IndicatorHSS sends Cancel Location to any existing MME/SGSN registration.
6PS-LCS-Not-Supported-By-UEUE supports neither UE-Based nor UE-Assisted PS location methods.
7SMS-Only-IndicationUE requested “SMS only” during combined attach/RAU.
8Dual-Registration-5G-IndicatorControls whether HSS+UDM sends Nudm_UECM_DeregistrationNotification to a registered AMF (TS 29.503).

Undefined bits: sender clears them, receiver discards them.

Practically important for your S6a work: ULR-Flags bit 1 (S6a/S6d-Indicator) and bit 4 (Node-Type-Indicator) are the fields a DRA-layer AVP-tampering attack would most plausibly target to make the HSS believe it’s talking to a different node type/interface than it actually is — worth including in your FS.19 gap-analysis threat enumeration alongside AMBR/APN-Configuration.


2. ULA — Update-Location-Answer (§7.2.4)

2.1 ABNF / Message structure

<Update-Location-Answer> ::= < Diameter Header: 316, PXY, 16777251 >
                              < Session-Id >
                              [ DRMP ]
                              [ Vendor-Specific-Application-Id ]
                              [ Result-Code ]
                              [ Experimental-Result ]
                              [ Error-Diagnostic ]
                              { Auth-Session-State }
                              { Origin-Host }
                              { Origin-Realm }
                              [ OC-Supported-Features ]
                              [ OC-OLR ]
                             *[ Load ]
                             *[ Supported-Features ]
                              [ ULA-Flags ]
                              [ Subscription-Data ]
                             *[ Reset-ID ]
                             *[ AVP ]
                              [ Failed-AVP ]
                             *[ Proxy-Info ]
                             *[ Route-Record ]

2.2 Field table (Table 5.2.1.1.1/2)

IEDiameter AVPCat.Meaning / When present
Supported FeaturesSupported-FeaturesOFeature list supported by origin host.
ResultResult-Code / Experimental-ResultMOutcome of the operation. Result-Code = base Diameter (RFC 6733) success/error. Experimental-Result = 3GPP-specific errors (Vendor-Id + Experimental-Result-Code), covering: User Unknown, Unknown EPS Subscription, RAT Not Allowed, Roaming Not Allowed.
Error-DiagnosticError-DiagnosticOExtra detail when Experimental-Result = “Unknown EPS Subscription” (whether GPRS data exists) or “Roaming Not Allowed” (ODB type).
ULA-FlagsULA-FlagsCBitmask, present only when Result-Code = DIAMETER_SUCCESS — see §2.3.
Subscription-DataSubscription-DataCComplete subscriber profile. Present if success is reported, unless the ULR explicitly requested “skip subscriber data” (ULR-Flags bit 2) and no change occurred. This is the payload carrying APN-Configuration-Profile, AMBR, QoS-Subscribed, Access-Restriction-Data, etc. — the object at the center of your “Kịch bản A/B” tampering scenarios.
Reset-IDsReset-IDOIdentifies a fallible HSS resource the IMSI depends on; used so a later Reset message can target exactly the impacted subscribers.

2.3 ULA-Flags bitmask (§7.3.8)

BitNameMeaning
0Separation IndicationSet = HSS stores SGSN number and MME number in separate memory (Rel-8 HSS sets this; pre-Rel-8 IWF clears it).
1MME Registered for SMSSet = HSS has registered the MME for SMS.

3. Which fields matter most for security/CVD analysis

PriorityFieldWhy
CriticalSubscription-Data (ULA)Carries APN-Configuration-Profile, AMBR, QoS — direct target for your AMBR/APN-Config tampering scenarios. No integrity binding beyond Diameter/DRA hop-by-hop trust.
CriticalULR-Flags bits 1/4 (ULR)Determines interface interpretation (S6a vs S6d) and node type at the HSS — a tampering point for interface/role confusion.
HighResult-Code / Experimental-Result (ULA)Determines MME/SGSN behavior on failure (e.g. forces detach on Roaming Not Allowed) — spoofable to cause DoS.
HighVisited-PLMN-Id (ULR)Drives roaming policy decisions at HSS; tampering could bypass ODB/roaming restrictions.
MediumRAT-Type (ULR)Can trigger RAT_NOT_ALLOWED rejection if manipulated, or bypass RAT-based restrictions if spoofed.
MediumActive-APN / Coupled-Node-Diameter-IDUsed to restore/redirect PGW bindings after Reset — relevant to your session-redirect (“Kịch bản A”) analysis.

Mandatory-field takeaway: Only IMSI, ULR-Flags, Visited-PLMN-Id, RAT-Type are hard-mandatory in ULR; everything else is conditional/optional, which is exactly the surface a DRA acting as a Proxy Agent (not pure Relay) can add, strip, or modify without violating the ABNF — consistent with your existing finding that no SEPP/PRINS-equivalent integrity mechanism exists for S6a.


Source: 3GPP TS 29.272 version 15 (29272-fa0), §5.2.1.1.1, §7.2.3, §7.2.4, §7.3.7, §7.3.8

Contact
Facebook
TOP