By:GentlemanTsao

本篇主要介绍

  • 1 Policy Manager概述
  • 2 为什么使用policy manager
    • 弱耦合:
    • 方便修改:
    • 动态配置:
  • 3 policy manager架构与API
    • 3.1 policy manager包括两部分:
    • 3.2 上层架构:
    • 3.3 Policy生效过程
  • 4 如何修改Policyman XML
    • 4.1 Policyman包含的XML文件
    • 4.2 三种类型:Lists, booleans, and timers
      • List
      • Booleans
      • Timers
    • 4.3 Policyman XML 结构
      • 功能
      • 配置项
      • 配置方法
  • 5 如何debug policy manager

1 Policy Manager概述

  • Policy Manager是MMCP(多模通话处理器)组件,用于管理modem策略。
  • 基于设备和网络当前状态,提供了多种配置项。
  • 指导modem该做什么。

2 为什么使用policy manager

弱耦合:

将配置与特定需求从modem核心代码中分离出来,独立成一个组件。

方便修改:

以XML的形式配置规则与策略。

动态配置:

XML中的策略规则在build版本时不参与编译。

3 policy manager架构与API

3.1 policy manager包括两部分:

数据库(用于保存当前配置);

规则引擎(逻辑部分)

3.2 上层架构:

3.3 Policy生效过程

1.初始化或更换SIM卡后读取policy

Policyman任务启动,读取/policyman/carrier_policy.xml,创建规则集合以提供给规则引擎。

2.Policyman注册三类事件

UIM事件

Serving System事件

Phone事件

此时Policyman发布配置项的初始值(可能从XML中得到,也可能是默认值),之后休眠,等待事件唤醒。

3.Policy规则触发

当监听的事件发生时,policyman判断是否满足了相应规则的预置条件。如果满足,policyman通过规则引擎执行该规则,并决定当前配置项的值。

4.发送配置更新

Policyman将配置项的当前值更新到数据库,如果有改动,则发送MSGR(message Router)消息,该消息只包含改动项

5.组件(主要是Call Manager)更新配置

通过监听 POLICYMAN_CFG_UPDATE_IND消息,获得更新的配置项。

4 如何修改Policyman XML

4.1 Policyman包含的XML文件

在EFS中的\policyman\目录:

4.2 三种类型:Lists, booleans, and timers

List

常用于配置MCC,PLMN,Bands,

用法:

<mcc_list name="{listname}"> {MCC set} </mcc_list> <plmn_list name="{listname}"> {PLMN set} </plmn_list> <rf_band_list name="{listname}"> {bands} </rf_band_list>

举例:

<!– MCC should be defined with 3 digits(XXX) --><mcc_list name="sxlte_mccs"> 302 310 311 312 313 </mcc_list><!– PLMN MNC can be defined with 3 (XXX-XX) or 2 (XXX-XX) digits --><plmn_list name="operators">
460-01 460-06 460-09
</plmn_list><!– Example of RF Band list -->
<rf_band_list name="rf_bands_home"><gw_bands base="none" ><include> 7 8 9 19 20 21 22 23 25 26 49 </include></gw_bands><lte_bands base="none" ><include> 0 1 2 3 4 5 6 9 11 13 19 28 29 37 39 41 65 </include></lte_bands>
</rf_band_list>

Booleans

用于根据条件,设定状态的开或关(true or false)。

Initial段定义初始值;

Values段定义根据条件的切换值。

用法:

<boolean_define name="{name}" initial="{true,false}" /><boolean_set name="{name}" value="{true,false}" /><boolean_set name="{name}">{condition}</boolean_set>

举例:

<!–- Boolean definition -->
<boolean_define name="in_home" initial="false" />
<!–- Set Boolean value -->
<boolean_set name="in_home" value="true" />
<!–- Set Boolean value based on condition, refer to conditions section -->
<boolean_set name="in_home"><location_mcc_in list="sxlte_mccs" />
</boolean_set>

Timers

用于追踪定期的Eventaction

在initial段定义timer,另外还需定义一个规则,包含start,stop,expiry handler。

用法:

<define_timer name="{name}" interval="{value}" units="{sec,min}"
id="{value}" />
<timer_start name="{name}" />
<timer_stop name="{name}" />
<expired_timer_handled name="{name}" />

举例:

<!–- Timer definition -->
<define_timer name="ue_mode_timer" interval="1" units="min" id="102" />
<!–- Start Timer -->
<timer_start name="noservice" />
<!–- Stop Timer -->
<timer_stop name="noservice" />
<!–- Condition to check if Timer has expired -->
<expired_timer_handled name="noservice" />

4.3 Policyman XML 结构

policy XML配置文件的结构包含一个元素以及随之一系列规则。

<?xml version="1.0" encoding="UTF-8"?>

Ex: <mcc_list name=“sxlte_mccs”> 455 460
</mcc_list>

Ex:

 <if><not>

<phone_operating_mode> ONLINE </phone_operating_mode>

      <fullrat_enter />

功能

XML定义下面三种功能:

l 根据MCC或PLMN,定义RAT和band list

l 定义了当特定事件(例如无服务)发生时要启动的timer

l 根据PLMN,定义CA组合

配置项


配置方法

RAT capability

Policy Manager使用<rat_capability>通知call
manager(CM)
哪些RAT可以搜索。CM结合用户设置的制式(例如,通过NV10或菜单)计算出最终的RATs.

用法:

<rat_capability
base="{none,hardware}">

     <include>

{G,W,T,L,C,H,5G}

</rat_capability>

举例:

<rat_capability
base=“none”>

C H G W L 5G

</rat_capability>

5 如何debug policy manager

Modem2G/3G/4G/5G:高通Policy Manager(概述,优势,架构与API,配置与debug方法)相关推荐

  1. Modem2G/3G/4G/5G:CBS:NCC认证:高通平台通过MBN控制Cell Broadcast Service(CBS)(有操作动画)

    By:GentlemanTsao 文章目录 Background: Evaluation: Solution Details: Operations: Background: 台湾的NCC认证,对ce ...

  2. Modem2G/3G/4G/5G:完整收录,2020最新MCC、MNC、运营商对照表,全球运营商MCCMNC查询列表

    说明: 列表元素结构 {MCC, MNC, 制式,简称,全称} 制式: GSM_900:2G DCS_1800:2G UMTS:3G LTE:4G 列表: {202, 1, MMGSDI_PLMN_N ...

  3. Modem2G/3G/4G/5G:通信领域常见名词缩写释义(VoLTE,CSFB,CA,RAT...)

    By:GentlemanTsao https://blog.csdn.net/GentelmanTsao 文章目录 CA: CSFB VoLTE LAA OOS RAT CA: Carrier agg ...

  4. Modem2G/3G/4G/5G:解决TDS-CDMA:HSDPA:能注册上call box,但无法连接(Integrity protection not activated)

    By:GentlemanTsao 文章目录 问题描述: log分析: 原因 解决方案 附:log确认UE当前NV设置 问题描述: TDS-CDMA:HSDPA测试,能注册上call box,但无法连接 ...

  5. 关于物联网2G/3G/4G/5G/NB模组开机后模组AT指令无反应/模块开机失败/模块开机不响应AT指令等问题

    一.背景 近些年物联网行业如日中天,越来越多的设备需要接入网络平台.因此无线通信模组便成为了连接物联网感知层和网络层的关键环节,属于底层硬件环节,具备其不可替代性,且无线通信模块与物联网终端存在一一对 ...

  6. NSA组网下2G/3G/4G/5G系统协同策略的研究

    [摘  要]从NSA组网原理出发,以中国移动的现网实际情况和需求为例,通过分析不同系统的特点,探讨了NSA模式下2G/3G/4G/5G组网下不同网络间的协同策略.经测试验证,该套策略对5G网络的覆盖. ...

  7. 1G,2G,3G,4G,5G有什么区别?5G的优势在哪?有什么应用?

    目录 1G,2G,3G,4G,5G的区别 5G的应用 5G技术的突出特点 5G技术在物联网领域的广阔应用前景 5G在自动驾驶领域的应用 1G,2G,3G,4G,5G的区别 1G,2G,3G,4G和5G ...

  8. 什么是1G/2G/3G/4G/5G

    什么是1G/2G/3G/4G/5G 参考:http://www.360doc.com/content/14/1213/22/5458405_432718054.shtml 介绍 1G:表示第一代移动通 ...

  9. 一文让你读懂——什么是1G,2G,3G,4G,5G

    一文让你读懂--什么是1G,2G,3G,4G,5G 无线通信日新月异,现在我们已经进入到了5G时代.5G代表了更快的速度,更低的延时,更多的链接数,它在人们的生活中所占有的比重和所起的作用越来越大.那 ...

最新文章

  1. 用python计算邮费-python习题1-最大的不可支付邮资问题
  2. Python按行读取文件、写文件
  3. js 区分 safari chrome iso
  4. 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
  5. python 把xml中含有特殊字段的部分提取出来_Python: 爬虫网页解析工具lxml.html(一)...
  6. PHP如何大幅度提升运行效率? -- 把它编译成机器码!
  7. svm python 模型绘图_1SVM处理数据并绘图
  8. 关于Navicat连接本地数据库失败,报错2003
  9. input输入框提示语
  10. 手机5g什么时候普及_5g什么时候普及民用
  11. MATLAB 中 X轴修改成特定的坐标
  12. 中式客厅装修的特点 亦古亦今的惊艳每一家
  13. JS 开启 win10 触屏键盘
  14. Pyecharts绘制阶梯图
  15. (1)1999~2021 年中国城市统计年鉴面板数据(含地级市面板、县级市面板和主要指标)(2)香港统计年刊(3)第一到第七次的人口普查数据(4)全国省市县-五六七普人口数据(5)国际统计年鉴
  16. echarts社区(多样化echarts图表)
  17. typecpd协议规范 C语言,谁能详细介绍USB Type C各个P位的作用,如Vconn和Vbus和CC的具体作用...
  18. SlickEdit V21 2016 破解教程,win linux mac
  19. 如何下载外文期刊文献,怎么下载又快又省力!
  20. windows7旗舰版32位JAVA安装_Windows7旗舰版32位Oracle10g的安装和卸载

热门文章

  1. 数据库运维的一些操作
  2. 572 另一棵树的子树
  3. Android 用adb pull或push 拷贝手机文件到到电脑上
  4. 基于短消息的远程家电红外遥控系统
  5. 达梦数据库DM8之导入导出参数详解
  6. 动态规划之套汇问题(思考分析、解决、算法模板)
  7. 欧姆龙平替国产大货—JY-V640半导体晶元盒读写器
  8. Trustview——打响文档安全保卫战
  9. React map遍历点击获取key
  10. 1324: 小周的烦恼