Wireshark  2.9.0-477-g68ec514b
The Wireshark network protocol analyzer
packet-pdcp-nr.h
1 /* packet-pdcp-nr.h
2  *
3  * Martin Mathieson
4  * Wireshark - Network traffic analyzer
5  * By Gerald Combs <gerald@wireshark.org>
6  * Copyright 1998 Gerald Combs
7  *
8  * SPDX-License-Identifier: GPL-2.0-or-later
9  */
10 
11 
12 #include "packet-rohc.h"
13 
14 /* Direction */
15 #define DIRECTION_UPLINK 0
16 #define DIRECTION_DOWNLINK 1
17 
18 enum pdcp_nr_plane
19 {
20  NR_SIGNALING_PLANE = 1,
21  NR_USER_PLANE = 2
22 };
23 
24 typedef enum NRBearerType
25 {
26  Bearer_DCCH=1,
27  Bearer_BCCH_BCH=2,
28  Bearer_BCCH_DL_SCH=3,
29  Bearer_CCCH=4,
30  Bearer_PCCH=5,
31 } NRBearerType;
32 
33 
34 #define PDCP_NR_SN_LENGTH_12_BITS 12
35 #define PDCP_NR_SN_LENGTH_18_BITS 18
36 
37 
38 
39 /* Info attached to each nr PDCP/RoHC packet */
40 typedef struct pdcp_nr_info
41 {
42  /* Bearer info is needed for RRC parsing */
43  guint8 direction;
44  guint16 ueid;
45  NRBearerType bearerType;
46  guint8 bearerId;
47 
48  /* Details of PDCP header */
49  enum pdcp_nr_plane plane;
50  guint8 seqnum_length;
51 
52  /* RoHC settings */
53  rohc_info rohc;
54 
55  guint8 is_retx;
56 
57  /* Used by heuristic dissector only */
58  guint16 pdu_length;
59 } pdcp_nr_info;
60 
61 
62 
63 /*****************************************************************/
64 /* UDP framing format */
65 /* ----------------------- */
66 /* Several people have asked about dissecting PDCP by framing */
67 /* PDUs over IP. A suggested format over UDP has been defined */
68 /* and implemented by this dissector, using the definitions */
69 /* below. */
70 /* */
71 /* A heuristic dissecter (enabled by a preference) will */
72 /* recognise a signature at the beginning of these frames. */
73 /* Until someone is using this format, suggestions for changes */
74 /* are welcome. */
75 /*****************************************************************/
76 
77 
78 /* Signature. Rather than try to define a port for this, or make the
79  port number a preference, frames will start with this string (with no
80  terminating NULL */
81 #define PDCP_NR_START_STRING "pdcp-nr"
82 
83 /* Fixed fields:
84  - plane (1 byte) */
85 
86 /* Conditional field. This field is mandatory in case of User Plane PDCP PDU.
87  The format is to have the tag, followed by the value (there is no length field,
88  it's implicit from the tag). The allowed values are defined above. */
89 
90 #define PDCP_NR_SEQNUM_LENGTH_TAG 0x02
91 /* 1 byte */
92 
93 /* Optional fields. Attaching this info should be added if available.
94  The format is to have the tag, followed by the value (there is no length field,
95  it's implicit from the tag) */
96 
97 #define PDCP_NR_DIRECTION_TAG 0x03
98 /* 1 byte */
99 
100 #define PDCP_NR_BEARER_TYPE_TAG 0x04
101 /* 1 byte */
102 
103 #define PDCP_NR_BEARER_ID_TAG 0x05
104 /* 1 byte */
105 
106 #define PDCP_NR_UEID_TAG 0x06
107 /* 2 bytes, network order */
108 
109 #define PDCP_NR_ROHC_COMPRESSION_TAG 0x07
110 /* 0 byte */
111 
112 /* N.B. The following ROHC values only have significance if rohc_compression
113  is in use for the current channel */
114 
115 #define PDCP_NR_ROHC_IP_VERSION_TAG 0x08
116 /* 1 byte */
117 
118 #define PDCP_NR_ROHC_CID_INC_INFO_TAG 0x09
119 /* 0 byte */
120 
121 #define PDCP_NR_ROHC_LARGE_CID_PRES_TAG 0x0A
122 /* 0 byte */
123 
124 #define PDCP_NR_ROHC_MODE_TAG 0x0B
125 /* 1 byte */
126 
127 #define PDCP_NR_ROHC_RND_TAG 0x0C
128 /* 0 byte */
129 
130 #define PDCP_NR_ROHC_UDP_CHECKSUM_PRES_TAG 0x0D
131 /* 0 byte */
132 
133 #define PDCP_NR_ROHC_PROFILE_TAG 0x0E
134 /* 2 bytes, network order */
135 
136 
137 /* PDCP PDU. Following this tag comes the actual PDCP PDU (there is no length, the PDU
138  continues until the end of the frame) */
139 #define PDCP_NR_PAYLOAD_TAG 0x01
140 
141 
142 /*
143  * Editor modelines - http://www.wireshark.org/tools/modelines.html
144  *
145  * Local variables:
146  * c-basic-offset: 4
147  * tab-width: 8
148  * indent-tabs-mode: nil
149  * End:
150  *
151  * vi: set shiftwidth=4 tabstop=8 expandtab:
152  * :indentSize=4:tabSize=8:noTabs=true:
153  */
Definition: packet-rohc.h:37
Definition: packet-pdcp-nr.h:40