Modem2G/3G/4G/5G:高通Policy Manager(概述,优势,架构与API,配置与debug方法)
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
用于追踪定期的Event与action。
在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方法)相关推荐
- Modem2G/3G/4G/5G:CBS:NCC认证:高通平台通过MBN控制Cell Broadcast Service(CBS)(有操作动画)
By:GentlemanTsao 文章目录 Background: Evaluation: Solution Details: Operations: Background: 台湾的NCC认证,对ce ...
- 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 ...
- Modem2G/3G/4G/5G:通信领域常见名词缩写释义(VoLTE,CSFB,CA,RAT...)
By:GentlemanTsao https://blog.csdn.net/GentelmanTsao 文章目录 CA: CSFB VoLTE LAA OOS RAT CA: Carrier agg ...
- Modem2G/3G/4G/5G:解决TDS-CDMA:HSDPA:能注册上call box,但无法连接(Integrity protection not activated)
By:GentlemanTsao 文章目录 问题描述: log分析: 原因 解决方案 附:log确认UE当前NV设置 问题描述: TDS-CDMA:HSDPA测试,能注册上call box,但无法连接 ...
- 关于物联网2G/3G/4G/5G/NB模组开机后模组AT指令无反应/模块开机失败/模块开机不响应AT指令等问题
一.背景 近些年物联网行业如日中天,越来越多的设备需要接入网络平台.因此无线通信模组便成为了连接物联网感知层和网络层的关键环节,属于底层硬件环节,具备其不可替代性,且无线通信模块与物联网终端存在一一对 ...
- NSA组网下2G/3G/4G/5G系统协同策略的研究
[摘 要]从NSA组网原理出发,以中国移动的现网实际情况和需求为例,通过分析不同系统的特点,探讨了NSA模式下2G/3G/4G/5G组网下不同网络间的协同策略.经测试验证,该套策略对5G网络的覆盖. ...
- 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 ...
- 什么是1G/2G/3G/4G/5G
什么是1G/2G/3G/4G/5G 参考:http://www.360doc.com/content/14/1213/22/5458405_432718054.shtml 介绍 1G:表示第一代移动通 ...
- 一文让你读懂——什么是1G,2G,3G,4G,5G
一文让你读懂--什么是1G,2G,3G,4G,5G 无线通信日新月异,现在我们已经进入到了5G时代.5G代表了更快的速度,更低的延时,更多的链接数,它在人们的生活中所占有的比重和所起的作用越来越大.那 ...
最新文章
- 用python计算邮费-python习题1-最大的不可支付邮资问题
- Python按行读取文件、写文件
- js 区分 safari chrome iso
- 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
- python 把xml中含有特殊字段的部分提取出来_Python: 爬虫网页解析工具lxml.html(一)...
- PHP如何大幅度提升运行效率? -- 把它编译成机器码!
- svm python 模型绘图_1SVM处理数据并绘图
- 关于Navicat连接本地数据库失败,报错2003
- input输入框提示语
- 手机5g什么时候普及_5g什么时候普及民用
- MATLAB 中 X轴修改成特定的坐标
- 中式客厅装修的特点 亦古亦今的惊艳每一家
- JS 开启 win10 触屏键盘
- Pyecharts绘制阶梯图
- (1)1999~2021 年中国城市统计年鉴面板数据(含地级市面板、县级市面板和主要指标)(2)香港统计年刊(3)第一到第七次的人口普查数据(4)全国省市县-五六七普人口数据(5)国际统计年鉴
- echarts社区(多样化echarts图表)
- typecpd协议规范 C语言,谁能详细介绍USB Type C各个P位的作用,如Vconn和Vbus和CC的具体作用...
- SlickEdit V21 2016 破解教程,win linux mac
- 如何下载外文期刊文献,怎么下载又快又省力!
- windows7旗舰版32位JAVA安装_Windows7旗舰版32位Oracle10g的安装和卸载