对CSN.1协议的一种通用描述解析方式.docVIP

  • 6
  • 0
  • 约1.84万字
  • 约 17页
  • 2017-12-14 发布于河南
  • 举报
对CSN.1协议的一种通用描述解析方式

对CSN.1协议的一种通用描述/解析方式 根据CSN.1协议的描述,我实现了一种相对通用的程序描述方式,供大家参考. ??? 项目的基本类型可分为三种:??T类型和V类型和C类型, T类型表示这是一个树类型,后面跟其中包含的项目个数.V类型表示这是一个单独项目,后面跟其长度信息 (bits_len), C类型表示这是一个项目组,后面跟包含的项目数量. ???? SI1 Rest Octets ::= ?????{L |H NCH Position : bit (5) } ???? Band indicator ???? spare padding ; ???? Band indicator ::= ???? BAND_INDICATOR : bit == L -- ARFCN indicates 1800 band ???? | BAND_INDICATOR : bit == H ; -- ARFCN indicates 1900 band ??? ?以上面的格式为例,应该表示为: ???? {C, 2, T, 1, V, 5, V, 1 } ?????其中C表示这是一个项目组合类型,后面的2表示包含两项, 即NCH Position和Band indicator,?后面的Band indicator是一个V类型,直接跟长度信息即可.如果NCH Position存在时,其包含一项, 长度为5个bit ? ? ? ? ? ? ???? 当某个子树或者子项的存在是可选择的,此时上面的程序描述方法显而易见是无法实现的,我又设想了一个新的类别,O, 根据类别O的实际数据来自动选择其后面的子项或子树。 ???? 以SI 4 Rest中的某项为例 { SI4 Rest Octets_O {L Break indicator | H SI Rest Octets_S} spare padding } -- truncation allowed, bits L assumed; ? ? 在SI4 Rest Octets_O后面的两项内容的存在是由前面的判断字来决定的 ? ? 这样{L Break indicator | H SI Rest Octets_S}就可以描述为 ? ? O,2,??Break indicator, SI Rest Octets_S ??? ? ? ???? CSN.1协议的某些描述为队列类型,因此又新增加一种类型模式,L, 表示List类型(Array),后面跟最大Array长度。 ???? 以下面的某个描述为例,LSA ID information很明显是一个队列模式,如果LSA identify的后续bit为0的话,表示队列结束,否则表示后续数据有效。 ? ??? LSA ID information ::=? ?? ?LSA identity ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? {0 | 1 LSA ID information} ; ???? ??? 源描述: ??????T, 2,?? ?????????????O, 2,?? ????????????????????V, 24,? ????????????????????V, 10, ?????????????T, 1,? ????????????????????V, 1 ? ???可以变为 : ????? T,??1 ?????????????L, 8 ???????????????????O, 2 ?????????????????????????V, 24 ?????????????????????????V, 10? ??????因为SI 4 rest 最大包含10个 byte, 这样即使全是Short??LSA, 最大只能容纳80/10 = 8个LSA identify, 因此设最大值为8.? ?? ????? 在SI 13的Rest Octets中的GPRS MA中包含类似下面的结构: ? ?{?? MA_LENGTH : bit (6) ? ?? ? MA_BITMAP : bit (val(MA_LENGTH) + 1) ? ?? 用前面的V类型来描述显然是不合适的,因为后面的BITMAP是变长的,因此又增加一种类型B ? ???B 表示Bitmap类型,其后面跟len所占bit len, 再后就是 len +1长的数据。 (类似字符串) ? ???B, 6 = V, 6, V, len+ 1 (len is value form first V) ? ?????某些B类型的First Bit并不存在, 因此又增加一种类型为A类

文档评论(0)

1亿VIP精品文档

相关文档