策略与计费控制规则(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的程序中,对象间的依赖关系是靠硬编码的方式实现的 ...
随机推荐
- 【Machine Learning 学习笔记】OSX Octave 输出图像问题
Uninstall any existing gnuplot on your OSX brew uninstall gnuplot Install gnuplot with either X or X ...
- Volley请求图片
ImageRequest imageRequest = new ImageRequest(Config.USER_ASSETS_URL + md5(userid) + "/images/av ...
- VC++中如何让RadioButton分组,并且互斥
首先让两个RadioButton的Group属性为False. 将两个RadioButton放入一个GroupBox里面,即可如果分成多个组,则将多组Radio分别用GroupBox框起来,并将每组的 ...
- 【转】学习使用Jmeter做压力测试(二)--压力测试的实施
JMeter测试步骤: 1.建立测试计划 2.添加线程组 3.添加HTTP请求 4.增加监听器 5.执行测试计划 6.根据JMeter提供的报告分析结果 一.目标 测试访问目标服务器网站首页的每秒查询 ...
- java使用array.copy复制数组
总结:理解理解.重要啊 package com.a; import java.util.Arrays; public class FJKDLS { public static void main(St ...
- chrome打开新标签页插件
标签(空格分隔): 日常办公,chrome浏览器 一直被chrome浏览器打开新标签页困扰,每次点开一个新标签页还要再去点一下主页,才能打开搜索页面.如果直接点击主页,又会把当前的页面刷掉,实在是非常 ...
- java 最差实践
HashMap size 陷阱: 错误写法: Map map = new HashMap(collection.size()); for (Object o : collection) { map.p ...
- JavaScript笔记——正则表达式
正则表达式(regular expression)是一个描述字符模式的对象.JavaScript的 RegExp 类 表示正则表达式,而 String 和 RegExp 都定义了使用正则表达式进行强大 ...
- Angular2快速入门-3.多个组件(分离新闻列表页和详细页)
上篇(Angular2快速入门-2.创建一个新闻列表)已经完成新闻列表的展示,并且点击新闻列表的时候,下面可以展示出新闻的详细信息,这节我们把新闻详细和新闻列表页面分离出来 新闻详细单独一个compo ...
- vs中的强大的代码段管理
vs中的代码段管理可以实现大段固定文本的快捷输入,方法: 首先编写.snippet文件如: <?xml version="1.0" encoding="utf-8& ...