Skip to main content

← Overview

OmniNGAP Troubleshooting

Because OmniNGAP is a compile-time codec library with no runtime surface, there is nothing to configure, restart, or scrape. Its observable behaviour is confined to how it treats the binaries handed to it by the consuming NF (the AMF). Signalling-level observability of N2 comes from the AMF, not from this library.

Decode of malformed or truncated PDUs

Malformed or truncated PDUs return a tagged error rather than crashing the consuming NF. When a gNB sends a message the codec cannot decode:

  • The decode entry point returns a tagged error instead of raising, so a bad peer message never takes down the AMF.
  • The AMF logs the failure, so a bad peer message is never silent.
  • The corresponding NGAP-layer signal to the peer is a Cause of the protocol group - for example transfer-syntax-error (the PDU could not be decoded) or abstract-syntax-error-reject (the PDU was decodable but semantically invalid). See the NGAP Cause Values reference for the full set.

Decode is anchored to the first PDU in the buffer: once a complete, well-formed PDU has been read, any trailing bytes after it are ignored rather than rejected. NGAP over SCTP delivers one PDU per message, so trailing data is not expected in normal operation; a decode that succeeds while a peer believes it sent additional content points to a framing fault in the peer or the SCTP layer, not in the codec.

Encode failures

OmniNGAP guarantees only that a structurally valid term encodes to a spec-conformant binary. IE population, optionality, and criticality are the responsibility of the AMF. An encode error therefore points at the term the AMF built (a missing mandatory IE, a value out of its constrained range, or a malformed nested SM container) rather than at the codec itself.

Opaque payload issues (NAS PDUs and SM containers)

NGAP carries two kinds of payload as opaque OCTET STRINGs without inspecting them: NAS PDUs and SMF-produced N2 SM information containers. OmniNGAP does not interpret either.

  • SM containers - if a session-management transfer appears corrupt end-to-end but the enclosing NGAP PDU encodes and decodes cleanly, the fault lies in how the SMF built the container or how the AMF placed it, not in the NGAP codec.
  • NAS PDUs - likewise, if a NAS message is malformed but the enclosing NGAP PDU (InitialUEMessage, DownlinkNASTransport, UplinkNASTransport, and so on) is well-formed, the fault is in the NAS layer, not in NGAP.

The general rule: a clean encode/decode of the enclosing PDU means the NGAP layer did its job - look inside the opaque payload's owner (the NAS layer or the SMF) for the corruption.