Handle high priority access service request as data#727
Conversation
There was a problem hiding this comment.
Pull request overview
Updates AMF NAS Service Request handling so that NAS Service Request service type 5 (“high priority access”, TS 24.501 §9.11.3.50) is treated equivalently to service type 1 (“data”) instead of being rejected as unsupported.
Changes:
- Add explicit handling for
nasMessage.ServiceTypeHighPriorityAccess. - Log when service type 5 is received and fall through into the existing data service path (
ServiceTypeData), avoiding a Service Reject.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@donivtech, please address Copilot's comment and rebase PR. Thanks! |
b6230b4 to
12f3ce6
Compare
|
Thanks for the review. Addressed both points:
|
NAS Service Request service type 5 (high priority access, TS 24.501 9.11.3.50) is currently rejected by the AMF with "service type is not supported", falling through to the default case. High priority access is a valid service type and should not be rejected outright. The AMF implements no MPS/priority semantics, so there is no priority behaviour to preserve; handle service type 5 the same as service type 1 (data). This also accommodates modems that send service type 5 for ordinary data sessions, which otherwise cannot recover from idle. Add a unit test covering HandleServiceRequest for service type 5 (handled as data), service type 1 (baseline) and an emergency service type (still rejected via the default case). Signed-off-by: Vinod Patmanathan <vinod.patmanathan@forsway.com>
12f3ce6 to
c30ebe1
Compare
|
Addressed the follow-up: the test now asserts the exact outcome per case instead of only checking for the absence of the "not supported" string — |
What
Handle NAS Service Request service type 5 (high priority access,
TS 24.501 §9.11.3.50) as data instead of rejecting it.
Previously service type 5 fell through to the
defaultcase inHandleServiceRequestand returned "service type[5] is not supported",causing the AMF to send a Service Reject.
Why
High priority access is a valid service type. The AMF implements no
MPS/priority semantics, so there is no priority behaviour to preserve;
handling it the same as service type 1 (data) is correct and avoids
rejecting otherwise-valid requests. This also accommodates modems that
send service type 5 for ordinary data sessions (e.g. Xiaomi M11 Lite 5G /
Qualcomm, some Quectel firmwares), which otherwise cannot recover from idle.
How
Add a
case nasMessage.ServiceTypeHighPriorityAccessthat logs and fallsthrough into the existing
ServiceTypeDatahandling. No config, nobehavioural change for any other service type.
Testing
go build ./...,go vet ./...,go test ./...all passgofmtclean,golangci-lintclean on the change