5G核心网学习平台
AMF 实践篇 #02

AMF功能实战篇(1) 初始注册流程关键步骤分析

《5G核心网原理与实践》实践篇 · AMF 网元功能

《5GC原理与实践》实践篇(1) 初始注册流程关键步骤分析

爱卫生

2023年02月12日 19:25

《5GC原理与实践》实践篇是按网元来规划的。包括AMF篇、SMF篇、PCF篇等。

本文是AMF篇的第1篇。

1.1.1初始注册流程分析

5G初始注册流程的原理部分请参考《5G核心网原理与实践:原理篇》的3.1.1节:初始注册流程。这里不

再赘述。

本节主要分析该流程中的一些重要消息。

【交流方便、抓重点、更简明扼要的表达,只呈现应用层消息部分。供参考。】

1.1.1.1UE发给AMF的注册请求(UE-ID为SUCI)

注册请求中的主要参数:

-Messagetype:Registrationrequest。这个是5GNAS消息类型。这里是注册请求。

-5GSregistrationtype:initialregistration。表示因为开机发起的初始注册。和周期性注册、移动性注册更

新、紧急注册这几种注册类型区分出来。

-Securityheadertype取值为0,表示未加密的明文NAS消息。即5G-EA0算法。

-NASkeysetidentifier:用于安全上下文的标识。本例取值为7。另外子参数TSC表示NAS安全上下文的类

型。Native表示是5GAMF原生的安全上下文(而不是4-->5映射过来的。)

-5GSmobileidentity:5G用户标识。可以是5G-GUTI或者SUCI。这里是SUCI。SUCI包括了

RoutingIndicator(本例为0,用于回归属地AUSF/UDM的寻址)、HomeNetworkpublickeyid(本例为3,

表示UE加密SUCI用到的公钥标识)、Schemeoutput(是SUPI加密以后的密文输出)、

ProtectionschemeId(取值为1表示采用ECIESprofileA加密算法,中文叫椭圆曲线加密算法)。

-UEsecuritycapability:UE所支持的加密和完整性保护算法。用于和AMF的算法协商,取交集。

Non-Access-Stratum5GS(NAS)PDU

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Registrationrequest(0x41)

5GSregistrationtype

....1...=Follow-OnRequestbit(FOR):Follow-onrequestpending

.....001=5GSregistrationtype:initialregistration(1)

NASkeysetidentifier

0.......=Typeofsecuritycontextflag(TSC):Nativesecuritycontext(forKSIAMF)

.111....=NASkeysetidentifier:7

5GSmobileidentity

Length:53

0.......=Spare:0

.000....=SUPIformat:IMSI(0)

....0...=Spare:0

.....001=Typeofidentity:SUCI(1)

MobileCountryCode(MCC):China(460)

MobileNetworkCode(MNC):Unknown(XX)

Routingindicator:0

....0001=ProtectionschemeId:ECIESschemeprofileA(1)

Homenetworkpublickeyidentifier:3

Schemeoutput:0201cb2e92f836055b82adfe4…

UEsecuritycapability

ElementID:0x2e

Length:2

1.......=5G-EA0:Supported

.0......=128-5G-EA1:Notsupported

..0.....=128-5G-EA2:Notsupported

...0....=128-5G-EA3:Notsupported

....0...=5G-EA4:Notsupported

.....0..=5G-EA5:Notsupported

......0.=5G-EA6:Notsupported

.......0=5G-EA7:Notsupported

0.......=5G-IA0:Notsupported

.1......=128-5G-IA1:Supported

..0.....=128-5G-IA2:Notsupported

...0....=128-5G-IA3:Notsupported

....0...=5G-IA4:Notsupported

.....0..=5G-IA5:Notsupported

......0.=5G-IA6:Notsupported

.......0=5G-IA7:Notsupported

1.1.1.2AMF查NRF得到AUSF

AMF根据UE注册请求中提供的RoutingIndicator查NRF,得到归属地AUSF。这样可以发起鉴权请求。

1)AMF调用NRF的Discovery服务,发起AUSF的查询。用的是HTTPGet方法。但Get方法是不允许通过

JSON来封装参数的。只能把参数部分放在requesturi里,多个参数用&分隔。如下图所示。

可以看到在Get请求中携带了多个参数。包括:

-service-names=nausf-auth。我要选择的网元是AUSF,并支持AUTH这个服务。

-requester-nf-type=AMF。请求者也就是我是谁?我是AMF。

-routing-indicator=0。这就是查询条件。拿RI来换AUSF的nfprofile(网元档案)。

2)NRF返回200OK。包括了AUSF的nfprofile(寻址信息和能力信息。)

主要参数有:

-validityPeriod:结果的有效期,这里是180秒。

-nfInstances:网元实例名。每个实例就代表一个活的网元,通常是uuid格式。

-nfType:网元类型。这里返回AUSF。

-nfStatus:REGISTERED。表示在NRF中的注册状态。这里是已注册。

-plmnList:目标网元支持的PLMN列表。-capacity:AUSF的静态容量。

-sNssais:AUSF所支持的切片。-FQDN:AUSF的域名。-priority:AUSF优先级。

-nfServices:AUSF所支持的服务。-ipEndPoints:AUSF的IP和端口号。

-ausfinfo:ausf网元的特有参数。包括AUSF所支持的supirange:也就是用户IMSI号段。AUSF对应的

group、以及关联的Routingindicator。

JavaScriptObjectNotation:application/json

Object

MemberKey:validityPeriod

Numbervalue:180

Key:validityPeriod

MemberKey:nfInstances

Array

Object

MemberKey:nfInstanceId

Stringvalue:aaaaaa-bbbb-cccc-dddd-eeee

Key:nfInstanceId

MemberKey:nfType

Stringvalue:AUSF

Key:nfType

MemberKey:nfStatus

Stringvalue:REGISTERED

Key:nfStatus

MemberKey:plmnList

Array

Object

MemberKey:mnc

Stringvalue:XX

Key:mnc

MemberKey:mcc

Stringvalue:460

Key:mcc

Key:plmnList

MemberKey:sNssais

Array

Object

MemberKey:sst

Numbervalue:0

Key:sst

MemberKey:sd

Stringvalue:123456

Key:sd

Key:sNssais

MemberKey:fqdn

Stringvalue:100.1.1.1

Key:fqdn

MemberKey:priority

Numbervalue:3

Key:priority

MemberKey:capacity

Numbervalue:100

Key:capacity

MemberKey:nfServices

Array

Object

MemberKey:serviceInstanceId

Stringvalue:nausf-auth-01

Key:serviceInstanceId

MemberKey:serviceName

Stringvalue:nausf-auth

Key:serviceName

MemberKey:versions

Array

Object

MemberKey:expiry

Stringvalue:2020-08-08T08:08:08

Key:expiry

MemberKey:apiFullVersion

Stringvalue:1.R15.1.1

Key:apiFullVersion

MemberKey:apiVersionInUri

Stringvalue:v1

Key:apiVersionInUri

Key:versions

MemberKey:scheme

Stringvalue:http

Key:scheme

MemberKey:nfServiceStatus

Stringvalue:REGISTERED

Key:nfServiceStatus

MemberKey:fqdn

Stringvalue:100.1.1.1

Key:fqdn

MemberKey:capacity

Numbervalue:100

Key:capacity

MemberKey:ipEndPoints

Array

Object

MemberKey:ipv4Address

Stringvalue:100.1.1.1

Key:ipv4Address

MemberKey:port

Numbervalue:80

Key:port

Key:ipEndPoints

Key:nfServices

MemberKey:ausfInfo

Object

MemberKey:groupId

Stringvalue:1

Key:groupId

MemberKey:routingIndicators

Array

Stringvalue:0000

Stringvalue:0

Key:routingIndicators

MemberKey:supiRanges

Array

Object

MemberKey:start

Stringvalue:460000000000000

Key:start

MemberKey:end

Stringvalue:460XX0000000000

Key:end

Key:supiRanges

Key:ausfInfo

Key:nfInstances

1.1.1.3AMF请求AUSF进行鉴权并获取鉴权参数

AMF调用AUSF的authentication服务,请求AUSF对UE进行鉴权。是HTTPPost方法。AUSF通常和UDM

是合设的,因此AUSF会把SUPI或SUCI发给UDM,UDM据此选择UE的鉴权方法。并返回相关的鉴权向

量组(如果收到的是SUCI,UDM需要先根据本地的私钥解密成SUPI。)。AUSF发201Created响应,并

把鉴权向量组返回给AMF。

1)AMF给AUSF的请求消息

-Request-uri是:/nausf-auth/v1/ue-authentications。是AUSF的鉴权服务入口。

参数包括SUCI和AMF的拜访地servingnetworkname。

JavaScriptObjectNotation:application/json

Object

MemberKey:supiOrSuci

Stringvalue:suci-0-460-XX-0-1-3-82ADF997CE069E19。。。。

Key:supiOrSuci

MemberKey:servingNetworkName

Stringvalue:5G:mncXX.mcc460.3gppnetwork.org

Key:servingNetworkName

2)AUSF回的201created。主要参数有:选择的鉴权算法authType:5G_AKA表示UDM为UE选择的鉴权

算法是5GAKA。5gAuthData是鉴权参数组中的rand(随机数,要发给UE,用于UE计算鉴权结果)、

autn(发给UE,用于UE对网络侧的鉴权)、hxresStar(发给AMF,用于AMF站在拜访地角度,比对鉴

权结果。)

JavaScriptObjectNotation:application/json

Object

MemberKey:5gAuthData

Object

MemberKey:rand

Stringvalue:C86DE80E314。。。

Key:rand

MemberKey:autn

Stringvalue:0EB6E8AECF。。。

Key:autn

MemberKey:hxresStar

Stringvalue:7bc64f9669b。。。

Key:hxresStar

Key:5gAuthData

MemberKey:authType

Stringvalue:5G_AKA

Key:authType

1.1.1.4AMF向UE发起鉴权

AMF根据AUSF提供的鉴权参数,向UE发起鉴权。这是两个NAS消息。分别被封装到N2消息:

DownlinkNASTransport和UplinkNASTransport中。如下:

1)AMF-->UE的鉴权请求消息参数主要有:

-ABBA:用于Kamf密钥派生的输入参数。-RAND:随机数,从AUSF拿到的。

-AUTN:对网络侧的鉴权。包括SQN异或AK、AMF、MAC这几部分。

Non-Access-Stratum5GS(NAS)PDU

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Authenticationrequest(0x56)

0000....=SpareHalfOctet:0

NASkeysetidentifier-ngKSI

....0...=Typeofsecuritycontextflag(TSC):Nativesecuritycontext(forKSIAMF)

.....000=NASkeysetidentifier:0

ABBA

Length:2

ABBAContents:0x0000

AuthenticationParameterRAND-5Gauthenticationchallenge

ElementID:0x21

RANDvalue:b3c86de930e31e。。。

AuthenticationParameterAUTN(UMTSandEPSauthenticationchallenge)-5Gauthenticationchallenge

ElementID:0x20

Length:16

AUTNvalue:cf400eb67eb9。。。

SQNxorAK:cf7ebf4c59d8

AMF:9a10

MAC:0ebabc11c5767

2)UE-->AMF的鉴权响应消息参数主要有RES:即UE计算出的鉴权结果。

Non-Access-Stratum5GS(NAS)PDU

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Authenticationresponse(0x57)

Authenticationresponseparameter

ElementID:0x2d

Length:16

RES:8eae41608413acde。。。

1.1.1.5AMF向AUSF转发UE计算结果,AUSF进行鉴权比对

AMF站在拜访地角度对UE进行鉴权后(比对HRES*和HXRES*),再次调用AUSF的auth服务(PUT方

法)将UE的计算结果RES*发给AUSF进行比对。AUSF比对成功后返回200OK。

1)AMF-->AUSF的PUT请求,主要参数有:

-request-uri是/nausf-auth/v1/ue-authentications/112233/5g-aka-confirmation。其中112233是authctxid

-res*:UE计算出的鉴权结果。

JavaScriptObjectNotation:application/json

Object

MemberKey:resStar

Stringvalue:8E1111084E7。。。

Key:resStar

2)AUSF-->AMF的200OK响应。主要参数包括-authresult:鉴权结果。本例取值为success表示鉴权成

功。-Kseaf:用于密钥派生的Kseaf。-supi:UDM解密后的SUPI。AUSF发给AMF。

JavaScriptObjectNotation:application/json

Object

MemberKey:authResult

Stringvalue:AUTHENTICATION_SUCCESS

Key:authResult

MemberKey:kseaf

Stringvalue:e84862dae1c1ad2fc39。。。

Key:kseaf

MemberKey:supi

Stringvalue:imsi-460XX0000000888

Key:supi

1.1.1.6AMF对UE发起安全流程(加密和完保)

AMF接下来可以对UE发起安全流程,用于NAS消息的加密和完整性保护(防止被篡改)。对应的NAS消

息是SecuritymodeCommand和SecuritymodeComplete。如下图所示:

1)AMF-->UE的SecuritymodeCommand主要参数有:

-NASsecurityalgorithms:网络侧选择的加密和完整性保护算法。本例取值是5G-EA0和128-5G-IA1

-UEsecuritycapability:UE的安全能力。其实也是之前从UE收到的。

-IMEISVrequest:AMF可以借此向UE要求提供IMEISV。

-ngKSI:NAS安全上下文标识。

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Securitymodecommand(0x5d)

NASsecurityalgorithms

0000....=Typeofcipheringalgorithm:5G-EA0(nullcipheringalgorithm)(0)

....0001=Typeofintegrityprotectionalgorithm:128-5G-IA1(1)

0000....=SpareHalfOctet:0

NASkeysetidentifier-ngKSI

....0...=Typeofsecuritycontextflag(TSC):Nativesecuritycontext(forKSIAMF)

.....000=NASkeysetidentifier:0

UEsecuritycapability-ReplayedUEsecuritycapabilities

IMEISVrequest

1110....=ElementID:0xe....0...=Sparebit(s):0x00

.....001=IMEISVrequest:IMEISVrequested(1)

2)UE-->AMFUE的SecuritymodeComplete主要参数有:

-Securityheadertype取值为4,表示带有新5G安全上下文和完保、加密的消息。

-Messageauthenticationcode:消息摘要码。用于完整性保护。

-5GSmobileidentity:UE返回的IMEISV。

Non-Access-Stratum5GS(NAS)PDU

SecurityprotectedNAS5GSmessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0100=Securityheadertype:Integrityprotectedandcipheredwithnew5GSsecuritycontext(4)

Messageauthenticationcode:0x2f66d7e6

Sequencenumber:0

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Securitymodecomplete(0x5e)

5GSmobileidentity

ElementID:0x77

Length:9

....0...=Odd/evenindication:Evennumberofidentitydigits

.....101=Typeofidentity:IMEISV(5)

IMEISV:8866550000000011

1.1.1.7AMF根据SUPI查NRF得到UDM

AMF接下来要去到UDM中做注册登记(UECM服务)和获取签约数据(SDM服务)。

因此,AMF调用NRF的Discovery服务,发起UDM的查询。用的是HTTPGet方法。NRF返回200OK,包

含了UDM的nfprofile。如下图所示。

1)Get请求中的主要参数包括:

-service-names=nudm-sdm。我要选择的网元是UDM,并支持SDM这个服务。

-requester-nf-type=AMF。请求者也就是我是谁?我是AMF。

-SUPI=imsi。这就是查询条件。拿SUPI来换UDM的nfprofile(网元档案)。

2)NRF返回的200OK消息主要参数包括:

JavaScriptObjectNotation:application/json

Object

MemberKey:validityPeriod

MemberKey:nfInstances

Array

Object

MemberKey:nfInstanceId

MemberKey:nfType

MemberKey:nfStatus

MemberKey:sNssais

MemberKey:fqdn

MemberKey:priority

MemberKey:capacity

MemberKey:plmnList

MemberKey:nfServices

MemberKey:udmInfo

Object

MemberKey:supiRanges

Array

Object

MemberKey:start

Stringvalue:460XX0000000000

Key:start

MemberKey:end

Stringvalue:460XX9999999999

Key:end

Key:supiRanges

MemberKey:routingIndicators

Array

Stringvalue:0000

Stringvalue:0

Key:routingIndicators

Key:udmInfo

Key:nfInstances

-所有网元的公共参数:validityPeriod(结果有效期)、nfInstances(网元实例名)、nfType(网元类

型,本例为UDM)、nfStatus(注册状态)、priority(网元的优先级)、capacity(网元的静态容量

值)、nfServices(UDM所支持的服务)。

-UDM特有的参数udminfo:包括supirange(UDM支持的UE号段)、routing-indicator(UDM支持的

RoutingIndicator的范围。)

1.1.1.8AMF在UDM中做注册登记

AMF接下来要去到UDM中做注册登记(UECM服务)。在请求消息中,AMF需要提供自己的GUAMI和

SUPI信息给UDM,从而完成AMF和UE的绑定(这种绑定关系登记在UDM里)。UDM检查如果AMF之前

注册过,返回204nocontent。如果没有,则返回201created。

1)AMF-->UDM的PUT请求消息的主要参数:

-AMF的GUAMI、SUPI、amfInstanceId(AMF实例标识)、imsOverPS(AMF是否支持IMS的指示)、

deregCallbackUri(AMF提供的用于接收后续通知的回调地址)、pei(可选登记UE的imei)等。如下表

所示:

JavaScriptObjectNotation:application/json

Object

MemberKey:amfInstanceId

Stringvalue:e17aa627-6681-6637-940f-21b663cf8079

Key:amfInstanceId

MemberKey:deregCallbackUri

Stringvalue:http://100.1.1.1:8080/namf-callback/v1/imsi-460XX0000000008/deregistration-notification

Key:deregCallbackUri

MemberKey:guami

Object

MemberKey:plmnId

Object

MemberKey:mcc

Stringvalue:460

Key:mcc

MemberKey:mnc

Stringvalue:XX

Key:mnc

Key:plmnId

MemberKey:amfId

Stringvalue:183ABC

Key:amfId

Key:guami

MemberKey:ratType

Stringvalue:NR

Key:ratType

MemberKey:pei

Stringvalue:imeisv-8866550000000022

Key:pei

MemberKey:imsVoPs

Stringvalue:HOMOGENEOUS_SUPPORT

Key:imsVoPs

MemberKey:initialRegistrationInd

Truevalue

Key:initialRegistrationInd

1.1.1.9AMF从UDM获取am-data签约数据

AMF接下来要去到UDM中获取接入管理相关的签约数据即am-data(SDM服务)。

1)HTTPGet请求(AMF到UDM):

Request-URI:/nudm-sdm/v1/imsi-4600x1112223333/am-data

2)HTTP响应200OK(UDM到AMF)

返回am-data。用于接入限制和移动性管理。包含以下主要子参数。

-gpsis:用户的手机号

-nssai:UE签约的切片。可以有多个。并且包含一个缺省的nssai。

-subscribedUeAmbr:签约的UE-AMBR。分上下行。本例为下行1.2Gbps,上行125Mbps

-subsRegTimer:签约的周期性注册计时器。本例为3600秒。

-ueUsageType:用于DCN(dedicatedcorenetwork)的选择(即eDECOR)。本例取值为1。

-ratRestriction:RAT的限制。本例取值为EUTRA。表示禁止4G接入。

-areaRestrictions:区域限制,即不允许UE访问的TA。本例取值为SAR_NOT_ALLOWED_AREA,以及

TAC1和TAC2不允许访问。

除此以外,AMF还要到UDM获取smf-select-data(用于接下来的PDU会话建立流程中SMF的选择,包括

了SMF支持的切片和DNN等信息。am-data和smf-select-data都是UDM中的签约数据,消费者也都是

AMF。AMF可以单独发两个Get请求去获取,也可以合并成一次Get请求获取。)

1.1.1.10AMF根据GPSI查NRF得到PCF

AMF接下来可根据签约数据中的用户的手机号GPSI作为查询条件,查询NRF得到PCF的地址。

同样

也是一对Get/200OK消息。

1)Get请求中的主要参数都在request-uri部分,多个参数用&分隔。消息中用gpsi的信息。具体消息举

例:Get/nnrf-disc/v1/nf-instances?service-names=npcf-am-policy-control&target-nftype=PCF&requester-nf-type=AMF&snssais=XXX&gpsi=msisdn-8613X55667788

2)NRF返回的200OK消息主要参数包括:

-plmnList:PCF支持的PLMN列表。-sNssais:PCF所支持的切片。

-ipEndPoints:PCF的IP和端口号。

-pcfInfo:PCF网元所特有的参数。包括支持的DNN、支持的GPSI号段。还可以携带PCF的Rx接口的

diameter主机名和realm(因为PCF和4G的PCRF是合设的。)

JavaScriptObjectNotation:application/json

Object

MemberKey:validityPeriod

Numbervalue:180

Key:validityPeriod

MemberKey:nfInstances

Array

Object

MemberKey:nfInstanceId

Stringvalue:1166c290-3621-d742-71b8-e0031119ab66

Key:nfInstanceId

MemberKey:nfType

Stringvalue:PCF

Key:nfType

MemberKey:nfStatus

Stringvalue:REGISTERED

Key:nfStatus

MemberKey:plmnList

Array

Object

MemberKey:mnc

Stringvalue:XX

Key:mnc

MemberKey:mcc

Stringvalue:460

Key:mcc

Key:plmnList

MemberKey:sNssais

Array

Object

MemberKey:sst

Numbervalue:1

Key:sst

MemberKey:sd

Stringvalue:000001

Key:sd

Key:sNssais

MemberKey:ipv4Addresses

Array

Stringvalue:100.2.2.2

Key:ipv4Addresses

MemberKey:priority

Numbervalue:3

Key:priority

MemberKey:capacity

Numbervalue:100

Key:capacity

MemberKey:nfServices

Array

Object

MemberKey:serviceInstanceId

Stringvalue:npcf-ampc-0001

Key:serviceInstanceId

MemberKey:serviceName

Stringvalue:npcf-am-policy-control

Key:serviceName

MemberKey:versions

Array

Object

MemberKey:apiFullVersion

Stringvalue:1.R15.2.0

Key:apiFullVersion

MemberKey:apiVersionInUri

Stringvalue:v1

Key:apiVersionInUri

Key:versions

MemberKey:scheme

Stringvalue:http

Key:scheme

MemberKey:nfServiceStatus

Stringvalue:REGISTERED

Key:nfServiceStatus

MemberKey:apiPrefix

Stringvalue:npcf-am-policy-control

Key:apiPrefix

MemberKey:ipEndPoints

Array

Object

MemberKey:ipv4Address

Stringvalue:100.2.2.2

Key:ipv4Address

MemberKey:port

Numbervalue:8080

Key:port

Key:ipEndPoints

Key:nfServices

MemberKey:pcfInfo

Object

MemberKey:dnnList

Array

Stringvalue:xxnet

Key:dnnList

MemberKey:supiRanges

Array

Object

MemberKey:start

Stringvalue:460000000000001

Key:start

MemberKey:end

Stringvalue:460000999999999

Key:end

Key:supiRanges

MemberKey:gpsiRanges

Array

Object

MemberKey:start

Stringvalue:8613X073100000001

Key:start

MemberKey:end

Stringvalue:8613X073100009999

Key:end

Key:gpsiRanges

MemberKey:rxDiamHost

Stringvalue:rx.pcf01.51xuetongxin.com

Key:rxDiamHost

MemberKey:rxDiamRealm

Stringvalue:rx.51xuetongxin.com

Key:rxDiamRealm

Key:pcfInfo

Key:nfInstances

1.1.1.11AMF从PCF获取am-policy(接入管理策略)

AMF接下来到PCF中获取am-policy也就是接入管理策略。PCF提供的接入管理策略,要比UDM中签约数

据am-data中指定的接入管理策略优先级更高。也就是PCF提供的策略可以覆盖掉UDM的签约数据。因为

签约数据是静态数据,PCF提供的策略则是根据时间(忙/闲时)、地点(忙/闲小区)、人物(VIP或普

通)动态制定的。优先级理应更高。

AMF通过调用PCF的npcf-am-policy-control服务获取am-policy,对应到一对消息:Post和201Created。

201响应中包含了JSON封装的接入管理策略。

1)AMF发给PCF的Post请求主要参数:

-用户的SUPI和GSPI;-userLoc:用户的位置信息,包括TAC和NCGI;

-servingPlmn:AMF的服务PLMN;-ratType:当前的接入类型,这里取值NR。

-AMF的GUAMI。-servingNfId:服务网元的ID,这里是AMF的ID。

JavaScriptObjectNotation:application/json

Object

MemberKey:notificationUri

Stringvalue:http://100.2.2.2:8080/namf-callback/v1/am-policy-control

Key:notificationUri

MemberKey:suppFeat

Stringvalue:1

Key:suppFeat

MemberKey:supi

Stringvalue:imsi-460XX0000000008

Key:supi

MemberKey:gpsi

Stringvalue:msisdn-8613X00000008

Key:gpsi

MemberKey:accessType

Stringvalue:3GPP_ACCESS

Key:accessType

MemberKey:pei

Stringvalue:imeisv-8866550000000011

Key:pei

MemberKey:userLoc

Object

MemberKey:nrLocation

Object

MemberKey:tai

Object

MemberKey:plmnId

Object

MemberKey:mcc

Stringvalue:460

Key:mcc

MemberKey:mnc

Stringvalue:XX

Key:mnc

Key:plmnId

MemberKey:tac

Stringvalue:000011

Key:tac

Key:tai

MemberKey:ncgi

Object

MemberKey:plmnId

Object

MemberKey:mcc

Stringvalue:460

Key:mcc

MemberKey:mnc

Stringvalue:XX

Key:mnc

Key:plmnId

MemberKey:nrCellId

Stringvalue:0000AA00

Key:nrCellId

Key:ncgi

Key:nrLocation

Key:userLoc

MemberKey:servingPlmn

Object

MemberKey:mcc

Stringvalue:460

Key:mcc

MemberKey:mnc

Stringvalue:88

Key:mnc

Key:servingPlmn

MemberKey:ratType

Stringvalue:NR

Key:ratType

MemberKey:guami

Object

MemberKey:plmnId

Object

MemberKey:mcc

Stringvalue:460

Key:mcc

MemberKey:mnc

Stringvalue:88

Key:mnc

Key:plmnId

MemberKey:amfId

Stringvalue:AABBCC

Key:amfId

Key:guami

MemberKey:servingNfId

Stringvalue:aaaaae86327-7781-3667-912f-cf079

Key:servingNfId

2)PCF给AMF回的201Created消息中的主要参数有:

-servAreaRes:UE的服务区域限制,有没有不允许访问的区域。本例中为空值。即不受限。

-triggers:PCF向AMF订阅的触发条件。当条件发送,AMF需要向PCF报告并更新策略。这里的LOC_CH

是指UE的位置发生变化,AMF需立即向PCF报告。

JavaScriptObjectNotation:application/json

Object

MemberKey:servAreaRes

Object

MemberKey:restrictionType

Stringvalue:NOT_ALLOWED_AREAS

Key:restrictionType

MemberKey:areas

Array

Key:areas

Key:servAreaRes

MemberKey:triggers

Array

Stringvalue:LOC_CH

Key:triggers

1.1.1.12AMF给UE回注册接受

AMF最后给UE回注册接受消息。主要参数有分配的周期性更新计时器T3512、5G-GUTI、UE的注册区

(TA列表)、允许的切片ID、网络侧的特性参数(如是否支持N26口、是否支持IMS等)等参数。

PlainNAS5GSMessage

Extendedprotocoldiscriminator:5Gmobilitymanagementmessages(126)

0000....=SpareHalfOctet:0

....0000=Securityheadertype:PlainNASmessage,notsecurityprotected(0)

Messagetype:Registrationaccept(0x42)

5GSregistrationresult

Length:1

...0....=NSSAAPerformed:False

....0...=SMSoverNAS:NotAllowed

.....001=5GSregistrationresult:3GPPaccess(1)

5GSmobileidentity-5G-GUTI

ElementID:0x77

Length:11

....0...=Odd/evenindication:Evennumberofidentitydigits

.....010=Typeofidentity:5G-GUTI(2)

MobileCountryCode(MCC):China(460)

MobileNetworkCode(MNC):Unknown(XX)

AMFRegionID:58

0000000110......=AMFSetID:6

..001111=AMFPointer:15

5G-TMSI:0xc0003366

5GStrackingareaidentitylist

ElementID:0x54

Length:7

Partialtrackingarealist1

NSSAI-AllowedNSSAI

ElementID:0x15

Length:5

S-NSSAI1

5GSnetworkfeaturesupport

ElementID:0x21

Length:1

0.......=MPSindicator(MPSI):Accessidentity1notvalidinRPLMNorequivalentPLMN

.0......=InterworkingwithoutN26:Notsupported

..01....=Emergencyservicefallbackindicator(EMF):EmergencyservicesfallbacksupportedinNRconnectedto

5GCNonly(1)

....00..=Emergencyservicesupportindicator(EMC):Emergencyservicesnotsupported(0)

......0.=IMSvoiceoverPSsessionovernon-3GPPaccessindicator(IMS-VoPS-N3GPP):Notsupported

.......1=IMSvoiceoverPSsessionindicator(IMSVoPS):Supported

GPRSTimer3-T3512value

ElementID:0x5e

Length:1

GPRSTimer:10hr

← 返回 AMF 实践篇