paul 发表于 2013-12-29 22:19
规范里定义的MME-UE-S1AP-ID是4个byte,消息里看到5个字节,第一个字节c0是什么意思?
36413里有定义这个字 ...
是4个字节。你把37773326转换成十六进制是240600E,不包括C0。查了下网上的资料,这个应该是ASN.1的编码的要求,不用管它。都有这个前缀。wireshark官方的bug频道也给出了这个说明。 www.wireshark.org/lists/wireshark-bugs/201001/msg00545.html。 Actually, the length of MME-UE-S1AP-ID is 4 bytes. This byte 30 that is C0 in
other messages is used for ASN.1 coding for the UE-S1AP-ID-pair, which
according to 36.413 is Sequence, so the meaning of that byte would be:
30 ASN.1 format: Universal/Constructed/Sequence In other messages, where MME-UE-S1AP-ID and ENB-UE-S1AP-ID come separate, not
in this UE-S1AP-ID-pair field, the equivalent byte has a different content:
C0 ASN.1 format: Private/Primitive/... That´s why they are different. I was wrong to think that 30 is part of the
MME-UE-S1AP-ID. Here is the corrected decoding: 00 Critically - Reject
07 Open Type Length
30 ASN.1 type Universal/Constructed/Sequence <----problem happens here
21 MME-UE-S1AP-ID Byte 1
40 MME-UE-S1AP-ID Byte 2
00 MME-UE-S1AP-ID Byte 3
0F MME-UE-S1AP-ID Byte 4
00 eNB-UE-S1AP-ID Byte 1
02 eNB-UE-S1AP-ID Byte 2
00 02 Cause
|