<!-- title: 5G SM策略关联建立与PCC规则编排拆解 -->
<!-- domain: core-network -->

# 5G SM策略关联建立与PCC规则编排拆解：N7接口SmPolicyDecision全链路解析

## 一、引言：为什么SM策略关联是5G策略控制的"中枢神经"

5G核心网的策略控制架构与4G EPC有着本质区别。在EPC时代，PCRF通过Gx（Diameter）接口向P-GW下发PCC规则， bearer是QoS执行的最小单元。而在5GC中，PCF通过N7（SBI/HTTP2）接口向SMF提供策略决策，QoS Flow取代了bearer成为新的QoS执行单元。这一变革的核心枢纽就是**SM Policy Association**（SM策略关联）。

SM策略关联是SMF与PCF之间围绕一个PDU Session建立的策略控制契约。从PDU Session建立到释放，SM策略关联始终贯穿其中，承担着PCC规则下发、QoS Flow绑定、计费策略控制、业务门控等全部策略编排职能。

本文将深入拆解TS 23.502 Section 4.16.4定义的SM Policy Association Establishment过程，从SmPolicyContextData请求构造到SmPolicyDecision响应解析，再到SMF侧的QoS Flow Binding机制，完整呈现N7接口的策略编排全链路。

## 二、SM策略关联的架构定位

### 2.1 PCF在5G PCC架构中的角色

5G PCC架构由TS 23.503定义，涉及的核心网元和参考点如下：

```mermaid
graph TB
    AF[AF<br/>应用功能] -->|N5/N28| PCF
    PCF[PCF<br/>策略控制功能] -->|N7<br/>SM Policy Control| SMF
    PCF -->|N15<br/>AM Policy Control| AMF
    PCF -->|N36| UDR[UDR<br/>统一数据存储]
    SMF -->|N4<br/>PFCP| UPF[UPF<br/>用户面功能]
    SMF -->|N10| UDM[UDM<br/>统一数据管理]
    SMF -->|NAS| UE[UE<br/>终端]
    CHF[CHF<br/>计费功能] -->|Nchf| SMF
    style PCF fill:#FF6B6B,color:#fff
    style SMF fill:#4ECDC4,color:#fff
    style UPF fill:#45B7D1,color:#fff
```

PCF在5GC中承担三类策略控制职责：

| 策略类型 | 接口 | 消费者 | TS参考 |
|----------|------|--------|--------|
| **SM策略**（会话管理） | N7 | SMF | TS 23.502 §4.16.4 |
| **AM策略**（接入与移动性） | N15 | AMF | TS 23.502 §4.16.3 |
| **UE策略**（终端策略） | N15 | AMF→UE | TS 23.502 §4.16.5 |

本文聚焦**SM策略关联**，即N7接口上的Session Management Policy Control Service，由TS 29.512（Stage 3）定义其REST API。

### 2.2 SM策略关联的生命周期

SM策略关联与PDU Session严格绑定，生命周期完全一致：

```mermaid
stateDiagram-v2
    [*] --> Idle: UE附着完成
    Idle --> AssociationEstablishment: PDU Session建立触发<br/>SMF发起Npcf_SMPolicyControl_Create
    AssociationEstablishment --> Active: PCF返回SmPolicyDecision
    Active --> Active: SMF发起Modification<br/>(PDU Session Modification)
    Active --> Active: PCF发起UpdateNotification<br/>(AF触发/策略变更)
    Active --> AssociationTermination: PDU Session释放<br/>SMF发起Delete
    AssociationTermination --> [*]
    
    note right of Active
        活跃状态下的操作：
        - SMF主动请求策略更新
        - PCF推送PCC规则变更
        - 计费报告上报
        - 用量监控上报
    end note
```

## 三、SM策略关联建立完整信令流程

### 3.1 总体时序图

根据TS 23.502 Section 4.16.4.2，SM策略关联建立通常在PDU Session Establishment过程中触发。以下展示完整信令流：

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

    UE->>AMF: NAS: PDU Session Establishment Request
    Note over AMF: SMF选择（NRF发现）
    AMF->>SMF: Nsmf_PDUSession_CreateSMContext Request
    Note over SMF: 1. 解析DNN、S-NSSAI、SUPI
    SMF->>UDM: Nudm_SDM_Get (订阅数据)
    UDM-->>SMF: SessionManagementSubscriptionData
    Note over SMF: 2. 判断需要PCC授权
    SMF->>PCF: POST /npcf-smpolicycontrol/v1/sm-policies<br/>SmPolicyContextData
    Note over PCF: 3. PCF策略决策引擎处理
    PCF->>UDR: Nudr_DataQuery (策略数据)
    UDR-->>PCF: PolicyDataSubscription
    Note over PCF: 4. 匹配PCC规则模板<br/>计算QoS参数
    PCF-->>SMF: 201 Created<br/>SmPolicyDecision
    Note over SMF: 5. 解析SmPolicyDecision<br/>执行QoS Flow Binding
    SMF->>UPF: N4 Session Establishment Request<br/>(PDR/FAR/QER/URR)
    UPF-->>SMF: N4 Session Establishment Response
    SMF-->>AMF: Nsmf_PDUSession_CreateSMContext Response
    AMF-->>UE: NAS: PDU Session Establishment Accept<br/>(含QoS Rules)
```

### 3.2 Step 1：SMF发起策略关联建立请求

SMF在以下条件满足时向PCF发起SM策略关联建立：

- PDU Session为**非紧急会话**（Emergency PDU Session可能不建立策略关联）
- UDM返回的订阅数据表明该用户需要策略控制
- SMF本地配置要求与PCF交互

**HTTP请求构造**：

```
POST /npcf-smpolicycontrol/v1/sm-policies
Content-Type: application/json
```

**SmPolicyContextData**（请求体）的关键字段如下表：

| 字段名 | 类型 | 必选 | 说明 | TS参考 |
|--------|------|------|------|--------|
| `supi` | Supi | 是 | 用户永久标识 | TS 29.512 §6.1.6.2 |
| `pduSessionType` | PduSessionType | 是 | IP/IPv4/IPv6/Ethernet/Unstructured | TS 29.512 §6.1.6.2 |
| `dnn` | Dnn | 是 | 数据网络名称 | TS 29.512 §6.1.6.2 |
| `snssai` | Snssai | 是 | 网络切片标识 | TS 29.512 §6.1.6.2 |
| `servingNetwork` | PlmnIdNid | 条件必选 | 服务PLMN（漫游场景） | TS 29.512 §6.1.6.2 |
| `ipv4Address` | Ipv4Addr | 条件必选 | UE IPv4地址 | TS 29.512 §6.1.6.2 |
| `ipv6AddressPrefix` | Ipv6Prefix | 条件必选 | UE IPv6前缀 | TS 29.512 §6.1.6.2 |
| `macAddress` | MacAddr48 | 条件必选 | UE MAC地址（Ethernet类型） | TS 29.512 §6.1.6.2 |
| `AccessType` | AccessType | 否 | 3GPP/NON_3GPP | TS 29.512 §6.1.6.2 |
| `subscriptionPlmnId` | PlmnIdNid | 否 | HPLMN标识（LBO漫游） | TS 29.512 §6.1.6.2 |
| `ratType` | RatType | 否 | NR/EUTRA等 | TS 29.512 §6.1.6.2 |
| `ueTimeZone` | TimeZone | 否 | UE时区 | TS 29.512 §6.1.6.2 |
| `userLocationInfo` | UserLocation | 否 | 用户位置信息 | TS 29.512 §6.1.6.2 |
| `chargingInformation` | ChargingInformation | 否 | CHF寻址信息 | TS 29.512 §6.1.6.2 |
| `subsSessAmbr` | Ambr | 否 | 订阅会话AMBR | TS 29.512 §6.1.6.2 |
| `subsDefQos` | SubscribedDefaultQos | 否 | 订阅默认QoS | TS 29.512 §6.1.6.2 |
| `numberOfSupportedPacketFilters` | integer | 否 | UE支持的包过滤器数量 | TS 29.512 §6.1.6.2 |
| `offline` | boolean | 否 | 离线计费指示 | TS 29.512 §6.1.6.2 |
| `online` | boolean | 否 | 在线计费指示 | TS 29.512 §6.1.6.2 |

**典型请求体示例**（IPv4 PDU Session）：

```json
{
  "supi": "imsi-460110123456789",
  "pduSessionType": "IPV4",
  "dnn": "internet",
  "snssai": { "sst": 1, "sd": "010203" },
  "AccessType": "3GPP_ACCESS",
  "ratType": "NR",
  "ipv4Address": "10.1.2.100",
  "subsSessAmbr": {
    "uplink": "100000000",
    "downlink": "200000000"
  },
  "subsDefQos": {
    "5qi": 9,
    "arp": { "priorityLevel": 15, "preemptCap": "NOT_PREEMPT", "preemptVuln": "PREEMPTABLE" },
    "priorityLevel": 15
  },
  "chargingInformation": {
    "primaryChfAddress": "chf.operator.com",
    "secondaryChfAddress": "chf2.operator.com"
  },
  "online": true,
  "offline": false
}
```

### 3.3 Step 2-4：PCF策略决策过程

PCF收到SmPolicyContextData后，执行以下决策链：

```mermaid
flowchart TD
    A[收到SmPolicyContextData] --> B{验证SUPI<br/>与DNN合法性}
    B -->|合法| C{查询UDR策略数据}
    B -->|非法| ERR[返回400 Bad Request]
    C --> D[获取用户签约策略<br/>PolicyDataSubscription]
    D --> E{匹配PCC规则模板}
    E --> F[基于DNN+S-NSSAI<br/>匹配初始PCC规则]
    F --> G[基于订阅QoS<br/>计算session规则]
    G --> H[确定计费策略<br/>Online/Offline/Both]
    H --> I[确定用量监控策略<br/>MonitoringKey]
    I --> J[生成SmPolicyDecision]
    J --> K[存储策略关联上下文<br/>关联ID = policyAssosId]
    K --> L[返回201 Created]

    style A fill:#FFE66D
    style J fill:#FF6B6B,color:#fff
    style L fill:#4ECDC4,color:#fff
```

PCF的策略数据来源有三个：

| 数据来源 | 接口 | 获取内容 |
|----------|------|----------|
| **UDM** | Nudr（间接） | 用户签约的默认QoS、会话AMBR、计费特性 |
| **UDR** | Nudr（直接） | 运营商策略规则模板、应用检测规则、QoS特征 |
| **AF** | N5/N28 | 应用层的动态业务需求（带宽、延迟、流描述） |

### 3.4 Step 4：SmPolicyDecision响应结构

PCF返回的SmPolicyDecision是整个策略关联的核心载体。它以HTTP 201 Created响应体形式返回：

```
HTTP/1.1 201 Created
Location: {apiRoot}/npcf-smpolicycontrol/v1/sm-policies/{smPolicyId}
Content-Type: application/json
```

**SmPolicyDecision核心字段解析**：

| 字段 | 类型 | 说明 | 对应TS章节 |
|------|------|------|-----------|
| `sessRules` | map(SessionRule) | 会话级规则 | TS 29.512 §6.1.6.4 |
| `pccRules` | map(PccRule) | PCC规则集 | TS 29.512 §6.1.6.4 |
| `pcscfRestIndication` | boolean | P-CSCF重建指示 | TS 29.512 §6.1.6.4 |
| `qosDecs` | map(QosData) | QoS决策数据 | TS 29.512 §6.1.6.4 |
| `chgDecs` | map(ChargingData) | 计费决策数据 | TS 29.512 §6.1.6.4 |
| ` chargingInfo` | ChargingInformation | 计费信息 | TS 29.512 §6.1.6.4 |
| `conds` | map(ConditionData) | 条件数据 | TS 29.512 §6.1.6.4 |
| `trafficControls` | map(TrafficControlData) | 流量控制数据 | TS 29.512 §6.1.6.4 |
| `umDecs` | map(UsageMonitoringData) | 用量监控数据 | TS 29.512 §6.1.6.4 |
| `policyCtrlReqTriggers` | array(PolicyControlReqTrigger) | 策略控制请求触发器 | TS 29.512 §6.1.6.4 |

### 3.5 SessionRule与PccRule的IE结构

**SessionRule**（会话规则）负责PDU Session级别的策略控制：

```mermaid
classDiagram
    class SessionRule {
        +String ruleId
        +String refUmData
        +String refCondData
        +Ambr authSessAmbr
        +AuthDefQos authDefQos
        +boolean sessionRuleState
    }
    class Ambr {
        +String uplink
        +String downlink
    }
    class AuthDefQos {
        +integer 5qi
        +Arp arp
        +integer priorityLevel
        +boolean defQosFlowIndication
    }
    class Arp {
        +integer priorityLevel
        +PreemptCap preemptCap
        +PreemptVuln preemptVuln
    }
    SessionRule --> Ambr
    SessionRule --> AuthDefQos
    AuthDefQos --> Arp
```

**PccRule**（PCC规则）是业务级的策略控制单元，每个PCC规则对应一个Service Data Flow（SDF）或应用检测策略：

| PccRule字段 | 类型 | 说明 |
|-------------|------|------|
| `pccRuleId` | string | 规则唯一标识（如"pcc-rule-1"） |
| `refQosData` | array(string) | 引用的QoS决策数据ID |
| `refChgData` | array(string) | 引用的计费决策数据ID |
| `refTcData` | array(string) | 引用的流量控制数据ID |
| `refUmData` | array(string) | 引用的用量监控数据ID |
| `refCondData` | string | 引用的条件数据ID |
| `flowInfos` | array(FlowInformation) | SDF流描述信息 |
| `appDescriptor` | ApplicationDescriptor | 应用检测描述 |
| `ruleStatus` | RuleStatus | ACTIVE/INACTIVE |
| `precedence` | integer | 规则优先级 |
| `afSigProtocol` | AfSigProtocol | AF信令协议（SIP/其他） |
| `afAppId` | string | AF应用标识 |
| `online` | boolean | 在线计费使能 |
| `offline` | boolean | 离线计费使能 |

**QosData**（QoS决策数据）的详细参数：

| QosData字段 | 类型 | 说明 |
|-------------|------|------|
| `qosId` | string | QoS数据标识 |
| `5qi` | integer | 5G QoS标识符 |
| `maxbrUl` | string | 上行最大比特率 |
| `maxbrDl` | string | 下行最大比特率 |
| `gbrUl` | string | 上行保证比特率（GBR） |
| `gbrDl` | string | 下行保证比特率（GBR） |
| `arp` | Arp | 分配保留优先级 |
| `qnc` | boolean | QoS通知控制 |
| `priorityLevel` | integer | 优先级（1-127） |
| `averWindow` | integer | 平均窗口 |
| `maxPacketLossRateDl` | string | 下行最大丢包率 |
| `maxPacketLossRateUl` | string | 上行最大丢包率 |
| `defQosFlowIndication` | boolean | 默认QoS Flow指示 |

## 四、QoS Flow Binding机制深度解析

### 4.1 Binding机制原理

SMF收到SmPolicyDecision后，最关键的操作是**QoS Flow Binding**——将每个PCC规则绑定到具体的QoS Flow上。这一机制由TS 23.503 Section 6.3.2定义，是5G QoS框架区别于4G bearer机制的核心创新。

**Binding决策逻辑**（TS 23.503 §6.3.2.3）：

```mermaid
flowchart TD
    A[SMF遍历PCC Rules] --> B{PCC规则是否指定<br/>defQosFlowIndication=true?}
    B -->|是| C[绑定到默认QoS Flow<br/>QFI=default]
    B -->|否| D{是否存在匹配的<br/>QoS Flow?}
    D -->|匹配条件: 5QI + ARP一致| E[绑定到已有QoS Flow]
    D -->|不匹配| F{是否为GBR类型?}
    F -->|GBR| G[创建新的GBR QoS Flow<br/>专用QFI]
    F -->|Non-GBR| H{是否允许复用?}
    H -->|允许| I[创建新的Non-GBR QoS Flow<br/>可被后续规则复用]
    H -->|不允许| I
    E --> J[生成N4 Rule<br/>PDR+FAR+QER]
    G --> J
    I --> J
    C --> J
    J --> K[生成QoS Rule<br/>下发给UE]
    K --> L[完成Binding]

    style A fill:#FFE66D
    style L fill:#4ECDC4,color:#fff
```

### 4.2 QoS Flow Binding匹配规则详解

SMF执行Binding时遵循以下匹配规则（TS 23.503 §6.3.2.3）：

| 匹配维度 | 说明 | 优先级 |
|----------|------|--------|
| **5QI** | 5G QoS Identifier，决定延迟/丢包/吞吐量特征 | 最高 |
| **ARP** | Allocation and Retention Priority，决定抢占能力 | 高 |
| **GFBR/MFBR** | GBR Flow的保证/最大速率（仅GBR类型） | 中 |
| **Sharing Filter** | 运营商配置的共享过滤器 | 低 |

**Binding Key**的计算逻辑：

```
Binding Key = Hash(5QI, ARP.priorityLevel, ARP.preemptCap, ARP.preemptVuln)
```

当两个PCC规则产生相同的Binding Key时，SMF会将它们的SDF Filter绑定到同一个QoS Flow上，共享该Flow的QoS参数。

### 4.3 默认QoS Flow vs 专用QoS Flow

| 特征 | 默认QoS Flow | 专用QoS Flow |
|------|-------------|-------------|
| **创建时机** | PDU Session建立时自动创建 | PCC规则触发Binding时按需创建 |
| **QFI** | 由SMF分配（通常=默认5QI值） | 由SMF分配（唯一标识） |
| **生命周期** | 与PDU Session相同 | 随PCC规则激活/去激活 |
| **Reflective QoS** | 支持 | 不支持 |
| **包标记** | N3/N9上用QFI标记 | N3/N9上用QFI标记 |
| **典型用途** | Best-effort上网流量 | IMS语音、视频通话、游戏加速 |

### 4.4 QoS Flow Binding实例

假设PCF下发了以下PCC规则：

| PCC Rule | 5QI | ARP | GFBR UL/DL | 业务类型 |
|----------|-----|-----|------------|----------|
| pcc-1 | 9 | 15/NP/PRE | - | 默认上网 |
| pcc-2 | 1 | 5/HP/NPV | 64kbps/64kbps | VoNR语音 |
| pcc-3 | 2 | 7/MP/NPV | 512kbps/1Mbps | 视频通话 |
| pcc-4 | 9 | 15/NP/PRE | - | 后台下载 |

SMF执行Binding后的结果：

| QoS Flow (QFI) | 绑定的PCC Rule | 5QI | ARP | 类型 |
|-----------------|---------------|-----|-----|------|
| QFI=1（默认） | pcc-1, pcc-4 | 9 | 15/NP/PRE | Non-GBR |
| QFI=2 | pcc-2 | 1 | 5/HP/NPV | GBR |
| QFI=3 | pcc-3 | 2 | 7/MP/NPV | GBR |

注意pcc-1和pcc-4虽然都是5QI=9且ARP相同，但被绑定到同一个默认QoS Flow上，因为它们的Binding Key相同。

## 五、SM策略关联修改：双向触发机制

### 5.1 SMF触发的策略修改（Pull模式）

当PDU Session发生变更（如UE发起的QoS Flow修改、AN资源变更、计费报告上报等）时，SMF主动通知PCF：

```
POST /npcf-smpolicycontrol/v1/sm-policies/{smPolicyId}/modify
```

请求体为**SmPolicyUpdateContextData**，包含以下触发器：

| 触发器类型 | 说明 | TS参考 |
|-----------|------|--------|
| `PLMN_CHANGE` | UE漫游到新PLMN | TS 29.512 §6.1.6.3 |
| `RES_MO_REVOKE` | SMF发起的资源修改/撤销 | TS 29.512 §6.1.6.3 |
| `IP_CHANGE` | UE IP地址变更 | TS 29.512 §6.1.6.3 |
| `AN_CHARGING_INFO` | 接入网计费信息变更 | TS 29.512 §6.1.6.3 |
| `ACCESS_TYPE_CHANGE` | 接入类型变更 | TS 29.512 §6.1.6.3 |
| `UE_TIME_ZONE_CHANGE` | UE时区变更 | TS 29.512 §6.1.6.3 |
| `QOS_NOTIF` | QoS通知控制触发 | TS 29.512 §6.1.6.3 |
| `NO_CREDIT` | 余额不足 | TS 29.512 §6.1.6.3 |
| `REACTIVATION_REQUEST` | QoS Flow重激活请求 | TS 29.512 §6.1.6.3 |
| `USAGE_REPORT` | 用量监控报告 | TS 29.512 §6.1.6.3 |

### 5.2 PCF触发的策略修改（Push模式）

PCF可主动向SMF推送策略更新，通过以下接口：

```
POST /nsmf-policycontrol/v1/sm-policies/{smPolicyId}/update
```

触发场景包括：

| 触发源 | 说明 |
|--------|------|
| **AF请求** | AF通过N5/N28接口请求新的带宽保障（如视频通话升级） |
| **时间策略** | 到达策略生效时间窗口（如闲时加速策略） |
| **签约变更** | UDM通知PCF用户签约数据变更 |
| **用量阈值** | 监控到用量达到阈值触发策略变更 |
| **SPR/UDR变更** | 运营商调整策略模板 |

### 5.3 完整的SM策略修改时序

```mermaid
sequenceDiagram
    participant AF
    participant PCF
    participant SMF
    participant UPF
    participant UE
    participant AN as RAN

    AF->>PCF: N5: AppSessionContext Update<br/>(请求更高带宽)
    Note over PCF: 策略决策：新增PCC Rule<br/>5QI=4(Non-GBR) ARP=10
    PCF->>SMF: Npcf_SMPolicyControl_UpdateNotify<br/>SmPolicyNotification
    Note over SMF: 解析新的PCC Rule<br/>执行QoS Flow Binding
    Note over SMF: 无匹配QoS Flow<br/>创建新QFI=4
    SMF->>UPF: N4 Session Modification<br/>(新增PDR/QER for QFI=4)
    UPF-->>SMF: N4 Session Modification Response
    SMF->>AN: N2 SM Information<br/>(QoS Flow Setup Request)
    AN-->>SMF: N2 SM Information Ack
    AN->>UE: RRC Reconfiguration<br/>(DRB配置 for QFI=4)
    UE-->>AN: RRC Reconfiguration Complete
    SMF->>PCF: Npcf_SMPolicyControl_Update Notify Response<br/>(执行结果确认)
    PCF->>AF: N5: AppSessionContext Update Response<br/>(授权确认)
```

## 六、N4会话规则编排：从PCC规则到UPF转发面

### 6.1 SMF的规则翻译引擎

SMF在完成QoS Flow Binding后，需要将PCC规则翻译为UPF可执行的N4规则（PFCP规则）。这是一个三级映射过程：

```mermaid
flowchart LR
    subgraph PCF_PCC["PCF层：PCC规则"]
        PCC_Rule[PccRule<br/>flowInfos + refQosData<br/>+ refChgData]
    end
    subgraph SMF_Binding["SMF层：QoS Flow Binding"]
        QoS_Flow[QoS Flow<br/>QFI + QoS参数]
        QoS_Rule[QoS Rule<br/>下发给UE]
    end
    subgraph UPF_N4["UPF层：N4规则"]
        PDR[PDR<br/>包检测规则]
        FAR[FAR<br/>转发动作规则]
        QER[QER<br/>QoS执行规则]
        URR[URR<br/>用量报告规则]
    end

    PCC_Rule --> QoS_Flow
    PCC_Rule --> QoS_Rule
    QoS_Flow --> PDR
    QoS_Flow --> FAR
    QoS_Flow --> QER
    QoS_Flow --> URR
```

### 6.2 N4规则映射表

| PCC Rule元素 | N4规则类型 | N4 IE | 说明 |
|-------------|-----------|-------|------|
| `flowInfos` (SDF Filter) | PDR | Packet Detection Rule | 5元组匹配 |
| `refQosData` (5QI/ARP/GBR) | QER | QoS Enforcement Rule | 速率限制、QFI标记 |
| `refChgData` (计费) | URR | Usage Reporting Rule | 用量统计、配额管理 |
| `refTcData` (gate) | FAR | Forwarding Action Rule | 门控（Open/Closed） |
| `refUmData` (监控) | URR | Usage Reporting Rule | 用量监控阈值 |
| QoS Flow (QFI) | PDR/QER | QFI字段 | N3/N9隧道包标记 |

### 6.3 关键IE映射示例

以一个IMS语音PCC规则为例：

**PCC Rule (PCF下发)**:
- pccRuleId: "ims-voice-1"
- 5QI: 1, ARP: 5/HP/NPV
- GFBR UL/DL: 64kbps/64kbps
- Flow: permit out ip from 10.1.2.100 10000 to any [SIP RTP]

**SMF翻译后的N4 Session Modification**:
- **PDR**: SDF Filter = "permit out ip from 10.1.2.100 10000 to any", QFI = 2
- **QER**: QFI = 2, UL/DL MBR = 64kbps, GFBR UL/DL = 64kbps
- **FAR**: Apply Action = FORW, Outer Header Creation (N3 tunnel)
- **URR**: Measurement Method = VOLUME, Reporting Triggers = QUOTA_EXHAUSTED

## 七、实战排错指南

### 7.1 抓包识别SM策略关联

N7接口使用HTTP/2 over TLS，抓包点在SMF与PCF之间的SBI接口上。

**Wireshark过滤规则**：
```
# 过滤SM Policy Association Establishment
http2.headers contains "sm-policies"

# 过滤SM Policy Modification
http2.headers contains "sm-policies" && http2.headers contains "modify"

# 过滤PCF推送的策略更新
http2.headers contains "sm-policies" && http2.headers contains "update"
```

**关键识别特征**：

| 流程步骤 | HTTP Method | URL Path | 响应码 |
|----------|------------|----------|--------|
| 策略关联建立 | POST | /npcf-smpolicycontrol/v1/sm-policies | 201 Created |
| SMF请求修改 | POST | /npcf-smpolicycontrol/v1/sm-policies/{id}/modify | 200 OK |
| PCF推送更新 | POST | /nsmf-policycontrol/v1/sm-policies/{id}/update | 204 No Content |
| 策略关联删除 | DELETE | /npcf-smpolicycontrol/v1/sm-policies/{id} | 204 No Content |

### 7.2 常见故障场景

**场景1：SM策略关联建立失败（HTTP 400/403/500）**

| 错误码 | 可能原因 | 排查方向 |
|--------|---------|---------|
| 400 Bad Request | SmPolicyContextData字段缺失或格式错误 | 检查SMF构造的请求体JSON |
| 403 Forbidden | PCF策略判断拒绝（如DNN不在签约范围） | 检查UDM订阅数据与PCF策略 |
| 404 Not Found | PCF地址错误或服务不可用 | 检查NRF服务发现与PCF配置 |
| 500 Internal Server Error | PCF内部处理异常 | 查看PCF日志、UDR连接状态 |
| 503 Service Unavailable | PCF过载或维护中 | 检查PCF负载和容量 |

**场景2：PCC规则未生效（QoS未按预期执行）**

排查清单：
1. 确认PCF确实返回了目标PCC Rule（检查SmPolicyDecision.pccRules）
2. 确认SMF正确执行了QoS Flow Binding（检查SMF日志中的QFI分配）
3. 确认UPF收到了正确的N4规则（检查PFCP Session Establishment/Modification）
4. 确认QoS Rule已下发到UE（检查NAS PDU Session Establishment Accept中的QoS Rules IE）
5. 确认RAN侧建立了对应的DRB（检查N2 SM Information中的QoS Flow Setup Request）

**场景3：策略更新不及时**

| 现象 | 可能原因 | 排查方向 |
|------|---------|---------|
| AF请求后QoS未变化 | PCF未收到AF请求或拒绝了请求 | 检查N5/N28接口日志 |
| 时间策略未生效 | PCF时钟偏移或策略模板配置错误 | 检查PCF时间策略配置 |
| 计费策略异常 | CHF连接断开导致配额无法获取 | 检查Nchf接口与CHF状态 |
| 用量监控阈值不触发 | SMF未上报USAGE_REPORT | 检查policyCtrlReqTriggers配置 |
## 八、Release 18/19增强特性

### 8.1 Rel-18增强（TS 23.502 V18.x）

Rel-18对SM策略关联的主要增强包括：

| 增强特性 | TS参考 | 说明 |
|----------|--------|------|
| **Edge Computing策略增强** | TS 23.502 §4.16.4a | PCF支持EAS部署信息的策略决策 |
| **Multimedia Priority Service** | TS 23.503 §6.1.3.4 | MPS优先级策略在SM策略关联中的处理 |
| **PCC for ATSSS** | TS 23.503 §6.3.3 | Multi-access PDU Session的PCC规则扩展 |
| **Enhanced Background Data Transfer** | TS 23.503 §6.4 | 后台数据传输策略的时间窗口控制 |
| **QoS Monitoring增强** | TS 23.502 §4.16.4 | 新增QoS Monitoring策略参数 |

### 8.2 Rel-19展望

Rel-19正在讨论中的SM策略关联增强方向：

| 方向 | 说明 |
|------|------|
| **AI/ML辅助策略** | PCF基于ML模型预测流量模式并预配置PCC规则 |
| **网络节能策略** | PCF根据负载情况动态调整QoS参数以节能 |
| **RedCap策略增强** | 针对Reduced Capability设备的差异化策略控制 |
| **确定性网络策略** | TSN场景下的确定性QoS保障策略 |
| **多播/广播策略** | MBS Session的策略控制扩展 |

## 常见问题

**Q1: SM策略关联和AM策略关联的区别是什么？**

A: SM策略关联（N7）是SMF与PCF之间围绕一个PDU Session的策略契约，控制QoS、计费、门控等会话级策略。AM策略关联（N15）是AMF与PCF之间围绕一个UE的策略契约，控制接入与移动性策略（如服务区域限制、RFSP索引）。两者的生命周期不同：SM策略关联随PDU Session建立/释放，AM策略关联随UE注册/去注册。

**Q2: PCC规则和Session规则分别用在什么场景？**

A: SessionRule是PDU Session级别的策略，控制整个会话的默认QoS（5QI/ARP）和会话AMBR，每个PDU Session有且仅有一个活跃的SessionRule。PccRule是业务流级别的策略，控制特定SDF或应用的QoS、计费和门控，一个PDU Session可以有多个PccRule（如默认上网+IMS语音+视频加速）。

**Q3: QoS Flow Binding中，为什么同一5QI的Non-GBR规则可以复用QoS Flow？**

A: 这是5G QoS架构的设计优化。Non-GBR类型（如5QI=9的best-effort流量）不保证比特率，多个SDF复用同一个QoS Flow可以减少RAN侧的DRB数量和N3隧道的QFI标记开销。SMF通过Binding Key（5QI + ARP）判断是否可以复用。但GBR类型的PCC规则（如5QI=1的语音）必须独占QoS Flow，因为需要独立的GFBR保障。

**Q4: 如果PCF不可用，SMF能否继续提供PDU Session服务？**

A: 可以。根据TS 23.502 §4.16.4，SMF可以使用**Local Policy（本地策略）**作为PCF不可用时的回退方案。SMF基于UDM返回的订阅默认QoS和本地配置的PCC规则模板来提供基本的策略控制。但这意味着无法提供动态策略（如AF触发的带宽提升）和在线计费功能。

**Q5: SM策略关联建立时，PCF如何决定下发哪些PCC规则？**

A: PCF的PCC规则决策依赖于多维度输入：(1) DNN和S-NSSAI匹配的运营商策略模板；(2) 用户签约数据中的默认QoS和业务权限；(3) UDR中存储的应用检测规则；(4) AF通过N5/N28提供的动态业务需求。PCF的策略引擎对这些输入进行综合评估，生成匹配当前会话上下文的PCC规则集。初始建立时通常只下发默认PCC规则（匹配默认上网流量），业务专用规则在AF触发后通过UpdateNotification推送。

## 参考来源

1. [3GPP TS 23.502 V18.10.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123502/18.10.00_60/ts_123502v181000p.pdf) — Section 4.16.4: SM Policy Association Establishment
2. [3GPP TS 23.503 V18.10.0](https://www.etsi.org/deliver/etsi_ts/123500_123599/123503/18.10.00_60/ts_123503v181000p.pdf) — Section 6.3: PCC Rule and QoS Flow Binding
3. [3GPP TS 29.512 V18.x](https://www.3gpp.org/ftp/Specs/archive/OpenAPI/Rel-18/TS29512_Npcf_SMPolicyControl.yaml) — Npcf_SMPolicyControl Service API (OpenAPI)
4. [free5GC Blog: Mapping PCC Rules into Session Rules](https://free5gc.org/blog/20241113/20241113/) — 开源5GC中PCC规则映射实现分析
5. [TelecomTrainer: 5G Policy Association and User Plane Setup](https://www.telecomtrainer.com/5g-policy-association-and-user-plane-setup-explained-amf-pcf-and-smf-interactions/) — 5G策略关联与用户面建立全流程解读

---
> 本文由「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)
