RLC-NR: initial dissector submission based on v15.0.0

Change-Id: If469bb8d1c86462238bc363a5794da935c74bb1e
Reviewed-on: https://code.wireshark.org/review/26474
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
This commit is contained in:
Pascal Quantin 2018-03-14 16:31:41 +01:00 committed by Alexis La Goutte
parent d1c1348601
commit 86cf7e7169
5 changed files with 1412 additions and 0 deletions

View File

@ -118,6 +118,7 @@ Lustre Filesystem
Nano / RaiBlocks Cryptocurrency Protocol (UDP)
Network Functional Application Platform Interface (NFAPI) Protocol
New Radio Radio Resource Control protocol
New Radio Radio Link Control protocol
NXP 802.15.4 Sniffer Protocol
PFCP (Packet Forwarding Control Protocol)
Protobuf (Protocol Buffers)

View File

@ -485,6 +485,7 @@ set(DISSECTOR_PUBLIC_HEADERS
packet-rdt.h
packet-reload.h
packet-rlc-lte.h
packet-rlc-nr.h
packet-rmi.h
packet-rmt-common.h
packet-rohc.h
@ -1538,6 +1539,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-rip.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ripng.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-rlc-lte.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-rlc-nr.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-rlm.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-rlogin.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-rmcp.c

View File

@ -1159,6 +1159,7 @@ DISSECTOR_SRC = \
packet-rip.c \
packet-ripng.c \
packet-rlc-lte.c \
packet-rlc-nr.c \
packet-rlm.c \
packet-rlogin.c \
packet-rmcp.c \
@ -1742,6 +1743,7 @@ DISSECTOR_INCLUDES = \
packet-rdt.h \
packet-reload.h \
packet-rlc-lte.h \
packet-rlc-nr.h \
packet-rmi.h \
packet-rmt-common.h \
packet-rohc.h \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,108 @@
/* packet-rlc-nr.h
*
* Pascal Quantin
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef PACKET_RLC_NR_H
#define PACKET_RLC_NR_H
/* rlcMode */
#define RLC_TM_MODE 1
#define RLC_UM_MODE 2
#define RLC_AM_MODE 4
/* direction */
#define DIRECTION_UPLINK 0
#define DIRECTION_DOWNLINK 1
/* bearerType */
#define BEARER_TYPE_CCCH 1
#define BEARER_TYPE_BCCH_BCH 2
#define BEARER_TYPE_PCCH 3
#define BEARER_TYPE_SRB 4
#define BEARER_TYPE_DRB 5
#define BEARER_TYPE_BCCH_DL_SCH 6
/* sequenceNumberLength */
#define TM_SN_LENGTH_0_BITS 0
#define UM_SN_LENGTH_6_BITS 6
#define UM_SN_LENGTH_12_BITS 12
#define AM_SN_LENGTH_12_BITS 12
#define AM_SN_LENGTH_18_BITS 18
/* Info attached to each NR RLC frame */
typedef struct rlc_nr_info
{
guint8 rlcMode;
guint8 direction;
guint8 sequenceNumberLength;
guint16 ueid;
guint16 bearerType;
guint16 bearerId;
guint16 pduLength;
} rlc_nr_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 heuristic dissector (enabled by a preference) will */
/* recognise a signature at the beginning of these frames. */
/*****************************************************************/
/* 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_NR_START_STRING "rlc-nr"
/* Fixed field. This is followed by the following 2 mandatory field:
- rlcMode (1 byte)
- sequenceNumberLength (1 byte)
(where the allowed values are defined above) */
/* 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,
it's implicit from the tag) */
#define RLC_NR_DIRECTION_TAG 0x02
/* 1 byte */
#define RLC_NR_UEID_TAG 0x03
/* 2 bytes, network order */
#define RLC_NR_BEARER_TYPE_TAG 0x04
/* 1 byte */
#define RLC_NR_BEARER_ID_TAG 0x05
/* 1 byte */
/* 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_NR_PAYLOAD_TAG 0x01
#endif
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/