内容发布更新时间 : 2024/12/23 14:49:43星期一 下面是文章的全部内容请认真阅读。
十分钟教你看懂信令
熟记信令流程是我们工作中必不可少的,UE和RNS之间,RNS系统内部几个设备之间的每一次交互都对应着一个信令流程,一般情况下,我们可以通过一个信令流程来确定一次交互的进行,只需要了解信令之间的前后顺序就可以搞定,但是在一些时候(比如确定业务的速率,判断切换的方式,查看失败的原因),可能就需要打开某一条信令,看看该条信令的某些关键字段的值来更准确地判断,但是如何在复杂的信令内容中弄清每一个字符的意义?我们需要对信令的结构有一定的了解。
下面要介绍的,不是针对特定的某一条信令的内容是什么,我们应该看哪些值,而是信令内容的组成结构,从而能够很轻松的在复杂的信令内容中找到关键字。 一.设备中信令的来源
通过后台的信令跟踪工具,我们可以抓到包括Uu口,Iub口,Iu口的信令,这些信令的内容,其实就是单板之间完成一个流程的基础,当我们打开信令跟踪的时候,等于是在前台单板建立了一个任务,让单板将一些显示信令消息上报到后台,便于我们分析流程,通过这个我们就可以知道,即使我们不打开信令跟踪,设备之间也存在信令交互,而且一条信令只是一个流程处理的最终表现形式,在形成这条信令的背后已经涉及了很多模块之间的消息传递。不同的是信令是协议规定的内容,是一个设备对外的官方语言,而模块的消息传递是自己设备内部的实现方式。
二.代表信令的内容字段
信令内容其实就是由一套完整的结构体的内容组成,只是由于一条消息可能通过很多事件触发,从而导致调用的结构体的内容不同。我们知道引用一个结构体内的变量,就是通过点“.”这个符号一层一层向下延伸的。比如
RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.rrc_StateIndicator = TRRC_cell_DCH 可以看出该字段是经过很多个结构体内一层一层的数据结构嵌套下来的,每一次向下加的点就是程序执行一个单步的过程,最后完成一个完整的内容的封装。 我们最关心的,其实就是这一长串结构体中最后那个字段代表的含义。这些字段的大多数都是由简单的单词或者单词的缩写构成的,而字段的值可以直接表示内容,比如RRC的信令,也可以是编码了的,比如UE和CN之间的信令(多数可以通过解码工具来得到具体内容),还可以在协议的“消息及信息元素的功能性描述及内容”找到对应的解释。 对于一个完整的字段来说,经常会出现我们将前面的结构名称都搞清楚了,但是最后一个关键字符却是一个字母,常见的如 t,m,u,n,它们是代表什么?就寻找关键字段来说,可能不需要了解了,但是如果要完全了解信令的结构,就继续往下看吧。 一、
代表信令的结构字段
例:RRC_DL_DCCH_MSG.message.t = 15
RRC_DL_DCCH_MSG.message.u.radioBearerSetup.t = 2 这个t究竟是什么意思?下面告诉你
typedef struct EXTERN TRRC_IntraFreqEvent {
\%@MSCBSC 移动通信论坛'u1|8J.N&f-IMSCBSC 移动通信论坛,G7s-N+w$b*n%Lwww.mscbsc.com#R0\\/| y.s;{%J-@\www.mscbsc.com6s1N!B8u2z0@'bmscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。$Y;^(b(y(I,y| 国内领先的通信技术论坛:^ f5P,m,g)K+t| 国内领先的通信技术论坛N4e'~5F3y4^8u&imscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。&t%I$d(r$M9l'b0}+Tj4S8S2^4\\.t'Rint t;
union {
/* t = 1 */
TRRC_Event1a *e1a;
/* t = 2 */
TRRC_Event1b *e1b;
移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单:K)K4W9D m4s+|;Mmscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。$_9Y6p(J:F3E0q'移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单8]+K#h2E5p;}7y移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单:F)y2b*Z6l9|%s
/* t = 3 */
TRRC_Event1c *e1c;
/* t = 4 */
/* t = 5 */
TRRC_Event1e *e1e;
/* t = 6 */
mscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。;T+w+D6I2k%Zwww.mscbsc.com&Y0L'I9i\移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单#v8j)k3V9RMSCBSC 移动通信论坛1W$^,q2O4_4j\TRRC_Event1f *e1f;
www.mscbsc.com'p?h(X(h(p+C7m*]&\\;L-A | 国内领先的通信技术论坛8_.z4a3p(jwww.mscbsc.com1]0p.|:z7s
/* t = 7 */
/* t = 8 */
TRRC_ThresholdUsedFrequencye1h;
/* t = 9 */
TRRC_ThresholdUsedFrequency e1i; } u;
} TRRC_IntraFreqEvent;
移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单Z+C l*L\MSCBSC 移动通信论坛L;S)q-Y5^3b5R-SMSCBSC 移动通信论坛6S.F6])N$t,n8n$s%v)z3u
MSCBSC 移动通信论坛5_%y4M)o\8{2O;t3B&\\typedef struct EXTERN TRRC_UL_TimingAdvanceControl_LCR_r4_enabled {
人才求职招聘网络优化通信工程出差住宿通信企业黑名单2M$x%r,n\移动通信通信工程师的家园通信
移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单%R(u-o&u e
struct {
| 国内领先的通信技术论坛8[$W0H*{!H%f)[0Ounsigned ul_SynchronisationParametersPresent : 1;
:d%unsigned synchronisationParametersPresent : 1; } m;
4f4u*i%~8s1S5{+[www.mscbsc.com,{:@;|2n8z-N2R
TRRC_UL_SynchronisationParameters_r4 ul_SynchronisationParameters;
TRRC_SynchronisationParameters_r4 synchronisationParameters;
} TRRC_UL_TimingAdvanceControl_LCR_r4_enabled;
以上一个同频测量事件的定义,它是一个结构体,使用了联合(union)这种定义方式,联合的意思就是在一个结构体中定义多种类型相似的数据结构,但是每一次只能引用其中的一种,为了能方便的使用这些结构体,定义了一个变量t, t表示一个联合体中的结构索引,可以使用变量t的值来判别什么时候使用该联合中的一种结构体。对于一条信令来说,可能有好几种事件都能触发它,但是不同的事件对应该条信令的内容不同(比如测量报告中上报的事件1g,2a,测量控制包括开始测量,修改测量,终止测量),我们就使用t来确定信令中某一个部分的具体内容。而u就代表一个t确定了之后的结构体, 结构体中的变量就通过u.xxxx来引用了,比如:
RRC_DL_DCCH_MSG.message.t = 15(表示使用联合中t=15对应的结构体) RRC_DL_DCCH_MSG.message.u.radioBearerSetup.t = 2(u中定义了联合,t=2)
MSCBSC 移动通信论坛E e1k\_#r | 国内领先的通信技术论坛*g'E8X6a#^mscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。+t9B)r5V0]$S/@$]'K*e2?/y6x6F6}&_9q&Ywww.mscbsc.com K7n-V3d2v0u2^+h)l
而m表示协议中定义的可选项是否存在,它总是和Present对应的,=1则后面会再列出该结构的内容,=0则不列出。比如:
RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.m.v4d0NonCriticalExtensionsPresent = 1
RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.m.integrityProtectionModeInfoPresent = 0
mscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。-l'F6W8J y0q!R9O'm,I | 国内领先的通信技术论坛\5n9|,v3g;k#K!]
RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.m.cipheringModeInfoPresent = 0 而字符n,通常是表示它后面的结构体数组元素的个数。 所以通过上面对信令的内容字段和结构字段的介绍,能够帮组我们了解信令的基本结构框架,这样能更清晰,简单地找到那些关键字段,而不比纠缠在t=2究竟是什么意思这些问题上了。
可参考阅读一篇关于信元解读的常识文档《25.331信令解读必备常识.doc》
移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单-?;e#Z3{.a移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单(F+h:Z:q2I1A移动通信通信工程师的家园通信人才求职招聘网络优化通信工程出差住宿通信企业黑名单#o8D2l$_([ J\(z
MSCBSC 移动通信论坛+x0k&P8Z8G9e#r&O
[ 本帖最后由 tankfish 于 2010-10-21 19:27 编辑 ]