<!-- title: 5G PCF策略控制三阶段与PCC规则授权信令拆解 -->
<!-- domain: core-network -->

# 5G PCF策略控制三阶段与PCC规则授权信令拆解

## 一、引言：策略控制为什么是5G核心网的"大脑"

5G网络相比4G最大的QoS架构变革在于：**EPS Bearer被QoS Flow取代**，而QoS Flow的生命周期完全由PCF（Policy Control Function）通过PCC规则驱动。PCF是5G核心网中唯一拥有策略决策权的网元——它决定"哪些流量享受什么级别的QoS待遇"，SMF和UPF只是执行者。

本文聚焦 **TS 23.502 Section 4.16** 定义的SM Policy Association三阶段信令流程，结合 **TS 29.512（N7接口）** 和 **TS 23.503（PCC框架）**，逐条拆解PCF如何向SMF授权PCC规则、SMF如何将PCC规则绑定为QoS Flow，以及N4规则如何映射为UPF可执行的转发动作。

---

## 二、PCF在5G PCC架构中的定位

PCF继承了4G EPC中PCRF的角色，但接口协议从Diameter全面转向SBI（Service Based Interface）的HTTP/2 + JSON。5G PCC架构涉及的关键接口如下：

| 接口 | 两端网元 | 协议 | 核心功能 |
|------|---------|------|---------|
| **N7** | SMF ↔ PCF | HTTP/2 REST | SM策略控制（PCC规则下发/修改/删除） |
| **N5** | AF ↔ PCF | HTTP/2 REST | AF策略授权（业务流QoS请求） |
| **N28** | PCF ↔ CHF | HTTP/2 REST | 计费策略 |
| **N15** | PCF ↔ AMF | HTTP/2 REST | AM策略控制/UE策略 |
| **N36** | PCF ↔ UDR | HTTP/2 REST | 策略数据存取 |

PCF的策略数据来源有三条路径：
1. **UDR/UDM**：用户签约的静态策略（如默认QoS、 Allowed 5QI列表）
2. **AF（N5）**：动态业务QoS请求（如IMS语音/视频流、URLLC业务流）
3. **NWDAF**：网络数据分析辅助决策（如拥塞预测）

---

## 三、SM Policy Association三阶段生命周期

### 3.1 全景状态机

```mermaid
stateDiagram-v2
    [*] --> Idle: PDU会话不存在

    Idle --> Establishing: SMF发起\nSM Policy Association\nEstablishment

    Establishing --> Active: PCF返回\nSmPolicyDecision\n(初始PCC规则)

    Active --> Active: SMF/PCF发起\nSM Policy Association\nModification

    Active --> Terminating: SMF发起\nSM Policy Association\nTermination

    Terminating --> [*]: PCF确认\n策略关联释放

    note right of Active
        持续监控Policy Control
        Request Trigger条件
        - QoS Flow状态变化
        - 位置变化
        - PLMN变化
        - 用量阈值
    end note
```

SM Policy Association的生命周期与PDU Session完全绑定。当SMF判断PDU会话需要PCC授权（非LADN场景或签约策略要求）时，在PDU Session Establishment流程中向PCF发起策略关联建立。

### 3.2 阶段一：SM Policy Association Establishment

**触发时机**：PDU Session Establishment过程中，SMF完成UDM订阅数据获取后（TS 23.502 Section 4.16.4）。

```mermaid
sequenceDiagram
    participant UE
    participant AMF
    participant SMF
    participant PCF
    participant UDR
    participant UPF

    UE->>AMF: PDU Session Establishment Request
    AMF->>SMF: Nsmf_PDUSession_CreateSMContext
    Note over SMF: 1. 获取UDM签约数据
    Note over SMF: 2. 判断需要PCC授权

    SMF->>PCF: POST /npcf-smpolicycontrol/v1/sm-policies<br/>SmPolicyContextData
    Note right of SMF: 关键IE:<br/>supi, dnn, snssai,<br/>ipv4Addr/ipv6Prefix,<br/>ratType, userType,<br/>subscribedQos,<br/>online/offlineCharging

    PCF->>UDR: GET /nudr-dr/v1/policy-data<br/>获取用户策略数据
    UDR-->>PCF: 签约策略规则

    Note over PCF: 策略决策引擎:<br/>1. 匹配签约策略
    Note over PCF: 2. 生成动态PCC规则
    Note over PCF: 3. 设定Policy Control<br/>   Request Trigger
    Note over PCF: 4. 确定QoS参数(5QI/ARP)

    PCF-->>SMF: 201 Created<br/>SmPolicyDecision
    Note left of PCF: 关键IE:<br/>pccRules(安装/激活),<br/>sessRules(会话规则),<br/>qosDecs(QoS决策),<br/>chgDecs(计费决策),<br/>policyCtrlReqTriggers,<br/>umDecs(用量监控)

    Note over SMF: QoS Flow Binding:<br/>PCC规则 → QFI映射

    SMF->>UPF: N4 Session Establishment<br/>(PDR/QER/FAR/URR)
    SMF-->>AMF: Nsmf_PDUSession_CreateSMContext Response
    AMF-->>UE: PDU Session Establishment Accept
```

**SmPolicyContextData关键字段解析**（TS 29.512 Section 6.1.6.2.2）：

| IE名称 | 类型 | 说明 | 必选 |
|--------|------|------|------|
| `supi` | Supi | 用户永久标识 | M |
| `dnn` | Dnn | 数据网络名称 | M |
| `snssai` | Snssai | 网络切片标识 | M |
| `ipv4Addr` | Ipv4Addr | UE IPv4地址 | C |
| `ipv6Prefix` | Ipv6Prefix | UE IPv6前缀 | C |
| `ratType` | RatType | 接入类型(NR/E-UTRA) | M |
| `userLocationInfo` | UserLocation | 用户位置信息 | O |
| `subscribedQos` | SubscribedDefaultQos | 签约默认QoS(5QI/ARP) | M |
| `online` / `offline` | Boolean | 在线/离线计费指示 | O |
| `chargingInfo` | ChargingInfo | 计费信息 | O |

**SmPolicyDecision关键字段解析**（TS 29.512 Section 6.1.6.2.6）：

| IE名称 | 说明 | 典型值 |
|--------|------|--------|
| `pccRules` | PCC规则列表(安装/激活/去活/删除) | 包含SDF过滤器、5QI、ARP等 |
| `sessRules` | 会话级规则(默认QoS/门控/计费) | 默认QoS Flow参数 |
| `qosDecs` | QoS决策数据(5QI, ARP, GFBR, MFBR) | 标准化/非标准化5QI |
| `chgDecs` | 计费决策(计费键/测量方法) | Online/Offline Charging |
| `policyCtrlReqTriggers` | 策略控制请求触发器 | 10+种触发条件 |
| `umDecs` | 用量监控信息(阈值/方向) | Volume/Time阈值 |
| `traffContDecs` | 流量控制决策(门控/重定向) | Gate Status |
| `qosMonDecs` | QoS监控决策(包延迟/丢包率) | URLLC场景 |

### 3.3 阶段二：SM Policy Association Modification

策略修改有**两个发起方向**，这是PCF架构设计的核心博弈点。

#### 3.3.1 SMF发起的策略修改（TS 23.502 Section 4.16.5.1）

当SMF检测到PCF在策略关联建立时设定的Policy Control Request Trigger条件满足时，主动上报PCF请求新策略：

```mermaid
sequenceDiagram
    participant UE
    participant SMF
    participant PCF
    participant UPF

    Note over SMF: Trigger触发场景举例:<br/>1. QoS Flow释放<br/>2. RAT类型变化<br/>3. 位置变化<br/>4. 应用检测报告<br/>5. 用量阈值到达

    SMF->>PCF: POST /npcf-smpolicycontrol/v1<br/>/sm-policies/{polAssoId}/update<br/>SmPolicyUpdateContextData

    Note right of SMF: 关键IE:<br/>repPolicyCtrlReqTriggers<br/>(报告已触发的Trigger)<br/>accuUsageReports(用量报告)<br/>userLocationInfo(新位置)<br/>ratType(新RAT类型)<br/>appDetectionInfos<br/>(应用检测结果)

    Note over PCF: 评估上报事件:<br/>1. 重新计算PCC规则<br/>2. 调整QoS参数<br/>3. 更新计费决策<br/>4. 设定新Trigger

    PCF-->>SMF: 200 OK<br/>SmPolicyDecision
    Note left of PCF: 可能的决策输出:<br/>- 安装新PCC规则<br/>- 修改现有规则QoS<br/>- 去活/删除规则<br/>- 更新用量监控阈值

    SMF->>UPF: N4 Session Modification
    Note over SMF: 更新PDR/QER/FAR/URR

    opt 需要UE配合修改QoS
        SMF->>UE: PDU Session Modification Command<br/>(QoS规则更新)
    end
```

**Policy Control Request Trigger完整列表**（TS 29.512 Section 5.1.3.2）：

| Trigger | 触发条件 | 典型场景 |
|---------|---------|---------|
| `QOS_FLOW_STATUS` | QoS Flow状态变化(建立/修改/释放) | GBR Flow资源不足 |
| `RAT_TYPE_CHANGE` | UE切换到不同RAT | NR → LTE互操作 |
| `PLMN_CHANGE` | 服务PLMN变化 | 漫游场景 |
| `USER_LOCATION_CHANGE` | UE位置变化超过阈值 | 移动性管理 |
| `USAGE_REPORT` | 用量达到监控阈值 | 流量配额管理 |
| `APP_DETECTION` | 检测到应用启动/停止 | DPI引擎报告 |
| `QOS_MONITORING` | QoS参数超出阈值 | URLLC延迟监控 |
| `RES_ALLOC_STATUS` | 资源分配/释放状态变化 | ARP抢占 |
| `REFRESH_TIMER` | 定时策略重评估 | 周期性策略刷新 |
| `DEFAULT_EPS_BEARER_QOS_CHANGE` | 默认承载QoS变化 | 4G互操作场景 |
| `UE_IP_CHANGE` | UE IP地址变化 | IP地址重新分配 |
| `ACCESS_TYPE_CHANGE` | 接入类型变化(3GPP/Non-3GPP) | ATSSS场景 |
| `CREDIT_MANAGEMENT_STATUS` | 在线计费额度状态变化 | OCS额度耗尽 |
| `POLICY_COUNTER_STATUS` | 策略计数器变化 | 配额管理 |

#### 3.3.2 PCF发起的策略修改（TS 23.502 Section 4.16.5.2）

当PCF自身决策需要更新时（如AF发起新QoS请求、UDR策略变更、NWDAF拥塞预警），PCF主动通知SMF：

```mermaid
sequenceDiagram
    participant AF
    participant PCF
    participant SMF
    participant UPF

    AF->>PCF: POST /npcf-policyauthorization/v1<br/>/app-sessions/{appSessionId}/modify<br/>(AF请求QoS变更)
    Note over PCF: 场景:IMS VoNR视频通话<br/>AF请求增加视频媒体流

    Note over PCF: 策略决策:<br/>1. 创建新PCC规则(视频流)<br/>2. 设置5QI=2(Video)<br/>3. 分配GBR/MBR

    PCF->>SMF: POST {notificationUri}<br/>SmPolicyNotification
    Note right of PCF: SmPolicyDecision包含:<br/>pccRules: [新安装视频PCC规则]<br/>qosDecs: [5QI=2, ARP, GBR]<br/>policyCtrlReqTriggers更新

    SMF-->>PCF: 204 No Content

    Note over SMF: QoS Flow Binding:<br/>5QI=2 → 新建QoS Flow<br/>或绑定到已有同类型Flow

    SMF->>UPF: N4 Session Modification<br/>(新增PDR/QER)

    SMF->>SMF: 触发PDU Session<br/>Modification流程
    Note over SMF: 通过AMF向UE下发<br/>新的QoS Rule
```

**PCF主动通知的典型触发源**：

| 触发源 | 接口 | 典型场景 |
|--------|------|---------|
| AF策略授权请求 | N5 (Npcf_PolicyAuthorization) | IMS语音/视频流建立、URLLC QoS请求 |
| UDR策略数据变更 | N36 (Nudr_DataRepository) | 用户套餐变更、策略模板更新 |
| NWDAF分析报告 | Nnwdaf | 网络拥塞预测、SLA保障 |
| 计费系统状态 | N28 | OCS额度通知 |
| 定时策略刷新 | 内部Timer | 周期性策略重评估 |

### 3.4 阶段三：SM Policy Association Termination

PDU Session Release时，SMF向PCF发起策略关联终止（TS 23.502 Section 4.16.6）：

```
SMF → PCF: POST /npcf-smpolicycontrol/v1/sm-policies/{polAssoId}/delete
           SmPolicyDeleteData {
               userLocationInfo,    // 释放时位置
               usageReports,        // 最终用量报告
               rupUsageReports      // RUP用量报告
           }

PCF → SMF: 200 OK
          SmPolicyDeleteResponse {
              // 可选: 最终策略决策
              // 通常为空,直接确认释放
          }
```

PCF收到删除请求后执行：
1. 释放策略关联上下文
2. 向UDR报告最终用量（如配置）
3. 通知AF会话终止（如存在AF绑定）
4. 通知CHF关闭计费会话

---

## 四、PCC规则结构与QoS Flow Binding机制

### 4.1 PCC规则完整IE解析

一条PCC规则（TS 23.503 Section 6.3.1）是PCF策略决策的最小可操作单元：

```
PCC Rule ::= {
    pccRuleId:           "rule-001",              // 规则唯一标识
    precedence:          10,                       // 优先级(越小越高)
    flowInformation: [                            // SDF模板
        {
            flowDirection:   "BIDIRECTIONAL",     // 方向: UL/DL/BIDI
            flowDescription: "permit out ip from <UE-IP> to <Server-IP> <port>"  
        }
    ],
    flowStatus:          "ENABLED",               // ENABLED/DISABLED
    qosFlowIdentifier:   5,                        // 绑定到QFI=5的QoS Flow
   _qosData: [                                    // 引用的QoS决策
        {
            5qi:             1,                    // 5QI=1 (IMS Conversational Voice)
            arp: {
                priorityLevel:         1,          // 最高优先级
                preemptCap:   "MAY_PREEMPT",      // 可抢占
                preemptVuln:  "NOT_PREEMPTABLE"   // 不可被抢占
            },
            maxbrUl:         "100 Mbps",          // 上行最大速率
            maxbrDl:         "100 Mbps",          // 下行最大速率
            gbrUl:           "50 Mbps",           // 上行保证速率(GBR类型)
            gbrDl:           "50 Mbps"            // 下行保证速率(GBR类型)
        }
    ],
    _chargingPolicyData: [                         // 计费策略引用
        {
            chargingKey:     "rg-001",             // 计费键/Rate Group
            meteringMethod:  "VOLUME_BASED",      // 基于流量计费
            isOffline:       true,                 // 离线计费
            isOnline:        false                 // 非在线计费
        }
    ],
    _monitoringKey:      "mk-001",                 // 用量监控键
    _trafficControlData: [                         // 流量控制
        {
            flowStatus:      "ENABLED",            // 门控状态
        }
    ],
    appDetectionResult:   null                     // 应用检测结果
}
```

### 4.2 QoS Flow Binding三步决策

SMF收到SmPolicyDecision后，执行QoS Flow Binding（TS 23.503 Section 6.1.3.2.2），决策流程如下：

```mermaid
flowchart TD
    A[SMF收到新PCC规则] --> B{已有QoS Flow<br/>匹配5QI+ARP?}
    B -->|是| C[绑定到已有QoS Flow<br/>复用QFI]
    B -->|否| D{是否为GBR类型<br/>5QI?}
    D -->|是, GBR| E[建立新QoS Flow<br/>分配新QFI<br/>需RAN资源预留]
    D -->|否, Non-GBR| F{默认QoS Flow<br/>可承载?}
    F -->|是| G[绑定到默认<br/>QoS Flow]
    F -->|否| H[建立新Non-GBR<br/>QoS Flow]

    C --> I[生成N4规则:<br/>PDR匹配SDF→QER执行QoS]
    E --> I
    G --> I
    H --> I

    I --> J{需要修改<br/>AN资源?}
    J -->|是| K[触发PDU Session<br/>Modification<br/>更新QoS Rule]
    J -->|否| L[仅更新N4规则<br/>无需UE参与]

    style A fill:#e1f5fe
    style I fill:#fff3e0
    style K fill:#fce4ec
```

**Binding决策核心规则**：

1. **相同5QI + 相同ARP** 的PCC规则可共享同一QoS Flow
2. **GBR类型5QI（1-4, 65-68, 69-70, 79-80等）**：每条PCC规则对应独立QoS Flow（除非共享相同的QoS参数和计费特征）
3. **Non-GBR类型5QI（5-9, 79等）**：通常绑定到默认QoS Flow或已有的Non-GBR Flow
4. **Delay-Critical GBR（80-84）**：URLLC专用，独立QoS Flow，需RAN预留资源

### 4.3 PCC规则到N4规则的映射关系

PCF下发的PCC规则需要SMF翻译为UPF可执行的N4规则：

| PCC规则IE | N4规则映射 | UPF执行动作 |
|-----------|-----------|------------|
| flowInformation(SDF) | **PDR** (Packet Detection Rule) | 匹配上行/下行数据包 |
| 5QI + ARP + GFBR/MFBR | **QER** (QoS Enforcement Rule) | 速率限制、QoS标记(QFI) |
| Gate Status (ENABLED/DISABLED) | **FAR** (Forwarding Action Rule) | 转发/丢弃/重定向 |
| Charging Key + Method | **URR** (Usage Reporting Rule) | 流量/时间统计上报 |
| Monitoring Key | **URR** (Usage Reporting Rule) | 用量监控阈值检测 |

---

## 五、AF策略授权与PCF会话绑定（N5接口）

### 5.1 N5接口角色

AF通过N5接口（Npcf_PolicyAuthorization, TS 29.514）向PCF请求特定业务流的QoS保障。最典型的场景是IMS VoNR：P-CSCF作为AF，将SIP INVITE中的SDP媒体描述发送给PCF。

### 5.2 AF Session Binding机制

PCF收到AF请求后，需要将AF会话绑定到正确的PDU Session：

| 绑定参数 | 来源 | 说明 |
|---------|------|------|
| UE IP Address | AF提供（从SDP中提取） | AF只知道UE的IP地址 |
| DNN | PCF查询UDR或默认配置 | 同一IP可能属于不同DNN |
| S-NSSAI | PCF查询UDR或默认配置 | 切片标识 |
| SUPI | PCF通过IP反查 | 需要UDR配合 |

绑定成功后，PCF将AF请求的媒体组件转化为PCC规则：
- **一个SDP `m=` 行** → **一条媒体组件** → **一条PCC规则**
- 音频流 `m=audio` → 5QI=1 (Conversational Voice)
- 视频流 `m=video` → 5QI=2 (Conversational Video)

### 5.3 AF与PCF交互流程

```
AF → PCF: POST /npcf-policyauthorization/v1/app-sessions
          EventsNotification {
              mediaComponents: [
                  {
                      medCompN: 1,           // 媒体组件编号
                      medType: "AUDIO",      // 音频
                      flowDesc: [            // IP流描述
                          "permit in ip from <UE-IP> <port> to <GW-IP> <port>"
                      ],
                      marBwDl: "64 kbps",    // 最大下行带宽
                      marBwUl: "64 kbps",    // 最大上行带宽
                      rrBwDl: "32 kbps",     // 保证下行带宽
                      rrBwUl: "32 kbps"      // 保证上行带宽
                  }
              ],
              ueAddr: "10.1.1.100",         // UE IP地址
              dnn: "ims",                    // DNN
              snssai: {sst: 1, sd: "010203"} // S-NSSAI
          }
```

PCF收到后执行：
1. 通过UE IP + DNN + S-NSSAI匹配到已存在的PDU Session
2. 创建5QI=1的PCC规则（音频流）
3. 通过N7主动通知SMF安装新PCC规则
4. SMF建立专用QoS Flow（QFI=5），配置到UPF和RAN

---

## 六、PCF与4G PCRF的架构对比

| 对比维度 | 4G PCRF | 5G PCF |
|---------|---------|--------|
| **接口协议** | Diameter (Gx/Rx/Gx*) | HTTP/2 REST (N7/N5/N15) |
| **数据编码** | AVPs (TLV) | JSON |
| **QoS粒度** | EPS Bearer | QoS Flow |
| **策略模型** | 单一PCC规则 | PCC规则 + 会话规则 + QoS决策分离 |
| **AF接入** | Rx接口(Diameter) | N5接口(HTTP/2) / NEF代理 |
| **切片支持** | 不支持 | S-NSSAI维度策略隔离 |
| **多接入** | 不支持 | ATSSS策略、3GPP+Non-3GPP |
| **UDR集成** | SPR独立 | UDR统一数据层 |
| **通知机制** | Diameter Re-Auth | HTTP Callback (notificationUri) |
| **地址发现** | DRA (Diameter Routing Agent) | NRF服务发现 |

**架构设计意图**：5G将PCC规则分解为 **pccRules + qosDecs + chgDecs + traffContDecs** 四个独立决策模块，允许PCF对QoS、计费、流量控制分别独立决策。这在4G中是通过一条PCC规则包含所有信息实现的。分离的好处是PCF可以只更新QoS而不影响计费，或只修改门控而不重配QoS，减少了不必要的信令交互。

---

## 七、抓包识别与排错实战

### 7.1 抓包识别N7信令

在SMF或PCF网元上抓取N7接口HTTP/2流量：

```bash
# 基于HTTP/2头部的SBI URI过滤
tcpdump -i eth0 -A -s 0 \
  'tcp port 8080 and (tcp[((tcp[12:1]>>4):4)] != 0x00000000)' | \
  grep -E "(sm-policies|npcf-smpolicycontrol)"

# Wireshark显示过滤器
http2.header.value contains "npcf-smpolicycontrol"
```

**关键识别点**：
- `POST /npcf-smpolicycontrol/v1/sm-policies` → 策略关联建立
- `POST .../sm-policies/{polAssoId}/update` → SMF发起修改
- `POST {callbackUri}` → PCF主动通知（notificationUri在建立时注册）
- `POST .../sm-policies/{polAssoId}/delete` → 策略关联终止

### 7.2 常见故障点

| 故障现象 | 根因分析 | 排查方向 |
|---------|---------|---------|
| PCC规则下发后QoS Flow未建立 | SMF QoS Flow Binding逻辑错误 | 检查SMF日志中5QI→QFI映射 |
| PCF未返回PCC规则 | UDR策略数据缺失/UDM签约数据缺失 | 检查UDR中用户策略配置 |
| AF请求被PCF拒绝 | AF Session Binding失败(IP未匹配PDU Session) | 确认UE IP与PDU Session一致 |
| PCF下发策略后UPF未执行 | N4规则映射错误(SDF→PDR) | 抓N4接口检查PDR过滤规则 |
| 策略修改通知丢失 | notificationUri不可达 | 检查SMF的callback URI可达性 |
| 用量监控不报告 | URR未配置或阈值未到 | 检查UM决策中的volumeThreshold |
## 八、高级话题：PCF策略决策引擎内部机制

PCF收到SmPolicyContextData后，内部策略决策引擎的执行逻辑：

```
输入: SmPolicyContextData (SUPI, DNN, S-NSSAI, subscribedQos...)
      + UDR策略数据 (策略模板, 用户签约策略)
      + AF请求 (如存在, 媒体组件)
      + NWDAF分析 (如配置)

策略决策流程:
├── Step 1: 匹配用户签约策略
│   └── 从UDR获取 subscriber policy (default 5QI, ARP, session-AMBR)
├── Step 2: 生成会话级规则 (Session Rule)
│   └── 默认QoS Flow参数: session-AMBR, default 5QI, default ARP
├── Step 3: 评估AF请求
│   └── 每个media component → 生成一条PCC规则
├── Step 4: 策略冲突解决
│   └── 基于precedence值排序, 高优先级规则匹配后不再继续
├── Step 5: 计费策略绑定
│   └── 每条PCC规则绑定chgDecs (online/offline/both)
├── Step 6: 设定监控触发器
│   └── 基于运营商配置设定Policy Control Request Trigger
└── Step 7: 输出 SmPolicyDecision
```

**策略冲突解决**是PCF设计中的核心博弈点：当多条PCC规则可能匹配同一个数据包时，通过precedence值决定优先级。例如：
- 运营商自有业务规则 (precedence=1) 优先于用户签约规则 (precedence=100)
- AF动态规则 (precedence=10) 优先于UDR静态规则 (precedence=50)

---

## 九、实战案例：VoNR语音通话的完整PCC规则授权

以VoNR场景为例，展示从IMS SIP INVITE到QoS Flow建立的完整PCC信令链：

```
1. UE → P-CSCF(AF): SIP INVITE (SDP: m=audio 49152 RTP/AVP 96)
                    [codec: EVS, bw: 24-64kbps]

2. P-CSCF(AF) → PCF: POST /npcf-policyauthorization/v1/app-sessions
                    mediaComponent: {AUDIO, rrBw=24kbps, marBw=64kbps}
                    ueAddr: 10.1.1.100, dnn: "ims"

3. PCF: Session Binding → 匹配到PDU Session (SUPI=..., DNN=ims)

4. PCF → SMF: POST {notificationUri} (SmPolicyNotification)
              新PCC规则: {
                pccRuleId: "voice-rule-1",
                flowInfo: "permit out ip from 10.1.1.100 to <MRFP-IP>",
                5qi: 1,   // Conversational Voice
                arp: {priority: 1, preemptCap: MAY_PREEMPT},
                gbrUl: "24 kbps", gbrDl: "24 kbps",
                maxbrUl: "64 kbps", maxbrDl: "64 kbps"
              }

5. SMF: QoS Flow Binding → 新建QFI=5 (GBR Flow, 5QI=1)

6. SMF → UPF: N4 Session Modification (PDR: 匹配RTP流, QER: QFI=5, GBR限制)

7. SMF → gNB: PDU Session Resource Setup (QFI=5, 5QI=1, GBR参数)
   [gNB预留无线资源]

8. UE ← SMF: PDU Session Modification Command (QoS Rule: QFI=5, SDF filter)

9. 语音RTP流建立，QoS保障生效
```

---

## 常见问题

**Q1: PCF的PCC规则和SMF的QoS Rule有什么区别？**

A: PCC规则是PCF的策略决策输出，描述"什么流量应该有什么QoS"，包含SDF过滤器和QoS参数。QoS Rule是SMF根据PCC规则派生的、下发给UE的流量分类规则，让UE知道上行数据包应该标记哪个QFI。PCC规则在N7接口传输，QoS Rule在NAS信令中下发。一个PCC规则可以对应一条或多条QoS Rule。

**Q2: 如果PCF不可用，PDU Session还能建立吗？**

A: 可以。SMF有两种运行模式：**with PCF**（需要策略授权）和**local policy**（本地策略模式）。当PCF不可用时，SMF可使用UDM签约数据中的subscribedDefaultQos（默认5QI/ARP）和session-AMBR来建立默认QoS Flow。但这意味着无法获得动态PCC规则授权，所有流量只能使用默认QoS。

**Q3: Policy Control Request Trigger为什么设计这么多类型？**

A: 这是PCF"按需决策"的设计哲学。PCF不可能实时监控所有网络状态，因此通过Trigger机制让SMF作为"传感器"在特定条件满足时上报。PCF只在需要时才重新决策，避免不必要的N7信令交互。例如：PCF只关心UE是否离开特定区域，就设定USER_LOCATION_CHANGE Trigger并附带位置阈值，SMF只在UE越过阈值时才上报。

**Q4: AF如何知道UE的IP地址来做Session Binding？**

A: IMS场景中，P-CSCF从SIP INVITE的SDP中提取UE IP地址（`c=`行或`m=`行）。非IMS场景中，AF可通过NEF获取UE地址信息，或AF直接从应用层协议（如HTTP请求源IP）获取。关键在于PCF需要用UE IP + DNN（可选）+ S-NSSAI（可选）三要素来唯一匹配一个PDU Session。

**Q5: PCF策略修改会不会导致业务中断？**

A: 取决于修改类型。**修改QoS参数**（如调整GBR）通常不会中断业务，SMF通过PDU Session Modification更新QoS Flow参数。**去活PCC规则**会导致对应的SDF过滤器关联的QoS Flow被释放，业务流回退到默认QoS。**删除所有PCC规则**通常只在PDU Session Release时发生。对于GBR类型QoS Flow，SMF会先向RAN请求资源预留，成功后才应用新QoS参数，确保不中断。

---

## 参考来源

1. [3GPP TS 23.502 V18.11.0](https://www.3gpp.org/DynaReport/23502.htm) — Section 4.16: Policy Control Procedures, Section 4.16.4: SM Policy Association Establishment, Section 4.16.5: SM Policy Association Modification
2. [3GPP TS 23.503 V18.8.0](https://www.3gpp.org/DynaReport/23503.htm) — Section 6.1.3: QoS Flow Binding, Section 6.3: PCC Rule Definition
3. [3GPP TS 29.512 V18.9.0](https://www.3gpp.org/DynaReport/29512.htm) — Npcf_SMPolicyControl Service API, SmPolicyContextData & SmPolicyDecision Data Model
4. [3GPP TS 29.514 V18.6.0](https://www.3gpp.org/DynaReport/29514.htm) — Npcf_PolicyAuthorization Service API (N5 Interface)
5. [free5GC Blog: Mapping PCC Rules into Session Rules](https://free5gc.org/blog/20241113/20241113/) — PCC Rule到Session Rule的映射实现分析

---

> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
