5G核心网学习平台
NSSF 实践篇 #04

5GC实践篇之NSSF篇第13篇:NSSF可用性服务更新操作

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

5GC实践篇之NSSF篇第13篇:NSSF可用性服务更新操作

作者:爱卫生


1 测试背景与用例简介

在前面的第11篇和第12篇中,我们详细讨论了NSSF在UE注册流程中的切片选择功能——AMF向NSSF查询Nnssf_NSSelection_Get,NSSF根据配置返回Allowed NSSAI和目标AMF Set。但有一个前提问题:NSSF上的切片配置信息是怎么来的?AMF怎么知道哪些切片在哪些TA中有对应的AMF可以服务?

答案就在本篇要讨论的NSSF可用性服务(NSSAI Availability Service)中。

在5G核心网中,NSSF并不是凭空知道"哪些AMF支持哪些切片、在哪些TA中可用"的。这些信息需要AMF主动上报给NSSF。而这个上报的过程,就使用了Nnssf_NSSAIAvailability_Update服务操作。

为什么需要可用性服务?

在5G网络中,切片的可用性是动态变化的:

  • RAN侧变化:gNB可能因为负载均衡、维护等原因,在不同TA中启用或禁用某些切片;

  • AMF容量变化:新的AMF实例可能上线或下线,影响某些TA中可用切片的AMF服务能力;

  • 配置更新:运营商可能动态调整切片策略,需要在NSSF中实时更新。

因此,需要一个机制让AMF能够将自己支持的切片信息(基于TA粒度)实时上报给NSSF,NSSF据此维护最新的切片可用性数据库,为后续的切片选择查询(Nnssf_NSSelection_Get)提供准确的数据支撑。

可用性服务更新的触发时机

AMF上报切片可用性信息的典型时机包括:

  1. NG Setup流程:当gNB与AMF建立NG连接时,gNB会在NG SETUP REQUEST消息中上报其支持的TA列表及对应的切片信息,AMF收到后向NSSF更新;

  2. RAN Configuration Update:当gNB的切片配置发生变化时,通过RAN CONFIGURATION UPDATE消息通知AMF,AMF再更新NSSF;

  3. AMF配置变更:当AMF自身支持的切片发生变化时(如运维人员修改了AMF的切片配置),AMF主动向NSSF更新。

本篇重点验证的是NG Setup触发的可用性服务更新流程

NG Setup + NSSF Update的完整信令流程


sequenceDiagram

    participant RAN as gNB

    participant AMF

    participant NSSF

    Note over RAN, NSSF: 阶段1: NG Setup流程

    rect rgb(230, 245, 255)

        RAN->>AMF: NG SETUP REQUEST

        Note left of RAN: 携带Supported TA List<br/>包含TAI Slice Support List<br/>基于TA粒度的切片支持信息

        AMF->>RAN: NG SETUP RESPONSE

        Note right of AMF: 携带AMF Name<br/>Served GUAMI List<br/>PLMN Support Item(含切片信息)

    end

    Note over RAN, NSSF: 阶段2: AMF向NSSF更新可用性

    rect rgb(255, 245, 230)

        AMF->>NSSF: Nnssf_NSSAIAvailability_Update (PUT)

        Note right of AMF: 携带supportedNSSAIavailabilityData<br/>包含TAI和SupportedSNSSAI<br/>基于TA粒度上报

        NSSF-->>AMF: 200 OK

        Note left of NSSF: NSSF更新数据库<br/>记录AMF支持的切片信息

    end

NSSF可用性数据模型


flowchart TD

    A["NSSF NSSAI Availability Data"] --> B["supportedNSSAIavailabilityData"]

    B --> C["Availability Entry 1"]

    B --> D["Availability Entry 2"]

    B --> E["Availability Entry N"]

    C --> F["TAI<br/>PLMN + TAC"]

    C --> G["SupportedSNSSAI<br/>切片1: SST=1,SD=000001"]

    C --> H["NF Instance ID<br/>AMF UUID"]

    D --> I["TAI<br/>PLMN + TAC"]

    D --> J["SupportedSNSSAI<br/>切片2: SST=2,SD=000002"]

    D --> K["NF Instance ID<br/>AMF UUID"]

    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

    style B fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px

    style C fill:#fff3e0,stroke:#e65100

    style D fill:#fff3e0,stroke:#e65100


测试目的

验证AMF支持向NSSF上报S-NSSAI可用性信息。当RAN通过NG Setup流程上报TA级别的切片支持信息后,AMF能够正确地将这些信息通过Nnssf_NSSAIAvailability_Update服务操作上报给NSSF,NSSF成功更新其数据库。

测试前置条件

  1. 硬件平台完成上电,工作状态正常。

  2. AMF与NG-RAN对接数据配置完成。

  3. AMF配置了对接的NSSF信息(NSSF的SBI地址和端口)。

  4. RAN支持基于TA粒度的切片信息上报AMF(gNB配置了各TA支持的S-NSSAI列表)。

  5. 各个接口的信令监控和跟踪工具已建立。

测试步骤

  1. RAN基于TA粒度配置支持的S-NSSAI信息,然后触发NG SETUP流程。

  2. 检查NG Setup流程的接口跟踪:

  3. NG-RAN向AMF发送NG SETUP REQUEST消息,携带Supported TA List(含TAI Slice Support List);

  4. AMF向NG-RAN响应NG SETUP RESPONSE消息,携带AMF Name、Served GUAMI List和PLMN Support Item(含切片信息)。

  5. 检查AMF向NSSF发起的Update流程:

  6. AMF向NSSF发送PUT消息,携带AMF支持的NSSAI以及NF ID的对应关系;

  7. NSSF返回200 OK响应。

  8. 验证NSSF收到的TAI条数与RAN上报的TAI条数一致。

测试结果验证(预期)

  1. NG SETUP REQUEST消息中携带了Supported TA List信元,该信元包含TAI Slice Support List,基于TA粒度通知AMF支持的切片信息。携带的TAI数量与RAN配置数据一致。

  2. NG SETUP RESPONSE消息中携带了AMF Name、Served GUAMI List和PLMN Support Item,PLMN Support Item中包含PLMN支持的切片信息。

  3. AMF向NSSF发起Nnssf_NSSAIAvailability_Update(PUT)消息,携带supportedNSSAIavailabilityData信元,包含TAI和SupportedSNSSAI信息。上报的TAI条数与RAN上报的TAI条数一致。

  4. NSSF返回200 OK,表示更新成功。


2 信令深度解析

在本测试中,整个流程分为两个阶段:第一阶段是RAN与AMF之间的NG Setup流程,RAN上报其支持的TA和切片信息;第二阶段是AMF与NSSF之间的可用性服务更新,AMF将汇总后的切片可用性信息上报给NSSF。这两个阶段紧密衔接,共同完成了从"RAN切片能力"到"NSSF切片数据库"的信息传递。

(注:为保护网络安全,以下log中的网元IP、NF ID等敏感信息已做严格脱敏处理)

2.1 NG Setup流程——RAN上报切片支持信息

NG Setup是gNB与AMF之间建立NG-C连接的第一步。在这个流程中,gNB不仅告知AMF自己的身份和能力,还会上报自己支持的所有TA以及每个TA中支持的切片信息。


sequenceDiagram

    participant RAN as gNB

    participant AMF

    Note over RAN, AMF: NG Setup Request

    RAN->>AMF: NG SETUP REQUEST

    Note left of RAN: 消息携带:<br/>- Global RAN Node ID<br/>- RAN Node Name<br/>- Supported TA List<br/>  含TAI Slice Support List<br/>  (基于TA粒度的切片信息)<br/>- Default Paging DRX

    AMF->>RAN: NG SETUP RESPONSE

    Note right of AMF: 消息携带:<br/>- AMF Name<br/>- Served GUAMI List<br/>- PLMN Support Item<br/>  (含切片支持信息)<br/>- Relative AMF Capacity

信令抓包解析——NG SETUP REQUEST:


# 1. gNB -> AMF(NG SETUP REQUEST)

Frame: 3001

NGAP-PDU: initiatingMessage

  Procedure Code: id-NGSetup (21)

  Criticality: reject

  NGSetupRequest

    # --- RAN节点标识 ---

    GlobalRANNodeID: Global GNB ID

      PLMN Identity: 460 XX

      gNB ID: XXXXXX(已脱敏)

    RANNodeName:

      Value: "gNB-Site-XXX"

      # gNB名称(已脱敏)

    # --- 支持的TA列表 ---

    SupportedTAList

      Item 1:

        TAI:

          PLMN Identity: 460 XX

          TAC: "0001"

          # TAI 1: PLMN1中的TA1

        SupportedSliceSupportList:

          Item 1:

            S-NSSAI:

              SST: 1

              SD: "000001"

              # TA1支持切片1: eMBB切片

          Item 2:

            S-NSSAI:

              SST: 2

              SD: "000002"

              # TA1支持切片2: URLLC切片

        #  TA1支持2个切片: 切片1和切片2

      Item 2:

        TAI:

          PLMN Identity: 460 XX

          TAC: "0002"

          # TAI 2: PLMN1中的TA2

        SupportedSliceSupportList:

          Item 1:

            S-NSSAI:

              SST: 1

              SD: "000001"

              # TA2支持切片1: eMBB切片

        #  TA2仅支持1个切片: 切片1

    # --- 默认寻呼DRX ---

    DefaultPagingDRX:

      Value: v128

      # 默认寻呼周期: 128个无线帧

关键解读:

gNB在Supported TA List中上报了2个TA的切片支持信息:

TAI 支持的切片 说明
PLMN1/TA1 (TAC=0001) 切片1(SST=1/SD=000001), 切片2(SST=2/SD=000002) 支持eMBB和URLLC两种切片
PLMN1/TA2 (TAC=0002) 切片1(SST=1/SD=000001) 仅支持eMBB切片

协议参考:根据3GPP TS 38.413第8.2.1节,gNB在NG SETUP REQUEST消息中通过Supported TA List IE上报其支持的所有TA以及每个TA中的切片信息。SupportedSliceSupportList信元包含每个TA下支持的S-NSSAI列表。


信令抓包解析——NG SETUP RESPONSE:


# 2. AMF -> gNB(NG SETUP RESPONSE)

Frame: 3005

NGAP-PDU: successfulOutcome

  Procedure Code: id-NGSetup (21)

  NGSetupResponse

    # --- AMF标识 ---

    AMFName:

      Value: "AMF-SET1-XXX"

      # AMF名称(已脱敏)

    # --- 服务的GUAMI列表 ---

    ServedGUAMIList

      Item 1:

        GUAMI:

          PLMN Identity: 460 XX

          AMF Region ID: XX

          AMF Set ID: XXXX

          AMF Pointer: XX

        # AMF服务的GUAMI

    # --- PLMN支持项 ---

    PLMNSupportList

      Item 1:

        PLMN Identity: 460 XX

        # PLMN1

        SliceSupportList:

          Item 1:

            S-NSSAI:

              SST: 1

              SD: "000001"

              # PLMN1支持切片1

          Item 2:

            S-NSSAI:

              SST: 2

              SD: "000002"

              # PLMN1支持切片2

        #  AMF告知gNB: 该PLMN支持切片1和切片2

    # --- AMF容量 ---

    RelativeAMFCapacity:

      Value: 255

      # AMF相对容量: 255(最大值)

注意:NG SETUP RESPONSE中的PLMN Support Item携带的是AMF(即核心网侧)在该PLMN中支持的切片列表,而NG SETUP REQUEST中的Supported TA List携带的是RAN侧在每个TA中支持的切片列表。两者可能不同——RAN可能只支持核心网切片的子集。


2.2 AMF汇总信息并向NSSF更新可用性

AMF收到gNB的NG SETUP REQUEST后,会汇总以下信息:

  1. gNB上报的各TA支持的切片信息(RAN侧能力);

  2. AMF自身支持的切片信息(核心网侧能力)。

两者的交集才是NSSF需要维护的实际可用切片信息——只有同时被RAN和核心网支持的切片,才能在该TA中为UE提供服务。

AMF汇总完成后,通过Nnssf_NSSAIAvailability_Update服务操作向NSSF上报。


sequenceDiagram

    participant AMF

    participant NSSF

    Note over AMF, NSSF: Nnssf_NSSAIAvailability_Update (PUT)

    AMF->>NSSF: PUT /nnssf-nssaiavailability/v1/<br/>amfInstances/{NFid}/<br/>supportedNSSAIavailabilityData

    Note right of AMF: 请求体包含:<br/>supportedNSSAIavailabilityData:<br/>- TAI + SupportedSNSSAI列表<br/>- 基于TA粒度上报<br/>- AMF NF Instance ID

    NSSF-->>AMF: 200 OK

    Note left of NSSF: NSSF更新数据库:<br/>记录该AMF在各TA中<br/>支持的切片信息

信令抓包解析——AMF向NSSF发送PUT请求:


# 3. AMF -> NSSF(可用性服务更新 PUT请求)

Frame: 3010

HEADERS[8]: PUT /nnssf-nssaiavailability/v1/amfInstances/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/supportedNSSAIavailabilityData

Host: 10.XX.XX.XX:8081

Content-Type: application/json

# HTTP方法: PUT

# 服务名称: nnssf-nssaiavailability

# API版本: v1

# 资源路径: /amfInstances/{NFid}/supportedNSSAIavailabilityData

# NFid: AMF的NF Instance ID(UUID,已脱敏)

# NSSF地址: 10.XX.XX.XX:8081(已脱敏)

JavaScript Object Notation: application/json

  Object

    # ===== 必选信元: 支持的NSSAI可用性数据 =====

    Member Key: supportedNSSAIavailabilityData

      Array

        # --- Entry 1: TA1的切片信息 ---

        Object

          Member Key: tai

            Object

              Member Key: plmnId

                Object

                  Member Key: mcc

                    String value: "460"

                  Member Key: mnc

                    String value: "XX"

              Member Key: tac

                String value: "0001"

                # TAI: PLMN1/TA1

          Member Key: supportedSnssai

            Array

              Object

                Member Key: sst

                  Number value: 1

                Member Key: sd

                  String value: "000001"

                # TA1支持切片1: SST=1/SD=000001

              Object

                Member Key: sst

                  Number value: 2

                Member Key: sd

                  String value: "000002"

                # TA1支持切片2: SST=2/SD=000002

            # TA1支持2个切片

        # --- Entry 2: TA2的切片信息 ---

        Object

          Member Key: tai

            Object

              Member Key: plmnId

                Object

                  Member Key: mcc

                    String value: "460"

                  Member Key: mnc

                    String value: "XX"

              Member Key: tac

                String value: "0002"

                # TAI: PLMN1/TA2

          Member Key: supportedSnssai

            Array

              Object

                Member Key: sst

                  Number value: 1

                Member Key: sd

                  String value: "000001"

                # TA2支持切片1: SST=1/SD=000001

            # TA2仅支持1个切片

上报数据与RAN数据的对比验证:

数据项 RAN上报(NG Setup) AMF上报给NSSF 一致性
TA1支持切片 切片1, 切片2 切片1, 切片2 一致
TA2支持切片 切片1 切片1 一致
TAI数量 2个 2个 一致

验证通过:AMF上报给NSSF的TAI条数与RAN上报的TAI条数一致,每个TAI中的切片信息也完全匹配。


2.3 NSSF返回更新成功响应

NSSF收到AMF的PUT请求后,更新其内部的切片可用性数据库,然后返回200 OK。

信令抓包解析——NSSF响应:


# 4. NSSF -> AMF(更新成功响应)

Frame: 3015

HEADERS[3]: 200 OK

Content-Type: application/json

JavaScript Object Notation: application/json

  Object

    # ===== NSSF返回更新后的可用性数据 =====

    Member Key: supportedNSSAIavailabilityData

      Array

        # --- Entry 1: TA1 ---

        Object

          Member Key: tai

            Object

              Member Key: plmnId

                Object

                  Member Key: mcc

                    String value: "460"

                  Member Key: mnc

                    String value: "XX"

              Member Key: tac

                String value: "0001"

          Member Key: supportedSnssai

            Array

              Object

                Member Key: sst

                  Number value: 1

                Member Key: sd

                  String value: "000001"

              Object

                Member Key: sst

                  Number value: 2

                Member Key: sd

                  String value: "000002"

          # NSSF确认: TA1支持切片1和切片2

        # --- Entry 2: TA2 ---

        Object

          Member Key: tai

            Object

              Member Key: plmnId

                Object

                  Member Key: mcc

                    String value: "460"

                  Member Key: mnc

                    String value: "XX"

              Member Key: tac

                String value: "0002"

          Member Key: supportedSnssai

            Array

              Object

                Member Key: sst

                  Number value: 1

                Member Key: sd

                  String value: "000001"

          # NSSF确认: TA2支持切片1

    # ===== AMF信息 =====

    Member Key: amfInstanceInfo

      Object

        Member Key: nfInstanceId

          String value: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

          # AMF的NF Instance ID


2.4 Nnssf_NSSAIAvailability_Update的SBI接口详解

本测试涉及的核心SBI接口是Nnssf_NSSAIAvailability_Update。下面按照3GPP TS 29.531规范,详细解析这个接口的各个方面。

2.4.1 服务操作定义


flowchart TD

    A["Nnssf_NSSAIAvailability服务"] --> B["Update操作"]

    B --> C["PUT方法"]

    B --> D["POST方法"]

    C --> E["URI: /nnssf-nssaiavailability/v1/<br/>amfInstances/{NFid}/<br/>supportedNSSAIavailabilityData"]

    C --> F["场景: 完整替换AMF的<br/>切片可用性信息"]

    D --> G["URI: /nnssf-nssaiavailability/v1/<br/>amfInstances/{NFid}/<br/>supportedNSSAIavailabilityData"]

    D --> H["场景: 增量更新AMF的<br/>切片可用性信息"]

    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

    style B fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px

2.4.2 PUT方法 vs POST方法

对比维度 PUT方法 POST方法
语义 完整替换 增量更新
典型场景 NG Setup后首次上报、全量更新 RAN Configuration Update后增量更新
请求体 包含该AMF所有TA的完整切片信息 仅包含变化的TA的切片信息
幂等性 幂等(多次调用结果一致) 非幂等
响应 200 OK + 完整的可用性数据 200 OK + 更新后的可用性数据

2.4.3 supportedNSSAIavailabilityData数据结构

字段名 类型 必选/可选 说明
tai TAI 必选 跟踪区域标识,包含PLMN ID和TAC
supportedSnssai array(Snssai) 必选 该TA中支持的S-NSSAI列表
nfInstanceId string 条件必选 AMF的NF Instance ID

协议参考:根据3GPP TS 29.531第5.3节,Nnssf_NSSAIAvailability服务提供以下操作:

  • Update(PUT/POST):AMF更新切片可用性信息;

  • Delete(DELETE):AMF删除切片可用性信息(第14篇将详细讨论);

  • Get(GET):查询切片可用性信息。

该服务的URI结构为/nnssf-nssaiavailability/v1/amfInstances/{NFid}/supportedNSSAIavailabilityData


2.5 NSSF更新后的数据结构

NSSF收到AMF的可用性更新后,在内部数据库中维护以下数据结构:


flowchart TD

    NSSF["NSSF可用性数据库"] --> AMF1["AMF实例1<br/>NFid: UUID-XXX1"]

    NSSF --> AMF2["AMF实例2<br/>NFid: UUID-XXX2"]

    AMF1 --> TA1_1["TA1 (TAC=0001)<br/>支持切片: 1, 2"]

    AMF1 --> TA2_1["TA2 (TAC=0002)<br/>支持切片: 1"]

    AMF2 --> TA1_2["TA1 (TAC=0001)<br/>支持切片: 1, 2, 3"]

    AMF2 --> TA3_2["TA3 (TAC=0003)<br/>支持切片: 2"]

    TA1_1 --> SLICE1["切片1<br/>SST=1/SD=000001<br/>可用AMF: SET1"]

    TA1_1 --> SLICE2["切片2<br/>SST=2/SD=000002<br/>可用AMF: SET1"]

    TA2_1 --> SLICE3["切片1<br/>SST=1/SD=000001<br/>可用AMF: SET1"]

    style NSSF fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

    style AMF1 fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px

    style AMF2 fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px

当AMF查询Nnssf_NSSelection_Get时,NSSF就基于这个数据库来确定目标AMF Set。 例如:

  • 如果UE在TA1中请求切片1,NSSF知道AMF SET1可以服务;

  • 如果UE在TA2中请求切片2,NSSF发现没有AMF在该TA中支持切片2,返回Rejected NSSAI。


2.6 【硬核附加】用curl模拟可用性更新操作

在实际排障中,可以使用curl直接向NSSF发送可用性更新请求,验证NSSF的响应是否正确:


curl -i -X PUT http://10.XX.XX.XX:8081/nnssf-nssaiavailability/v1/amfInstances/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/supportedNSSAIavailabilityData \

  -H "Content-Type: application/json" \

  -d &#x27;{

    "supportedNSSAIavailabilityData": [

      {

        "tai": {

          "plmnId": {"mcc": "460", "mnc": "XX"},

          "tac": "0001"

        },

        "supportedSnssai": [

          {"sst": 1, "sd": "000001"},

          {"sst": 2, "sd": "000002"}

        ]

      },

      {

        "tai": {

          "plmnId": {"mcc": "460", "mnc": "XX"},

          "tac": "0002"

        },

        "supportedSnssai": [

          {"sst": 1, "sd": "000001"}

        ]

      }

    ]

  }&#x27;

curl命令参数解析:

参数 说明
-i - 在输出中包含HTTP响应头
-X PUT PUT HTTP方法为PUT(完整替换)
URL http://10.XX.XX.XX:8081/nnssf-nssaiavailability/v1/... NSSF的SBI接口地址
-H Content-Type: application/json 请求体为JSON格式
-d JSON数据 包含TAI和S-NSSAI的可用性信息

NSSF返回的200 OK响应(预期):


{

  "supportedNSSAIavailabilityData": [

    {

      "tai": {

        "plmnId": {"mcc": "460", "mnc": "XX"},

        "tac": "0001"

      },

      "supportedSnssai": [

        {"sst": 1, "sd": "000001"},

        {"sst": 2, "sd": "000002"}

      ]

    },

    {

      "tai": {

        "plmnId": {"mcc": "460", "mnc": "XX"},

        "tac": "0002"

      },

      "supportedSnssai": [

        {"sst": 1, "sd": "000001"}

      ]

    }

  ],

  "amfInstanceInfo": {

    "nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

  }

}

可用性更新排障要点:

  1. 如果NSSF返回400 Bad Request,检查请求体中的JSON格式和必选字段是否完整;

  2. 如果NSSF返回404 Not Found,检查NFid是否正确以及NSSF是否已注册该AMF;

  3. 如果NSSF返回500 Internal Server Error,检查NSSF的内部日志和数据库状态;

  4. 确认上报的TAI与RAN实际配置的TAI数量一致——如果数量不匹配,说明AMF在汇总过程中可能遗漏了某些TA的信息。


2.7 NG Setup与NSSF Update的关系总结

将NG Setup流程与NSSF可用性更新串联起来,可以看到一个完整的信息传递链:


flowchart TD

    A["gNB配置各TA支持的切片"] --> B["gNB触发NG SETUP"]

    B --> C["NG SETUP REQUEST<br/>携带Supported TA List<br/>含TAI Slice Support List"]

    C --> D["AMF收到RAN上报的切片信息"]

    D --> E["AMF汇总RAN切片信息<br/>与自身切片配置取交集"]

    E --> F["AMF发送PUT请求<br/>Nnssf_NSSAIAvailability_Update"]

    F --> G["NSSF更新数据库"]

    G --> H["后续UE注册时<br/>NSSF可准确执行切片选择"]

    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

    style G fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px

    style H fill:#fff3e0,stroke:#e65100,stroke-width:2px

信息传递的关键节点:

节点 信息内容 数据来源
gNB配置 各TA支持的S-NSSAI列表 运营商RAN配置
NG SETUP REQUEST Supported TA List + Slice Support List gNB动态上报
AMF汇总 RAN切片与AMF切片的交集 AMF本地处理
NSSF Update 每个TA中该AMF实际支持的切片 AMF主动上报
NSSF数据库 各AMF在各TA中支持的切片信息 NSSF维护
NSSelection_Get 基于数据库查询目标AMF NSSF响应查询

协议参考:根据3GPP TS 29.531第5.3.2节,Nnssf_NSSAIAvailability_Update服务操作的定义。TS 29.510第6.2节定义了NSSF的NF Profile和相关信息。TS 38.413第8.2节定义了NG Setup流程的消息格式。


3 测试结论

验证项 结果 说明
RAN成功发起NG Setup OK NG SETUP REQUEST携带Supported TA List,含TAI Slice Support List
AMF成功响应NG Setup OK NG SETUP RESPONSE携带AMF Name、Served GUAMI List和PLMN Support Item
AMF成功向NSSF更新 OK Nnssf_NSSAIAvailability_Update (PUT)消息格式正确
上报数据与RAN数据一致 OK TAI条数一致,每个TAI中的切片信息匹配
NSSF成功更新数据库 OK 返回200 OK,响应包含完整的可用性数据
信令流程符合3GPP规范 OK 符合TS 29.531第5.3节和TS 38.413第8.2节的定义

本测试用例完美验证了NSSF可用性服务更新操作的完整流程。RAN通过NG Setup流程上报各TA支持的切片信息,AMF汇总后通过Nnssf_NSSAIAvailability_Update(PUT)服务操作将切片可用性信息上报给NSSF,NSSF成功更新其数据库。上报的TAI条数和切片信息与RAN配置完全一致。

关键收获总结:

  1. 信息传递链:gNB配置 -> NG Setup上报 -> AMF汇总 -> NSSF更新,这是一个从RAN到核心网的切片信息传递链;

  2. TA粒度:可用性信息以TA为粒度上报,每个TA独立维护支持的切片列表,实现了切片可用性的精确管理;

  3. PUT vs POST:PUT用于全量更新(如NG Setup后),POST用于增量更新(如RAN Configuration Update后);

  4. 与切片选择的关系:NSSF的可用性数据库是Nnssf_NSSelection_Get查询的基础——只有AMF正确上报了切片可用性信息,NSSF才能在UE注册时做出准确的切片选择决策。



关于作者:爱卫生,从事通信教学18年,出版过《5G核心网原理与实践》等4本专业书籍。学5G核心网、IMS,来51学通信就对了!知识星球:200+小时视频、3000+精华文章、1年答疑群。公众号/知识星球:51学通信,微信:gprshome201101

本文为《5G核心网原理与实践》实践篇之NSSF系列。该系列持续更新,关注「51学通信」不错过每篇更新。

← 返回 NSSF 实践篇