I'm writing a dissector in wireshark for parse received packets. As we know there three types of RLC packet, that are TM, UM and AM RLC PDU. But how could I know the type of received packet?

有帮助吗?

解决方案

There is an LTE RLC dissector in the official sources, see: - https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob;f=epan/dissectors/packet-rlc-lte.c - https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob;f=epan/dissectors/packet-rlc-lte.h

There are several pieces of information, including the RLC mode, that are not contained in the frame and must be told to the dissector in order for it to decode the PDU properly. In the header file, see struct rlc_lte_info.

It is then up to the calling dissector, e.g. the LTE MAC dissector, to correctly fill in this context information before calling the RLC dissector.

其他提示

TM RLC PDUs are usually control channel information (BCCH, DL/UL CCCH and PCCH) This where you can indirectly discern TM from AM/UM RLC PDUs. As with UMTS there is no specific bit flag to tell you what mode the PDU is. example excerpt from specs docs.

3GPP TS 36.322 Evolved Universal Terrestial Radio Access (E-UTRA) ....... page 11

An AM RLC entity delivers/receives the following RLC data PDUs:

  • AMD PDU;

  • AMD PDU segment.

An AM RLC entity delivers/receives the following RLC control PDU:

  • STATUS PDU.

.......

Thus you have to follow to the letter what the RLC rules are implemented on this release of the specs. You have to check if line 344 in (https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob;f=epan/dissectors/packet-rlc-lte.c) follows the rules in 3GPP TS 36.322 Evolved Universal Terrestial Radio Access (E-UTRA).

By the value of logical channel ID.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top