add wireshark header files
This commit is contained in:
@@ -379,6 +379,7 @@ void init_gNB_Tpool(int inst) {
|
|||||||
sprintf(ul_pool+2+s_offset,",-1");
|
sprintf(ul_pool+2+s_offset,",-1");
|
||||||
s_offset += 3;
|
s_offset += 3;
|
||||||
}
|
}
|
||||||
|
strcpy(ul_pool, "n");
|
||||||
initTpool(ul_pool, gNB->threadPool, false);
|
initTpool(ul_pool, gNB->threadPool, false);
|
||||||
// ULSCH decoder result FIFO
|
// ULSCH decoder result FIFO
|
||||||
gNB->respDecode = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
gNB->respDecode = (notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
#include "NR_BCCH-BCH-Message.h"
|
#include "NR_BCCH-BCH-Message.h"
|
||||||
#include "rrc_gNB_UE_context.h"
|
#include "rrc_gNB_UE_context.h"
|
||||||
#include <openair2/RRC/NR/MESSAGES/asn1_msg.h>
|
#include <openair2/RRC/NR/MESSAGES/asn1_msg.h>
|
||||||
|
#include <openair2/UTIL/OPT/opt.h>
|
||||||
|
|
||||||
|
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
@@ -207,6 +208,7 @@ nr_rrc_data_req(
|
|||||||
message_p);
|
message_p);
|
||||||
LOG_I(NR_RRC,"send RRC_DCCH_DATA_REQ to PDCP\n");
|
LOG_I(NR_RRC,"send RRC_DCCH_DATA_REQ to PDCP\n");
|
||||||
|
|
||||||
|
//trace_NRpdu(DIRECTION_DOWNLINK, message_buffer, sdu_sizeP, 0, WS_M_RNTI, ctxt_pP->rnti, ctxt_pP->frame, ctxt_pP->subframe,0, 0);
|
||||||
/* Hack: only trigger PDCP if in CU, otherwise it is triggered by RU threads
|
/* Hack: only trigger PDCP if in CU, otherwise it is triggered by RU threads
|
||||||
* Ideally, PDCP would not neet to be triggered like this but react to ITTI
|
* Ideally, PDCP would not neet to be triggered like this but react to ITTI
|
||||||
* messages automatically */
|
* messages automatically */
|
||||||
|
|||||||
@@ -0,0 +1,142 @@
|
|||||||
|
/* packet-mac-nr.h
|
||||||
|
*
|
||||||
|
* Martin Mathieson
|
||||||
|
*
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* radioType */
|
||||||
|
#define FDD_RADIO 1
|
||||||
|
#define TDD_RADIO 2
|
||||||
|
|
||||||
|
/* Direction */
|
||||||
|
#define DIRECTION_UPLINK 0
|
||||||
|
#define DIRECTION_DOWNLINK 1
|
||||||
|
|
||||||
|
/* rntiType */
|
||||||
|
#define WS_NO_RNTI 0
|
||||||
|
#define WS_P_RNTI 1
|
||||||
|
#define WS_RA_RNTI 2
|
||||||
|
#define WS_C_RNTI 3
|
||||||
|
#define WS_SI_RNTI 4
|
||||||
|
#define WS_CS_RNTI 5
|
||||||
|
|
||||||
|
/* Context info attached to each NR MAC frame */
|
||||||
|
typedef struct mac_nr_info
|
||||||
|
{
|
||||||
|
/* Needed for decode */
|
||||||
|
guint8 radioType;
|
||||||
|
guint8 direction;
|
||||||
|
guint8 rntiType;
|
||||||
|
|
||||||
|
/* Extra info to display */
|
||||||
|
guint16 rnti;
|
||||||
|
guint16 ueid;
|
||||||
|
guint8 harqid;
|
||||||
|
|
||||||
|
/* Will these be included in the ME PHR report? */
|
||||||
|
guint8 phr_type2_othercell;
|
||||||
|
|
||||||
|
/* Timing info */
|
||||||
|
gboolean sfnSlotInfoPresent;
|
||||||
|
guint16 sysframeNumber;
|
||||||
|
guint16 slotNumber;
|
||||||
|
|
||||||
|
/* Length of DL PDU or UL grant size in bytes */
|
||||||
|
guint16 length;
|
||||||
|
|
||||||
|
} mac_nr_info;
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************/
|
||||||
|
/* UDP framing format */
|
||||||
|
/* ----------------------- */
|
||||||
|
/* Several people have asked about dissecting MAC by framing */
|
||||||
|
/* PDUs over IP. A suggested format over UDP has been created */
|
||||||
|
/* 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 MAC_NR_START_STRING "mac-nr"
|
||||||
|
|
||||||
|
/* Fixed fields. This is followed by the following 3 mandatory fields:
|
||||||
|
- radioType (1 byte)
|
||||||
|
- direction (1 byte)
|
||||||
|
- rntiType (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 MAC_NR_RNTI_TAG 0x02
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define MAC_NR_UEID_TAG 0x03
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define MAC_NR_FRAME_SUBFRAME_TAG 0x04
|
||||||
|
/* 2 bytes, deprecated, do not use it */
|
||||||
|
|
||||||
|
#define MAC_NR_PHR_TYPE2_OTHERCELL_TAG 0x05
|
||||||
|
/* 1 byte, TRUE/FALSE */
|
||||||
|
|
||||||
|
#define MAC_NR_HARQID 0x06
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define MAC_NR_FRAME_SLOT_TAG 0x07
|
||||||
|
/* 4 bytes, network order, SFN is stored in the 2 first bytes and slot number in the 2 last bytes */
|
||||||
|
|
||||||
|
/* MAC PDU. Following this tag comes the actual MAC PDU (there is no length, the PDU
|
||||||
|
continues until the end of the frame) */
|
||||||
|
#define MAC_NR_PAYLOAD_TAG 0x01
|
||||||
|
|
||||||
|
|
||||||
|
/* Type to store parameters for configuring LCID->RLC channel settings for DRB */
|
||||||
|
/* Some are optional, and may not be seen (e.g. on reestablishment) */
|
||||||
|
typedef struct nr_drb_mac_rlc_mapping_t
|
||||||
|
{
|
||||||
|
gboolean active;
|
||||||
|
guint16 ueid; /* Mandatory */
|
||||||
|
guint8 drbid; /* Mandatory */
|
||||||
|
|
||||||
|
gboolean lcid_present;
|
||||||
|
guint8 lcid; /* Part of LogicalChannelConfig - optional */
|
||||||
|
gboolean rlcMode_present;
|
||||||
|
guint8 rlcMode; /* Part of RLC config - optional */
|
||||||
|
|
||||||
|
guint8 tempDirection; /* So know direction of next SN length... */
|
||||||
|
|
||||||
|
gboolean rlcUlSnLength_present;
|
||||||
|
guint8 rlcUlSnLength; /* Part of RLC config - optional */
|
||||||
|
gboolean rlcDlSnLength_present;
|
||||||
|
guint8 rlcDlSnLength; /* Part of RLC config - optional */
|
||||||
|
} nr_drb_mac_rlc_mapping_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines - https://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:
|
||||||
|
*/
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
/* packet-pdcp-lte.h
|
||||||
|
*
|
||||||
|
* Martin Mathieson
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Direction */
|
||||||
|
#define DIRECTION_UPLINK 0
|
||||||
|
#define DIRECTION_DOWNLINK 1
|
||||||
|
|
||||||
|
enum pdcp_plane
|
||||||
|
{
|
||||||
|
SIGNALING_PLANE = 1,
|
||||||
|
USER_PLANE = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum LogicalChannelType
|
||||||
|
{
|
||||||
|
Channel_DCCH=1,
|
||||||
|
Channel_BCCH=2,
|
||||||
|
Channel_CCCH=3,
|
||||||
|
Channel_PCCH=4,
|
||||||
|
Channel_DCCH_NB=5,
|
||||||
|
Channel_BCCH_NB=6,
|
||||||
|
Channel_CCCH_NB=7,
|
||||||
|
Channel_PCCH_NB=8
|
||||||
|
} LogicalChannelType;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BCH_TRANSPORT=1,
|
||||||
|
DLSCH_TRANSPORT=2
|
||||||
|
} BCCHTransportType;
|
||||||
|
|
||||||
|
#define PDCP_SN_LENGTH_5_BITS 5
|
||||||
|
#define PDCP_SN_LENGTH_7_BITS 7
|
||||||
|
#define PDCP_SN_LENGTH_12_BITS 12
|
||||||
|
#define PDCP_SN_LENGTH_15_BITS 15
|
||||||
|
#define PDCP_SN_LENGTH_18_BITS 18
|
||||||
|
|
||||||
|
enum lte_security_integrity_algorithm_e { eia0, eia1, eia2, eia3 };
|
||||||
|
enum lte_security_ciphering_algorithm_e { eea0, eea1, eea2, eea3 };
|
||||||
|
|
||||||
|
typedef struct pdcp_lte_security_info_t
|
||||||
|
{
|
||||||
|
guint32 configuration_frame;
|
||||||
|
gboolean seen_next_ul_pdu; /* i.e. have we seen SecurityModeResponse */
|
||||||
|
enum lte_security_integrity_algorithm_e integrity;
|
||||||
|
enum lte_security_ciphering_algorithm_e ciphering;
|
||||||
|
|
||||||
|
/* Store previous settings so can revert if get SecurityModeFailure */
|
||||||
|
guint32 previous_configuration_frame;
|
||||||
|
enum lte_security_integrity_algorithm_e previous_integrity;
|
||||||
|
enum lte_security_ciphering_algorithm_e previous_ciphering;
|
||||||
|
} pdcp_lte_security_info_t;
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************/
|
||||||
|
/* UDP framing format */
|
||||||
|
/* ----------------------- */
|
||||||
|
/* Several people have asked about dissecting PDCP 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 LTE PDCP PDUs on a UDP socket is */
|
||||||
|
/* provided at https://gitlab.com/wireshark/wireshark/-/wikis/PDCP-LTE */
|
||||||
|
/* */
|
||||||
|
/* 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 PDCP_LTE_START_STRING "pdcp-lte"
|
||||||
|
|
||||||
|
/* Fixed fields. This is followed by the following 3 mandatory fields:
|
||||||
|
- no_header_pdu (1 byte)
|
||||||
|
- plane (1 byte)
|
||||||
|
- rohc_compression ( byte)
|
||||||
|
(where the allowed values are defined above) */
|
||||||
|
|
||||||
|
/* Conditional field. This field is mandatory in case of User Plane PDCP PDU.
|
||||||
|
The format is to have the tag, followed by the value (there is no length field,
|
||||||
|
it's implicit from the tag). The allowed values are defined above. */
|
||||||
|
|
||||||
|
#define PDCP_LTE_SEQNUM_LENGTH_TAG 0x02
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
/* 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 PDCP_LTE_DIRECTION_TAG 0x03
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_LOG_CHAN_TYPE_TAG 0x04
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_BCCH_TRANSPORT_TYPE_TAG 0x05
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_IP_VERSION_TAG 0x06
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_CID_INC_INFO_TAG 0x07
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_LARGE_CID_PRES_TAG 0x08
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_MODE_TAG 0x09
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_RND_TAG 0x0A
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_UDP_CHECKSUM_PRES_TAG 0x0B
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_LTE_ROHC_PROFILE_TAG 0x0C
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define PDCP_LTE_CHANNEL_ID_TAG 0x0D
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define PDCP_LTE_UEID_TAG 0x0E
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
/* PDCP PDU. Following this tag comes the actual PDCP PDU (there is no length, the PDU
|
||||||
|
continues until the end of the frame) */
|
||||||
|
#define PDCP_LTE_PAYLOAD_TAG 0x01
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Called by RRC, or other configuration protocols */
|
||||||
|
|
||||||
|
/* Function to configure ciphering & integrity algorithms */
|
||||||
|
void set_pdcp_lte_security_algorithms(guint16 ueid, pdcp_lte_security_info_t *security_info);
|
||||||
|
|
||||||
|
/* Function to indicate securityModeCommand did not complete */
|
||||||
|
void set_pdcp_lte_security_algorithms_failed(guint16 ueid);
|
||||||
|
|
||||||
|
|
||||||
|
/* Called by external dissectors */
|
||||||
|
void set_pdcp_lte_rrc_ciphering_key(guint16 ueid, const char *key);
|
||||||
|
void set_pdcp_lte_rrc_integrity_key(guint16 ueid, const char *key);
|
||||||
|
void set_pdcp_lte_up_ciphering_key(guint16 ueid, const char *key);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines - https://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:
|
||||||
|
*/
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
/* packet-pdcp-nr.h
|
||||||
|
*
|
||||||
|
* Martin Mathieson
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Direction */
|
||||||
|
#define PDCP_NR_DIRECTION_UPLINK 0
|
||||||
|
#define PDCP_NR_DIRECTION_DOWNLINK 1
|
||||||
|
|
||||||
|
enum pdcp_nr_plane
|
||||||
|
{
|
||||||
|
NR_SIGNALING_PLANE = 1,
|
||||||
|
NR_USER_PLANE = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum NRBearerType
|
||||||
|
{
|
||||||
|
Bearer_DCCH=1,
|
||||||
|
Bearer_BCCH_BCH=2,
|
||||||
|
Bearer_BCCH_DL_SCH=3,
|
||||||
|
Bearer_CCCH=4,
|
||||||
|
Bearer_PCCH=5,
|
||||||
|
} NRBearerType;
|
||||||
|
|
||||||
|
|
||||||
|
#define PDCP_NR_SN_LENGTH_12_BITS 12
|
||||||
|
#define PDCP_NR_SN_LENGTH_18_BITS 18
|
||||||
|
|
||||||
|
#define PDCP_NR_UL_SDAP_HEADER_PRESENT 0x01
|
||||||
|
#define PDCP_NR_DL_SDAP_HEADER_PRESENT 0x02
|
||||||
|
|
||||||
|
enum nr_security_integrity_algorithm_e { nia0, nia1, nia2, nia3 };
|
||||||
|
enum nr_security_ciphering_algorithm_e { nea0, nea1, nea2, nea3, nea_disabled=999};
|
||||||
|
|
||||||
|
typedef struct pdcp_nr_security_info_t
|
||||||
|
{
|
||||||
|
guint32 configuration_frame;
|
||||||
|
gboolean seen_next_ul_pdu; /* i.e. have we seen SecurityModeResponse */
|
||||||
|
enum nr_security_integrity_algorithm_e integrity;
|
||||||
|
enum nr_security_ciphering_algorithm_e ciphering;
|
||||||
|
|
||||||
|
/* Store previous settings so can revert if get SecurityModeFailure */
|
||||||
|
guint32 previous_configuration_frame;
|
||||||
|
enum nr_security_integrity_algorithm_e previous_integrity;
|
||||||
|
enum nr_security_ciphering_algorithm_e previous_ciphering;
|
||||||
|
} pdcp_nr_security_info_t;
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************/
|
||||||
|
/* UDP framing format */
|
||||||
|
/* ----------------------- */
|
||||||
|
/* Several people have asked about dissecting PDCP 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. */
|
||||||
|
/* 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 PDCP_NR_START_STRING "pdcp-nr"
|
||||||
|
|
||||||
|
/* Fixed fields:
|
||||||
|
- plane (1 byte) */
|
||||||
|
|
||||||
|
/* Conditional field. This field is mandatory in case of User Plane PDCP PDU.
|
||||||
|
The format is to have the tag, followed by the value (there is no length field,
|
||||||
|
it's implicit from the tag). The allowed values are defined above. */
|
||||||
|
|
||||||
|
#define PDCP_NR_SEQNUM_LENGTH_TAG 0x02
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
/* Optional fields. Attaching this info 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 PDCP_NR_DIRECTION_TAG 0x03
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_BEARER_TYPE_TAG 0x04
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_BEARER_ID_TAG 0x05
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_UEID_TAG 0x06
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_COMPRESSION_TAG 0x07
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
/* N.B. The following ROHC values only have significance if rohc_compression
|
||||||
|
is in use for the current channel */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_IP_VERSION_TAG 0x08
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_CID_INC_INFO_TAG 0x09
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_LARGE_CID_PRES_TAG 0x0A
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_MODE_TAG 0x0B
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_RND_TAG 0x0C
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_UDP_CHECKSUM_PRES_TAG 0x0D
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_ROHC_PROFILE_TAG 0x0E
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define PDCP_NR_MACI_PRES_TAG 0x0F
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
#define PDCP_NR_SDAP_HEADER_TAG 0x10
|
||||||
|
/* 1 byte, bitmask with PDCP_NR_UL_SDAP_HEADER_PRESENT and/or PDCP_NR_DL_SDAP_HEADER_PRESENT */
|
||||||
|
|
||||||
|
#define PDCP_NR_CIPHER_DISABLED_TAG 0x11
|
||||||
|
/* 0 byte */
|
||||||
|
|
||||||
|
/* PDCP PDU. Following this tag comes the actual PDCP PDU (there is no length, the PDU
|
||||||
|
continues until the end of the frame) */
|
||||||
|
#define PDCP_NR_PAYLOAD_TAG 0x01
|
||||||
|
|
||||||
|
|
||||||
|
/* Called by RRC, or other configuration protocols */
|
||||||
|
|
||||||
|
/* Function to configure ciphering & integrity algorithms */
|
||||||
|
void set_pdcp_nr_security_algorithms(guint16 ueid, pdcp_nr_security_info_t *security_info);
|
||||||
|
|
||||||
|
/* Function to indicate securityModeCommand did not complete */
|
||||||
|
void set_pdcp_nr_security_algorithms_failed(guint16 ueid);
|
||||||
|
|
||||||
|
|
||||||
|
/* Called by external dissectors */
|
||||||
|
void set_pdcp_nr_rrc_ciphering_key(guint16 ueid, const char *key);
|
||||||
|
void set_pdcp_nr_rrc_integrity_key(guint16 ueid, const char *key);
|
||||||
|
void set_pdcp_nr_up_ciphering_key(guint16 ueid, const char *key);
|
||||||
|
void set_pdcp_nr_up_integrity_key(guint16 ueid, const char *key);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines - https://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:
|
||||||
|
*/
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
/* packet-rlc-lte.h
|
||||||
|
*
|
||||||
|
* Martin Mathieson
|
||||||
|
* 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_LTE_H
|
||||||
|
#define PACKET_RLC_LTE_H
|
||||||
|
|
||||||
|
/* rlcMode */
|
||||||
|
#define RLC_TM_MODE 1
|
||||||
|
#define RLC_UM_MODE 2
|
||||||
|
#define RLC_AM_MODE 4
|
||||||
|
#define RLC_PREDEF 8
|
||||||
|
|
||||||
|
/* direction */
|
||||||
|
#define DIRECTION_UPLINK 0
|
||||||
|
#define DIRECTION_DOWNLINK 1
|
||||||
|
|
||||||
|
/* priority ? */
|
||||||
|
|
||||||
|
/* channelType */
|
||||||
|
#define CHANNEL_TYPE_CCCH 1
|
||||||
|
#define CHANNEL_TYPE_BCCH_BCH 2
|
||||||
|
#define CHANNEL_TYPE_PCCH 3
|
||||||
|
#define CHANNEL_TYPE_SRB 4
|
||||||
|
#define CHANNEL_TYPE_DRB 5
|
||||||
|
#define CHANNEL_TYPE_BCCH_DL_SCH 6
|
||||||
|
#define CHANNEL_TYPE_MCCH 7
|
||||||
|
#define CHANNEL_TYPE_MTCH 8
|
||||||
|
|
||||||
|
/* sequenceNumberLength */
|
||||||
|
#define UM_SN_LENGTH_5_BITS 5
|
||||||
|
#define UM_SN_LENGTH_10_BITS 10
|
||||||
|
#define AM_SN_LENGTH_10_BITS 10
|
||||||
|
#define AM_SN_LENGTH_16_BITS 16
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum rlc_lte_nb_mode {
|
||||||
|
rlc_no_nb_mode = 0,
|
||||||
|
rlc_nb_mode = 1
|
||||||
|
} rlc_lte_nb_mode;
|
||||||
|
|
||||||
|
|
||||||
|
/* Info attached to each LTE RLC frame */
|
||||||
|
typedef struct rlc_lte_info
|
||||||
|
{
|
||||||
|
guint8 rlcMode;
|
||||||
|
guint8 direction;
|
||||||
|
guint8 priority;
|
||||||
|
guint8 sequenceNumberLength;
|
||||||
|
guint16 ueid;
|
||||||
|
guint16 channelType;
|
||||||
|
guint16 channelId; /* for SRB: 1=SRB1, 2=SRB2, 3=SRB1bis; for DRB: DRB ID */
|
||||||
|
guint16 pduLength;
|
||||||
|
gboolean extendedLiField;
|
||||||
|
rlc_lte_nb_mode nbMode;
|
||||||
|
} rlc_lte_info;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct rlc_lte_tap_info {
|
||||||
|
/* Info from context */
|
||||||
|
guint8 rlcMode;
|
||||||
|
guint8 direction;
|
||||||
|
guint8 priority;
|
||||||
|
guint16 ueid;
|
||||||
|
guint16 channelType;
|
||||||
|
guint16 channelId;
|
||||||
|
guint16 pduLength;
|
||||||
|
guint8 sequenceNumberLength;
|
||||||
|
|
||||||
|
nstime_t rlc_lte_time;
|
||||||
|
guint8 loggedInMACFrame;
|
||||||
|
guint16 sequenceNumber;
|
||||||
|
guint8 isResegmented;
|
||||||
|
guint8 isControlPDU;
|
||||||
|
guint16 ACKNo;
|
||||||
|
#define MAX_NACKs 128
|
||||||
|
guint16 noOfNACKs;
|
||||||
|
guint16 NACKs[MAX_NACKs];
|
||||||
|
|
||||||
|
guint16 missingSNs;
|
||||||
|
} rlc_lte_tap_info;
|
||||||
|
|
||||||
|
|
||||||
|
/* 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_LTE_START_STRING "rlc-lte"
|
||||||
|
|
||||||
|
/* Fixed field. This is followed by the following 1 mandatory field:
|
||||||
|
- rlcMode (1 byte)
|
||||||
|
(where the allowed values are defined above */
|
||||||
|
|
||||||
|
/* Conditional field. This field is mandatory in case of RLC Unacknowledged mode.
|
||||||
|
In case of RLC Acknowledged mode, the field is optional (assume 10 bits by default).
|
||||||
|
The format is to have the tag, followed by the value (there is no length field,
|
||||||
|
it's implicit from the tag). The allowed values are defined above. */
|
||||||
|
|
||||||
|
#define RLC_LTE_SN_LENGTH_TAG 0x02
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
/* 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_LTE_DIRECTION_TAG 0x03
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define RLC_LTE_PRIORITY_TAG 0x04
|
||||||
|
/* 1 byte */
|
||||||
|
|
||||||
|
#define RLC_LTE_UEID_TAG 0x05
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define RLC_LTE_CHANNEL_TYPE_TAG 0x06
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define RLC_LTE_CHANNEL_ID_TAG 0x07
|
||||||
|
/* 2 bytes, network order */
|
||||||
|
|
||||||
|
#define RLC_LTE_EXT_LI_FIELD_TAG 0x08
|
||||||
|
/* 0 byte, tag presence indicates that AM DRB PDU is using an extended LI field of 15 bits */
|
||||||
|
|
||||||
|
#define RLC_LTE_NB_MODE_TAG 0x09
|
||||||
|
/* 1 byte containing rlc_lte_nb_mode enum 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_LTE_PAYLOAD_TAG 0x01
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines - https://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:
|
||||||
|
*/
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
/* 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;
|
||||||
|
guint8 bearerType;
|
||||||
|
guint8 bearerId;
|
||||||
|
guint16 ueid;
|
||||||
|
guint16 pduLength;
|
||||||
|
} rlc_nr_info;
|
||||||
|
|
||||||
|
typedef struct nr_drb_rlc_pdcp_mapping_t
|
||||||
|
{
|
||||||
|
gboolean active;
|
||||||
|
guint16 ueid; /* Mandatory */
|
||||||
|
guint8 drbid; /* Mandatory */
|
||||||
|
|
||||||
|
gboolean pdcpUlSnLength_present;
|
||||||
|
guint8 pdcpUlSnLength; /* Part of PDCP config - optional */
|
||||||
|
gboolean pdcpDlSnLength_present;
|
||||||
|
guint8 pdcpDlSnLength; /* Part of PDCP config - optional */
|
||||||
|
gboolean pdcpUlSdap;
|
||||||
|
gboolean pdcpDlSdap;
|
||||||
|
gboolean pdcpIntegrityProtection;
|
||||||
|
gboolean pdcpCipheringDisabled;
|
||||||
|
|
||||||
|
} nr_drb_rlc_pdcp_mapping_t;
|
||||||
|
|
||||||
|
/* TODO: could probably merge this struct with above */
|
||||||
|
typedef struct pdcp_ue_parameters {
|
||||||
|
guint32 id;
|
||||||
|
guint8 pdcp_sn_bits_ul;
|
||||||
|
guint8 pdcp_sn_bits_dl;
|
||||||
|
gboolean pdcp_sdap_ul;
|
||||||
|
gboolean pdcp_sdap_dl;
|
||||||
|
gboolean pdcp_integrity;
|
||||||
|
gboolean pdcp_ciphering_disabled;
|
||||||
|
} pdcp_bearer_parameters;
|
||||||
|
|
||||||
|
/*****************************************************************/
|
||||||
|
/* 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 - https://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:
|
||||||
|
*/
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/* packet-rohc.h
|
||||||
|
* Routines for RObust Header Compression (ROHC) dissection.
|
||||||
|
*
|
||||||
|
* Copyright 2011, Anders Broman <anders.broman[at]ericsson.com>
|
||||||
|
*
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*
|
||||||
|
* Ref:
|
||||||
|
* http://www.ietf.org/rfc/rfc3095.txt RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed
|
||||||
|
* http://datatracker.ietf.org/doc/rfc4815/ RObust Header Compression (ROHC): Corrections and Clarifications to RFC 3095
|
||||||
|
* http://datatracker.ietf.org/doc/rfc5225/ RObust Header Compression Version 2 (ROHCv2): Profiles for RTP, UDP, IP, ESP and UDP-Lite
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PACKET_ROHC_H
|
||||||
|
#define PACKET_ROHC_H
|
||||||
|
|
||||||
|
#define MAX_CID 15
|
||||||
|
|
||||||
|
/* ROHC Profiles */
|
||||||
|
#define ROHC_PROFILE_UNCOMPRESSED 0
|
||||||
|
#define ROHC_PROFILE_RTP 1
|
||||||
|
#define ROHC_PROFILE_UDP 2
|
||||||
|
#define ROHC_PROFILE_IP 4
|
||||||
|
#define ROHC_PROFILE_UNKNOWN 0xFFFF
|
||||||
|
|
||||||
|
enum rohc_mode
|
||||||
|
{
|
||||||
|
MODE_NOT_SET = 0,
|
||||||
|
UNIDIRECTIONAL = 1,
|
||||||
|
OPTIMISTIC_BIDIRECTIONAL = 2,
|
||||||
|
RELIABLE_BIDIRECTIONAL = 3
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rohc_d_mode
|
||||||
|
{
|
||||||
|
NO_CONTEXT = 1,
|
||||||
|
STATIC_CONTEXT = 2,
|
||||||
|
FULL_CONTEXT = 3
|
||||||
|
};
|
||||||
|
typedef struct rohc_info
|
||||||
|
{
|
||||||
|
gboolean rohc_compression;
|
||||||
|
guint8 rohc_ip_version;
|
||||||
|
gboolean cid_inclusion_info;
|
||||||
|
gboolean large_cid_present;
|
||||||
|
enum rohc_mode mode;
|
||||||
|
gboolean rnd;
|
||||||
|
gboolean udp_checksum_present;
|
||||||
|
guint16 profile;
|
||||||
|
proto_item *last_created_item;
|
||||||
|
} rohc_info;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct rohc_context
|
||||||
|
{
|
||||||
|
guint8 rohc_ip_version[MAX_CID+1];
|
||||||
|
gboolean large_cid_present[MAX_CID+1];
|
||||||
|
enum rohc_mode mode[MAX_CID+1];
|
||||||
|
enum rohc_d_mode d_mode[MAX_CID+1];
|
||||||
|
gboolean rnd[MAX_CID+1];
|
||||||
|
gboolean udp_checkum_present[MAX_CID+1];
|
||||||
|
guint16 profile[MAX_CID+1];
|
||||||
|
gboolean rohc_context_init[MAX_CID+1];
|
||||||
|
gint ir_frame_number[MAX_CID+1]; /* The frame number of the last IR packet seen */
|
||||||
|
|
||||||
|
} rohc_context;
|
||||||
|
|
||||||
|
#endif /* PACKET_ROHC_H */
|
||||||
@@ -581,7 +581,6 @@ void *trx_usrp_write_thread(void * arg){
|
|||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_USRP_SEND_RETURN, ret );
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_USRP_SEND_RETURN, ret );
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_THREAD, 0 );
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_THREAD, 0 );
|
||||||
|
|
||||||
if(0) break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
@@ -0,0 +1,326 @@
|
|||||||
|
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
|
||||||
|
cell_type = "CELL_MACRO_GNB";
|
||||||
|
gNB_name = "gNB-Eurecom-5GNRBox";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({
|
||||||
|
mcc = 450;
|
||||||
|
mnc = 05;
|
||||||
|
mnc_length = 2;
|
||||||
|
snssaiList = (
|
||||||
|
{
|
||||||
|
sst = 1;
|
||||||
|
sd = 0xd143a5; // 0 false, else true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
ssb_SubcarrierOffset = 0;
|
||||||
|
pdsch_AntennaPorts = 1;
|
||||||
|
pusch_AntennaPorts = 1;
|
||||||
|
|
||||||
|
pdcch_ConfigSIB1 = (
|
||||||
|
{
|
||||||
|
controlResourceSetZero = 12;
|
||||||
|
searchSpaceZero = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
|
||||||
|
absoluteFrequencySSB = 641280;
|
||||||
|
dl_frequencyBand = 78;
|
||||||
|
# this is 3600 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 640008;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 106;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
# this is RBstart=27,L=48 (275*(L-1))+RBstart
|
||||||
|
initialDLBWPlocationAndBandwidth = 12952; # 6366 12925 12956 28875 12952
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 12;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
#pdsch-ConfigCommon
|
||||||
|
#pdschTimeDomainAllocationList (up to 16 entries)
|
||||||
|
initialDLBWPk0_0 = 0;
|
||||||
|
#initialULBWPmappingType
|
||||||
|
#0=typeA,1=typeB
|
||||||
|
initialDLBWPmappingType_0 = 0;
|
||||||
|
#this is SS=1,L=13
|
||||||
|
initialDLBWPstartSymbolAndLength_0 = 40;
|
||||||
|
|
||||||
|
initialDLBWPk0_1 = 0;
|
||||||
|
initialDLBWPmappingType_1 = 0;
|
||||||
|
#this is SS=2,L=12
|
||||||
|
initialDLBWPstartSymbolAndLength_1 = 53;
|
||||||
|
|
||||||
|
initialDLBWPk0_2 = 0;
|
||||||
|
initialDLBWPmappingType_2 = 0;
|
||||||
|
#this is SS=1,L=12
|
||||||
|
initialDLBWPstartSymbolAndLength_2 = 54;
|
||||||
|
|
||||||
|
initialDLBWPk0_3 = 0;
|
||||||
|
initialDLBWPmappingType_3 = 0;
|
||||||
|
#this is SS=1,L=5
|
||||||
|
initialDLBWPstartSymbolAndLength_3 = 57;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 78;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 106;
|
||||||
|
pMax = 20;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 12952;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 98;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 13;
|
||||||
|
preambleReceivedTargetPower = -96;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 6;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 1;
|
||||||
|
#ra_ReponseWindow
|
||||||
|
#1,2,4,8,10,20,40,80
|
||||||
|
ra_ResponseWindow = 4;
|
||||||
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||||
|
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
|
||||||
|
#ra_ContentionResolutionTimer
|
||||||
|
#(0..7) 8,16,24,32,40,48,56,64
|
||||||
|
ra_ContentionResolutionTimer = 7;
|
||||||
|
rsrp_ThresholdSSB = 19;
|
||||||
|
#prach-RootSequenceIndex_PR
|
||||||
|
#1 = 839, 2 = 139
|
||||||
|
prach_RootSequenceIndex_PR = 2;
|
||||||
|
prach_RootSequenceIndex = 1;
|
||||||
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
|
#
|
||||||
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
# restrictedSetConfig
|
||||||
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
|
restrictedSetConfig = 0,
|
||||||
|
|
||||||
|
# pusch-ConfigCommon (up to 16 elements)
|
||||||
|
initialULBWPk2_0 = 6;
|
||||||
|
initialULBWPmappingType_0 = 1
|
||||||
|
# this is SS=0 L=11
|
||||||
|
initialULBWPstartSymbolAndLength_0 = 55;
|
||||||
|
|
||||||
|
initialULBWPk2_1 = 6;
|
||||||
|
initialULBWPmappingType_1 = 1;
|
||||||
|
# this is SS=0 L=12
|
||||||
|
initialULBWPstartSymbolAndLength_1 = 69;
|
||||||
|
|
||||||
|
initialULBWPk2_2 = 7;
|
||||||
|
initialULBWPmappingType_2 = 1;
|
||||||
|
# this is SS=10 L=4
|
||||||
|
initialULBWPstartSymbolAndLength_2 = 52;
|
||||||
|
|
||||||
|
msg3_DeltaPreamble = 1;
|
||||||
|
p0_NominalWithGrant =-90;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 40;
|
||||||
|
p0_nominal = -90;
|
||||||
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
|
# 1=short, 2=medium, 3=long
|
||||||
|
ssb_PositionsInBurst_PR = 2;
|
||||||
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
|
# ssb_periodicityServingCell
|
||||||
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
|
# dmrs_TypeA_position
|
||||||
|
# 0 = pos2, 1 = pos3
|
||||||
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
referenceSubcarrierSpacing = 1;
|
||||||
|
# pattern1
|
||||||
|
# dl_UL_TransmissionPeriodicity
|
||||||
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
|
nrofDownlinkSlots = 7;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -25;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// MME parameters:
|
||||||
|
amf_ip_address = ( { ipv4 = "192.168.5.233";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
///X2
|
||||||
|
enable_x2 = "no";
|
||||||
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||||
|
t_dc_prep = 1000; /* unit: millisecond */
|
||||||
|
t_dc_overall = 2000; /* unit: millisecond */
|
||||||
|
target_enb_x2_ip_address = (
|
||||||
|
{ ipv4 = "CI_FR1_CTL_ENB_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.5.200/24";
|
||||||
|
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.5.200/24";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
GNB_IPV4_ADDRESS_FOR_X2C = "192.168.5.200/24";
|
||||||
|
GNB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
pusch_proc_threads = 8;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 1
|
||||||
|
nb_rx = 1
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [7];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 114;
|
||||||
|
eNB_instances = [0];
|
||||||
|
#beamforming 1x4 matrix:
|
||||||
|
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
|
||||||
|
clock_src = "internal";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
rfsimulator :
|
||||||
|
{
|
||||||
|
serveraddr = "server";
|
||||||
|
serverport = "4043";
|
||||||
|
options = (); #("saviq"); or/and "chanmod"
|
||||||
|
modelname = "AWGN";
|
||||||
|
IQfile = "/tmp/rfsimulator.iqs";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
global_log_verbosity ="medium";
|
||||||
|
hw_log_level ="info";
|
||||||
|
hw_log_verbosity ="medium";
|
||||||
|
phy_log_level ="info";
|
||||||
|
phy_log_verbosity ="medium";
|
||||||
|
mac_log_level ="info";
|
||||||
|
mac_log_verbosity ="high";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
rlc_log_verbosity ="medium";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
pdcp_log_verbosity ="medium";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
rrc_log_verbosity ="medium";
|
||||||
|
ngap_log_level ="debug";
|
||||||
|
ngap_log_verbosity ="medium";
|
||||||
|
};
|
||||||
|
|
||||||
Reference in New Issue
Block a user