策略与计费控制规则(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的程序中,对象间的依赖关系是靠硬编码的方式实现的 ... 
随机推荐
- 冒泡排序的JavaScript实现
			1. 普通冒泡 思想 假设有n个数,按从小到大排序: 进行n-1次外循环,每次外循环会排好当前处理的数中的最大数,即进行第一次外循环排好所有数中的最大数,进行第二次外循环排好所有数中的次大数....直 ... 
- javascript中原型学习
			学习地址:http://www.cnblogs.com/wangfupeng1988/tag/%E5%8E%9F%E5%9E%8B/ 
- 关于在windows server 2008 上部署wampserver2.5部署的问题
			1.关闭windows自带防火墙 2.httpd.conf文件权限 apache 2.4.9 外网访问的问题参考此文: http://blog.csdn.net/lysc_forever/articl ... 
- unidac使用演示
			unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ... 
- Delphi从Internet下载文件
			Delphi从Internet下载文件 今天在做拍卖系统的时候,因考虑到网络状况问题,需要将拍品所有信息下载到本机,包括拍品图片,因此需要实现从Internet下载文件的功能. 下面是代 ... 
- Python3 的urllib实例
			在Python3中合并了 urllib 和 urllib2, 统一命名为 urllib 了,我觉得这样更加合理了.让我们可以像读取本地文件一样读取WEB上的数据.封装了一个类,供以后方便使用吧!并附带 ... 
- 拦截导弹简单版(读入一串整数时getline(cin,s)   stringstream is(s);)
			拦截导弹简单版 时间限制: 1 Sec 内存限制: 128 MB提交: 40 解决: 16[提交][状态][讨论版][命题人:外部导入] 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系 ... 
- zufeoj 花生(The Peanuts)
			花生(The Peanuts) 时间限制: 1 Sec 内存限制: 128 MB提交: 3 解决: 2[提交][状态][讨论版] 题目描述 鲁宾逊先生和他的宠物猴,多多,非常喜欢花生.有一天,他们 ... 
- python开发进程:共享数据&进程池
			一,共享数据 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据.这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展 ... 
- 虚拟机之 LNMP
			LNMP就是Linux nginx mysql php 一.mysql 下载安装mysql转至 LAMP (点击“LAMP”即可跳转) 也可以从快照跳转至mysql安装ok 二.php 下载同上, 1 ... 
