aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rlc.h
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-06-06 20:01:53 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-06-06 20:01:53 +0000
commit318e86e2d74ca020786523bd8afa5f495cd16f72 (patch)
tree2c3287b9aa8d8f4f1c6bb9ef6cc617cb55ed09c5 /epan/dissectors/packet-rlc.h
parentaf0e8c25d0adde3728950906019a7186879de94f (diff)
From Pascal Quantin:
Add the following enhancements to the UMTS RLC dissector (as specified in 3GPP 25.322 v9.2.0): - UDP framing protocol to allow dissection of RLC PDUs over UDP (like what is done for LTE MAC/RLC/PDCP protocols) - 15 bits Length Indicator support (both with variable and fixed LI size) - Poll type SUFI - enhanced dissection of LIST, Relative List and Bitmap SUFI - dissection of Reset and Reset Ack Control PDU - an option to decode RLC headers only - an option to skip SDU reassembly svn path=/trunk/; revision=37576
Diffstat (limited to 'epan/dissectors/packet-rlc.h')
-rw-r--r--epan/dissectors/packet-rlc.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rlc.h b/epan/dissectors/packet-rlc.h
index 875f0b5bd8..5a6f5a53bd 100644
--- a/epan/dissectors/packet-rlc.h
+++ b/epan/dissectors/packet-rlc.h
@@ -27,12 +27,84 @@ enum rlc_mode {
RLC_AM
};
+enum rlc_li_size {
+ RLC_LI_VARIABLE,
+ RLC_LI_7BITS,
+ RLC_LI_15BITS
+ };
+
#define MAX_RLC_CHANS 64
typedef struct rlc_info
{
guint32 urnti[MAX_RLC_CHANS];
guint8 mode[MAX_RLC_CHANS];
guint8 rbid[MAX_RLC_CHANS];
+ enum rlc_li_size li_size[MAX_RLC_CHANS];
gboolean ciphered[MAX_RLC_CHANS];
gboolean deciphered[MAX_RLC_CHANS];
} rlc_info;
+
+/*****************************************************************/
+/* UDP framing format */
+/* ----------------------- */
+/* Several people have asked about dissecting RLC by framing */
+/* PDUs over IP. A suggested format over UDP has been defined */
+/* and implemented by this dissector, using the definitions */
+/* below. A link to an example program showing you how to encode */
+/* these headers and send RLC PDUs on a UDP socket is provided */
+/* at http://wiki.wireshark.org/RLC */
+/* */
+/* A heuristic dissecter (enabled by a preference) will */
+/* recognise a signature at the beginning of these frames. */
+/* Until someone is using this format, suggestions for changes */
+/* are welcome. */
+/*****************************************************************/
+
+
+/* Signature. Rather than try to define a port for this, or make the
+ port number a preference, frames will start with this string (with no
+ terminating NULL */
+#define RLC_START_STRING "umts-rlc"
+
+/* Conditional fields. The channel type or RLC mode should be present.
+ If the channel type is present, the RLC mode will be ignored.
+ If none of them is present, the decoding will be skipped.
+ The RLC mode tag uses the values from the rlc_mode enum. */
+
+#define CHANNEL_TYPE_UNSPECIFIED 0
+#define CHANNEL_TYPE_PCCH 1
+#define CHANNEL_TYPE_CCCH 2
+#define CHANNEL_TYPE_DCCH 3
+#define CHANNEL_TYPE_PS_DTCH 4
+#define CHANNEL_TYPE_CTCH 5
+
+#define RLC_CHANNEL_TYPE_TAG 0x02
+/* 1 byte */
+
+#define RLC_MODE_TAG 0x03
+/* 1 byte, enum rlc_mode value */
+
+/* Optional fields. Attaching this info to frames will allow you
+ to show you display/filter/plot/add-custom-columns on these fields, so should
+ be added if available.
+ The format is to have the tag, followed by the value (there is no length field,
+ its implicit from the tag) */
+
+#define DIRECTION_UPLINK 0
+#define DIRECTION_DOWNLINK 1
+
+#define RLC_DIRECTION_TAG 0x04
+/* 1 byte */
+
+#define RLC_URNTI_TAG 0x05
+/* 4 bytes, network order */
+
+#define RLC_RADIO_BEARER_ID_TAG 0x06
+/* 1 byte */
+
+#define RLC_LI_SIZE_TAG 0x07
+/* 1 byte, enum rlc_li_size value */
+
+/* RLC PDU. Following this tag comes the actual RLC PDU (there is no length, the PDU
+ continues until the end of the frame) */
+#define RLC_PAYLOAD_TAG 0x01