5G Core Course  /  Course home  /  Module 7 — SBI Deep Dive: Reading the Wire (HTTP/2 · REST · JSON)
3GPP Release 19
MODULE M7 · ~40 MIN · CINEMATIC + CAMERA

Reading the
Wire.

The module that turns a 5G signalling trace from noise into a story. The Service Based Interface at protocol depth — why the core runs on HTTP/2, the REST resource model and URI shape, the CRUD methods and custom operations, the pseudo- and 3gpp-Sbi headers, the full status-code table, ProblemDetails, subscribe/notify, the SCP and SEPP, and graceful overload control — narrated and fully animated, with flowing packets and a cinematic camera.

HTTP/2SBIbinary · multiplexed
CRUD+RPCmethod on a URI
statustable2xx·3xx·4xx·5xx
ProblemDetailscause · invalidParams
EN·فاkaraoke subs
TS 29.500 V19.4.0 §5.2 · §6 · Table 5.2.7.1-1 · TS 29.501 V19.3.0 §4.4 · §4.6 · §4.8
▶ VIDEO · MODULE 7 · ~40 MIN

SBI — every message is a method on a URI

The player screen is a live animation stage — packets flow along the wire, request/response arrows fire, and the status codes light up exactly as the narration reads them. Karaoke subtitles in English, two subtitle modes, fullscreen.

Module 7 · 5G Core Masterclass · reading the wire
SBI Deep Dive: HTTP/2 → REST → status → ProblemDetails
0:00 / 0:00
REFERENCE · THE SBI STRUCTURES
The M7 IE catalogue →
Every structure the video reads — the HTTP/2 message, the resource URI, the CRUD methods, the pseudo- and 3gpp-Sbi headers, ProblemDetails, the status codes, subscribe/notify and load control — clause-cited, searchable.
REFERENCE · THE M7 IE CATALOGUE

Every structure on the wire

Each SBI structure the video reads — its interface, direction, purpose and clause. Click any row to open its full breakdown. Filter to find any of them.

StructureInterfaceDirWhat it doesClause
TS 29.500 V19.4.0 §5.2 · §6 · TS 29.501 V19.3.0 §4.4/§4.6/§4.8 · TS 29.510
REFERENCE · HTTP/2 · URI · METHODS · HEADERS · STATUS · PROBLEMDETAILS

The Service Based Interface, at protocol depth

Everything the video reads on the wire, as reference you can scan: the HTTP/2 transport, the URI shape, the service names, the CRUD methods, the pseudo- and 3gpp-Sbi headers, the full status-code table, ProblemDetails, and subscribe/notify. Cited to TS 29.500 V19.4.0 and TS 29.501 V19.3.0.

The transport — HTTP/2 on SBI (TS 29.500 §5.2)

Framing & streams

  • HEADERS frame (HPACK-compressed) + DATA frame(s) for the body.
  • Each request/response on a numbered stream; client streams are odd.
  • Multiplexing → no head-of-line blocking.

Control

  • WINDOW-UPDATE = flow control.
  • RST-STREAM = cancel one request, keep the connection.
  • One long-lived connection per NF pair.

Rules

  • Runs over TLS (Module 6).
  • HTTP/2 server push is NOT used (§5.2.5).
  • Connections precious; streams cheap.
The URI shape & the service names (TS 29.501 §4.4.1)
PartWhat it isExample
{apiRoot}scheme ("http"/"https") + "://" + authority (host[:port])https://smf.op.com
<apiName>the service — read it, and you know the function + intentnsmf-pdusession
<apiVersion>"v" + the major version only (minor/patch stay compatible)v1
<resourceUriPart>the resource-specific path (+ custom-op name for RPCs)sm-contexts/42
Common api-namesnnrf-nfm · nnrf-disc · namf-comm · nsmf-pdusession · nudm-sdm · nudm-ueau · nausf-auth · npcf-smpolicycontrol · nchf-convergedcharging
Methods → CRUD, and custom operations (TS 29.501 §4.6)

POST

  • create child (producer picks id) → 201 + Location
  • not idempotent

PUT

  • create/replace (consumer picks id)
  • idempotent

GET

  • read; never changes state
  • query params + Accept · ETag/If-Match

PATCH

  • partial update
  • Merge Patch / JSON Patch

DELETE

  • remove → 204 No Content
  • idempotent

custom op

  • POST …/{resource}/{custOpName}
  • the verbs CRUD can't express

Idempotency: GET · PUT · DELETE are idempotent (safe to retry); POST is not. This is exactly what decides safe retries under overload (§5.2.8).

The headers that matter — pseudo · standard · 3gpp-Sbi (TS 29.500 §5.2.2 / §5.2.3)

Pseudo & standard

  • :method :scheme :authority :path :status — the skeleton.
  • Content-Type: application/json · multipart/related · application/problem+json.
  • Location (after POST/PUT) · Accept (→406/415) · Retry-After · Allow · ETag/If-Match.
  • Authorization: Bearer — the OAuth JWT (Module 6).

3gpp-Sbi-* (the telecom headers)

  • Target-apiRoot — the real producer when :authority is a proxy.
  • Callback · Message-Priority · Sender-Timestamp · Max-Rsp-Time.
  • Routing-Binding/Binding — pin requests to one instance.
  • Discovery-* (delegated discovery) · Lci/Oci (load/overload).
  • Reserved chars (e.g. JSON) are percent-encoded.
HTTP status codes on SBI — verbatim (TS 29.500 Table 5.2.7.1-1)

Support: M mandatory · SS service-specific · N/A not used. Per HTTP method: DELETE · GET · PATCH · POST · PUT.

StatusDELGETPATCHPOSTPUTMeaning on SBI
200 OKSSMSSSSSSsuccess with a body
201 CreatedN/AN/AN/ASSSSresource created (+ Location)
202 AcceptedSSN/ASSSSSSaccepted, finished asynchronously
204 No ContentMN/ASSSSSSsuccess, nothing to return (DELETE, notify)
307 Temporary RedirectSSSSSSSSSSgo to another instance (overload)
308 Permanent RedirectSSSSSSSSSSresource moved permanently
400 Bad RequestMMMMMmalformed request / schema error
401 UnauthorizedMMMMMauthentication failed
403 ForbiddenMMMMMauthorized identity, not permitted
404 Not FoundMMMMMresource does not exist
405 Method Not AllowedSSSSSSSSSSwrong verb (+ Allow header)
406 Not AcceptableN/AMN/AN/AN/Acan't produce an accepted format
409 ConflictN/ASSSSSSSSstate conflict / already exists
411 Length RequiredN/AN/AMMMContent-Length required
412 Precondition FailedSSSSSSSSSSIf-Match failed (resource changed)
413 Content Too LargeN/AN/AMMMbody too big
415 Unsupported Media TypeN/AN/AMMMformat not supported (+ Accept-Patch)
429 Too Many RequestsMMMMMrate-limit — slow down
500 Internal Server ErrorMMMMMgeneric server failure
501 Not ImplementedSSSSSSSSSSmethod unsupported by the API
502 Bad GatewayMMMMMbad response via a proxy
503 Service UnavailableMMMMMoverloaded/down (+ Retry-After)
504 Gateway TimeoutSSSSSSSSSSproxy waited for the producer, gave up
ProblemDetails — the structured error body (TS 29.501 §4.8 · RFC 9457)

Standard fields

  • type — URI naming the problem kind.
  • title — short human summary.
  • status — the HTTP code, echoed in the body.
  • detail — explanation of this occurrence.
  • instance — URI of the specific occurrence.

3GPP extensions (the afternoon-savers)

  • cause — machine-readable application error code.
  • invalidParams — exactly which fields were wrong.
  • Content-Type: application/problem+json.
  • Lets a SEPP/SCP add error detail on errors it originates.
Subscribe/Notify — the async pattern (TS 29.501 §4.6.2)
StepWhoWhat
consumer → producerPOST /subscriptions carrying its callbackUri201 Created + Location
producer → consumeron the event, producer becomes a client: POST {callbackUri} (notification body)
consumer → producer204 No Content — acknowledged
consumer → producerDELETE /subscriptions/{id} — unsubscribe
Every SBI element — searchable (methods · headers · status · errors · flows)

Filter by name, code, or family — TRANSPORT · METHOD · HEADER · STATUS · FLOW.

ElementFamilyWhereClauseWhat it is
TS 29.500 V19.4.0 §5.2 · §6 · Table 5.2.7.1-1 · TS 29.501 V19.3.0 §4.4 · §4.6 · §4.8 — verbatim

The rule to remember: the 5G core is a web of REST resources, and every message is a method on a URI with a status in return. Read the api-name for the actor, the method + URI for the action, the status + ProblemDetails for the outcome, and the 3gpp-Sbi headers for the routing — and any trace in your career becomes a document you can read, not a puzzle you must solve.

Built from ETSI TS 129 500 V19.4.0 & TS 129 501 V19.3.0
QUIZ · 10 QUESTIONS

Reading-the-Wire mastery check

Questions and answers reshuffle every load. 70%+ to consider Module 7 done.