策略与计费控制规则(Policy and Charging Control Rule-PCC Rule)解析及模板样例
内容
- PCC规则定义
- PCC规则运行
- PCC规则模板
PCC规则定义
**参考文档: **3gpp ts 23.203-be0 条款6.3
策略与计费控制规则(PCC Rule),即一系列相关信息与一系列相关操作的集合,通常包含3大类信息:
- 服务数据流检查信息
- 策略控制信息
- 计费相关信息
其中:服务数据流指,利用PCC规则中的业务数据流模板进行检测的分组数据;
PCC规则可以分为两类:
- 动态PCC规则
- 静态预定义PCC规则
动态PCC规则通过PCRF的Gx下发给PCEF执行,PCRF可以建立、修改、删除这类规则;预定义PCC规则由PCEF预配,PCRF只能引用这类规则;
PCC规则如下表所示:

注意: 同一个P-CAN会话中PCC规则ID标识符是唯一的;如果动态PCC规则与预定义PCC规则相同,则后者将被前者覆盖(替换);
PCC业务数据流模板(PCC Service Data Flow Template)可能包含任何数目的业务数据流过滤器(Service Data Flow Filter);
PCC优先顺序(PCC Precedence)定义了在PCEF中进行服务数据流检测时,同一个IP-CAN会话中已激活的PCC规则的执行先后顺序;
特别声明: 其余指标说明请参考相关文档[SR_68-2010_策略和计费控制(PCC)系统技术研究]
PCC规则运行
PCC规则运行主要指:
- 动态PCC规则的创建、激活、修改、去激活、删除等过程
- 预定义PCC规则的引用过程
激活
- 激活动态PCC规则,通过Gx接口向PCEF提供PCC规则信息;
- 激活预定义的PCC规则,通过Gx接口向PCEF提供关联的PCC规则标识符;
- 激活PCRF不知道的预定义PCC规则,PCEF根据运营商策略进行;
激活的PCC规则
- 使用业务数据流模板(PCC Service Data Flow Template)检查业务数据流(Service Data Flow)
- 使用业务数据流模板将下行分组数据映射到承载绑定(Binder)的IP-CAN承载
- 使用业务数据流模板检查承载绑定的IP-CAN上的上行分组
- 记录业务数据流的使用数据
- 调用与PCC规则相关的策略(如果有)
注意:
- 预定义的PCC规则至少在一个接入点范围内是已知的
- 多个IP-CAN会话中,能够为多个IP-CAN承载激活相同的预定义PCC规则
- 包含有下行服务数据流过滤器的预定义的PCC规则,只能在每一个IP-CAN会话中激活一次
- 只包含有上行服务数据流过滤器的预定义PCC规则,能够在同一个IP-CAN会话的多个IP-CAN承载建立时激活;去激活该类PCC规则时,将从每一个IP-CAN承载中删除该PCC规则
- PCRF可以在任何时候修改一个激活的、动态PCC规则
- PCRF可以在任何时候通过Gx接口去激活PCEF中活动的PCC规则;并在IP-CAN承载终止时,该承载上的所有活动的PCC规则,都应该不去激活,而不用PCRF显示执行
PCC规则模板
<?xml version='1.0' encoding='UTF-8' ?>
<PolicyDef xmlns='http://www.yota.ru/shemes/rules' version='1'>
<Policy Name="online_charging">
<Default>
<AddToCCA>
<Online Value="ENABLE_ONLINE" />
<Offline Value="DISABLE_OFFLINE" />
</AddToCCA>
<AddToRAR>
<Online Value="ENABLE_ONLINE" />
<Offline Value="DISABLE_OFFLINE" />
</AddToRAR>
</Default>
</Policy>
<Policy Name="failover">
<Default>
<AddToCCA_I>
<CC-Session-Failover Value="FAILOVER_SUPPORTED" />
</AddToCCA_I>
</Default>
</Policy>
<!-- this is policy for users w/o any policy " -->
<Policy Name="Default">
<CiscoSCE PackageInstall="0" Real_Time_Monitor="1"/>
<Default>
<QoSes>
<QoS-Information>
<APN-Aggregate-Max-Bitrate-DL Value="2048000"/>
<APN-Aggregate-Max-Bitrate-UL Value="2048000"/>
</QoS-Information>
<Default-EPS-Bearer-QoS>
<QoS-Class-Identifier Value="QCI_6"/>
<Allocation-Retention-Priority>
<Priority-Level Value="1"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_ENABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_DISABLED"/>
</Allocation-Retention-Priority>
</Default-EPS-Bearer-QoS>
</QoSes>
</Default>
</Policy>
<Policy Name="Limited">
<CiscoSCE PackageInstall="1" Real_Time_Monitor="1"/>
<Default>
<QoSes>
<QoS-Information>
<APN-Aggregate-Max-Bitrate-DL Value="64000"/>
<APN-Aggregate-Max-Bitrate-UL Value="64000"/>
</QoS-Information>
<Default-EPS-Bearer-QoS>
<QoS-Class-Identifier Value="QCI_6"/>
<Allocation-Retention-Priority>
<Priority-Level Value="1"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_ENABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_DISABLED"/>
</Allocation-Retention-Priority>
</Default-EPS-Bearer-QoS>
</QoSes>
</Default>
</Policy>
<Policy Name="Turbo">
<CiscoSCE PackageInstall="2" Real_Time_Monitor="1"/>
<Default>
<QoSes>
<QoS-Information>
<APN-Aggregate-Max-Bitrate-UL Value="10240000"/>
<APN-Aggregate-Max-Bitrate-DL Value="10240000"/>
</QoS-Information>
<Default-EPS-Bearer-QoS>
<QoS-Class-Identifier Value="QCI_6"/>
<Allocation-Retention-Priority>
<Priority-Level Value="1"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_ENABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_DISABLED"/>
</Allocation-Retention-Priority>
</Default-EPS-Bearer-QoS>
</QoSes>
<Rules>
<Charging-Rule-Base-Name Value="Turbo"/>
<Charging-Rule-Name Value="Turbo_1"/>
<Charging-Rule-Name Value="Turbo_2"/>
</Rules>
</Default>
</Policy>
<Policy Name="VideoTurbo">
<Default>
<Rules>
<Charging-Rule-Definition>
<Charging-Rule-Name Value="video_turbo"/>
<Service-Identifier Value="5"/>
<Rating-Group Value="8"/>
<Flow-Description Value="permit in ip from any to 10.2.44.215"/>
<Flow-Description Value="permit out ip from 10.2.44.215 to any"/>
<Flow-Status Value="ENABLED"/>
<QoS-Information>
<QoS-Class-Identifier Value="QCI_7"/>
<Max-Requested-Bandwidth-UL Value="8192000"/>
<Max-Requested-Bandwidth-DL Value="8192000"/>
<Guaranteed-Bitrate-UL Value="8192000"/>
<Guaranteed-Bitrate-DL Value="8192000"/>
<Allocation-Retention-Priority>
<Priority-Level Value="1"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_DISABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_ENABLED"/>
</Allocation-Retention-Priority>
</QoS-Information>
<Precedence Value="1"/>
</Charging-Rule-Definition>
</Rules>
</Default>
</Policy>
<Policy Name="Default_IOT">
<CiscoSCE PackageInstall="3" Real_Time_Monitor="1"/>
<Default>
<QoSes>
<QoS-Information>
<APN-Aggregate-Max-Bitrate-UL Value="2048000"/>
<APN-Aggregate-Max-Bitrate-DL Value="2048000"/>
</QoS-Information>
<Default-EPS-Bearer-QoS>
<QoS-Class-Identifier Value="QCI_6"/>
<Allocation-Retention-Priority>
<Priority-Level Value="1"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_ENABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_DISABLED"/>
</Allocation-Retention-Priority>
</Default-EPS-Bearer-QoS>
</QoSes>
<Rules>
<Charging-Rule-Definition>
<Charging-Rule-Name Value="iot"/>
<Service-Identifier Value="211"/>
<Rating-Group Value="211"/>
<Flow-Description Value="permit in ip from any to any"/>
<Flow-Description Value="permit out ip from any to any"/>
<Reporting-Level Value="SERVICE_IDENTIFIER_LEVEL"/>
<Metering-Method Value="VOLUME"/>
<Online Value="ENABLE_ONLINE"/>
<Offline Value="DISABLE_OFFLINE"/>
<Flow-Status Value="ENABLED"/>
<QoS-Information>
<QoS-Class-Identifier Value="QCI_6"/>
<Max-Requested-Bandwidth-UL Value="2048000"/>
<Max-Requested-Bandwidth-DL Value="2048000"/>
<Guaranteed-Bitrate-UL Value="2048000"/>
<Guaranteed-Bitrate-DL Value="2048000"/>
<Allocation-Retention-Priority>
<Priority-Level Value="6"/>
<Pre-emption-Capability Value="PRE_EMPTION_CAPABILITY_DISABLED"/>
<Pre-emption-Vulnerability Value="PRE_EMPTION_VULNERABILITY_DISABLED"/>
</Allocation-Retention-Priority>
</QoS-Information>
<Precedence Value="0"/>
</Charging-Rule-Definition>
</Rules>
</Default>
</Policy>
<HuaweiAccums>
<!-- This is special accum used only for per location usage monitoring -->
<Accum Name="CONGESTION">
<Monitoring-Key Name="congestion" Direction="Downlink" Delta="1000000" Monitor-Level="SESSION" />
</Accum>
</HuaweiAccums>
<DefaultAccums>
<!-- please don't delete this accum. It used for perfomance tests -->
<Accum Name="perf_accum_test">
<Monitoring-Key Name="test_mkey" Direction="Downlink" Delta="1000000"/>
</Accum>
<Accum Name="perf_accum_D">
<Monitoring-Key Name="test_mkey" Direction="Uplink" Delta="500000"/>
</Accum>
<Accum Name="perf_accum_M">
<Monitoring-Key Name="test_mkey2" Direction="Both" Delta="100000"/>
</Accum>
<Accum Name="general">
<Monitoring-Key Name="up_mkey" Direction="Uplink" Delta="1000000"/>
<Monitoring-Key Name="down_mkey" Direction="Downlink" Delta="1000000"/>
</Accum>
<Accum Name="general_up">
<Monitoring-Key Name="general_mkey" Direction="Uplink" Delta="1000000"/>
</Accum>
<!-- please don't delete this accum. It used in FreePCRF image -->
<Accum Name="general_down">
<Monitoring-Key Name="general_mkey" Direction="Downlink" Delta="1000000"/>
</Accum>
</DefaultAccums>
<ProceraAccums>
<Accum Name="perf_accum_test">
<Monitoring-Key Name="test_mkey" Direction="Downlink" Delta="1000000"/>
</Accum>
</ProceraAccums>
</PolicyDef>
注: 规则模板的说明请参考freePCRF手册文档:《Telexir PCRF 3.5.2 Policy Library.pdf》
策略与计费控制规则(Policy and Charging Control Rule-PCC Rule)解析及模板样例的更多相关文章
- 策略和计费控制(PCC)系统研究
策略和计费控制(PCC)系统研究 研究内容 [TOC "float:left"] 策略与计费控制(PCC)框架1 [架构图](achitecture.png "Archi ...
- 策略与计费控制(PCC)流程与信令流程
该文为3GPP TS23.203-be0 条款6-7译文 策略与计费控制(PCC)流程[^4] IP-CAN 会话有三种显著的场景: 无网关控制会话需求,不会出现网关控制建立 需要网关控制会话支持:B ...
- 控制反转(Inversion of Control)之我的理解
关于控制反转(Inversion of Control),在具体实现上也有许多其它的叫法,如依赖倒置(Dependency Inversion Principles, DIP).依赖注入(Depend ...
- 策略模式——MFC样例
Context(应用场景): 1.须要使用ConcreteStrategy提供的算法. 2.内部维护一个Strategy的实例. 3. 负责动态设置执行时Strategy详细的实现算法. 4.负责跟S ...
- IOC 控制反转(Inversion of Control,英文缩写为IoC)
在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 在这样的齿轮组中,因为是协同工作,如果有一个齿轮出了问题,就可能会影响到整个齿 ...
- 控制反转(Inversion of Control,英文缩写为IoC),另外一个名字叫做依赖注入(Dependency Injection,简称DI)
控制反转(Inversion of Control,英文缩写为IoC),另外一个名字叫做依赖注入(Dependency Injection,简称DI),是一个重要的面向对象编程的法则来削减计算机程序的 ...
- java I/O进程控制,重定向 演示样例代码
java I/O进程控制,重定向 演示样例代码 package org.rui.io.util; import java.io.*; /** * 标准I/O重定向 */ public class Re ...
- Phalcon 訪问控制列表 ACL(Access Control Lists ACL)
Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问 ...
- 【Java_Spring】控制反转IOC(Inversion of Control)
1. IOC的概念 控制反转IoC(Inversion of Control)是一种设计思想,而DI(依赖注入)是实现IoC的一种方法.在没有使用IOC的程序中,对象间的依赖关系是靠硬编码的方式实现的 ...
随机推荐
- ASP.NET WebApi通过自定义ControllerSelector来自定义Controller的选择
在web api中,我们可以通过给Cotroller类添加RoutePrefixAttribute来定义url与Controller之间的映射,但是有时候有一些特殊情况下,我们需要做一些特殊处理来将某 ...
- 获取设备 ID 和名称
获取设备 ID 和名称 .NET Framework 3.5 其他版本 更新:2007 年 11 月 要获取设备的名称,请使用 Dns.GetHostName 属性.通常情况下,默认名称为“P ...
- erlang热部署
以下流程参考rebar的wiki,亲测 rebar的版本一定要注意,高版本对于下面两个指令有bug rebar generate-appups rebar generate-upgrade 经过一个个 ...
- git diff的使用
有时候可能睡觉时候忘记关电脑了,然后不小心触碰到键盘上某个神秘的按钮了,然后自己也不知道就提交了 就可能很悲剧 那么有时候不知道自己是否改变了哪些文件的内容 这时候就需要用到git diff git ...
- netty中的websocket
使用WebSocket 协议来实现一个基于浏览器的聊天室应用程序,图12-1 说明了该应用程序的逻辑: (1)客户端发送一个消息:(2)该消息将被广播到所有其他连接的客户端. WebSocket 在从 ...
- MySQL 5.6/5.7 linux常见安装(tar,yum,script)
该文章总结一下MySQL的常见安装方式,以tar,yum,script 三种方式来演示: 一般的公司都会有自己统一的数据库安装规范和模板,在生产环境请按照自己的规范来安装和使用,这里只演示和测试,供需 ...
- andriod/ios webview与js交互 html_demo
<html> <head> <title>测试</title> </head> <body> <h3>Android ...
- AJAX如何获取从前台传递过来的数据然后在通过servle传递给后台
1 用 request.getParameter接收值 <% String id1=request.getParameter("id"); out.print(id1); % ...
- 第一章 初识MySQL(待续)
···········
- 阿里云ECS centos7 支持IPv6
1.编辑 /etc/sysctl.conf 文件,将其中三条禁用IPv6的设置更改为: net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default ...