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
This commit is contained in:
parent
af0e8c25d0
commit
318e86e2d7
|
@ -189,6 +189,7 @@ static guint16 assign_rb_info(tvbuff_t *tvb, packet_info *pinfo, guint16 offset,
|
|||
rlcinf->urnti[i] = urnti;
|
||||
rlcinf->ciphered[i] = ciphered;
|
||||
rlcinf->deciphered[i] = deciphered;
|
||||
rlcinf->li_size[i] = RLC_LI_VARIABLE;
|
||||
|
||||
macinf->ctmux[i] = ctmux ? TRUE : FALSE;
|
||||
switch (content) {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue