aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-03-26 18:50:00 +0100
committerlaforge <laforge@osmocom.org>2020-03-30 10:08:02 +0000
commit99eb353337f16f9023e3e64e6fd1a5210f289db8 (patch)
tree378a34d91bfb0572d76889a99affbd4c6f729002
parentf3ac06bbaf2591c47ed2027302c0e481da07e194 (diff)
rlcmac: add dissection of 2G->3G/4G PS handover
Port from wireshark.git 428ee66ae1c524b49f9043729b1f1e9b4f52f409, from Pascal Quantin. The original commit is also changing the RRC_Container field to M_CALLBACK, but we leave them as M_VAR_ARRAY since the callback is basically used to add more dissection information in wireshark. Change-Id: I0f374e78300efddff00c4df26a401adcdee18a12
-rw-r--r--src/gsm_rlcmac.c8
-rw-r--r--src/gsm_rlcmac.h6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/gsm_rlcmac.c b/src/gsm_rlcmac.c
index b421624..9b5ecfe 100644
--- a/src/gsm_rlcmac.c
+++ b/src/gsm_rlcmac.c
@@ -4574,6 +4574,12 @@ CSN_DESCR_END (PS_HandoverTo_UTRAN_Payload_t)
static const
+CSN_DESCR_BEGIN(PS_HandoverTo_E_UTRAN_Payload_t)
+ M_UINT (PS_HandoverTo_E_UTRAN_Payload_t, RRC_ContainerLength, 8),
+ M_VAR_ARRAY (PS_HandoverTo_E_UTRAN_Payload_t, RRC_Container, RRC_ContainerLength, 0),
+CSN_DESCR_END (PS_HandoverTo_E_UTRAN_Payload_t)
+
+static const
CSN_DESCR_BEGIN(PHO_RadioResources_t)
M_NEXT_EXIST (PHO_RadioResources_t, Exist_HandoverReference, 1),
M_UINT (PHO_RadioResources_t, HandoverReference, 8),
@@ -4633,7 +4639,7 @@ CSN_DESCR_BEGIN(Packet_Handover_Command_t)
M_UNION (Packet_Handover_Command_t, 4),
M_TYPE (Packet_Handover_Command_t, u.PS_HandoverTo_A_GB_ModePayload, PS_HandoverTo_A_GB_ModePayload_t),
M_TYPE (Packet_Handover_Command_t, u.PS_HandoverTo_UTRAN_Payload, PS_HandoverTo_UTRAN_Payload_t),
- CSN_ERROR (Packet_Handover_Command_t, "10 <extension> not implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
+ M_TYPE (Packet_Handover_Command_t, u.PS_HandoverTo_E_UTRAN_Payload, PS_HandoverTo_E_UTRAN_Payload_t),
CSN_ERROR (Packet_Handover_Command_t, "11 <extension> not implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
M_PADDING_BITS(Packet_Handover_Command_t),
diff --git a/src/gsm_rlcmac.h b/src/gsm_rlcmac.h
index 48abac0..e9ae20a 100644
--- a/src/gsm_rlcmac.h
+++ b/src/gsm_rlcmac.h
@@ -4877,6 +4877,11 @@ typedef struct
guint8 RRC_Container[MAX_RRC_CONTAINER_LENGTH];
} PS_HandoverTo_UTRAN_Payload_t;
+typedef struct
+{
+ guint8 RRC_ContainerLength;
+ guint8 RRC_Container[MAX_RRC_CONTAINER_LENGTH];
+} PS_HandoverTo_E_UTRAN_Payload_t;
typedef struct
{
@@ -4929,6 +4934,7 @@ typedef struct
{
PS_HandoverTo_A_GB_ModePayload_t PS_HandoverTo_A_GB_ModePayload;
PS_HandoverTo_UTRAN_Payload_t PS_HandoverTo_UTRAN_Payload;
+ PS_HandoverTo_E_UTRAN_Payload_t PS_HandoverTo_E_UTRAN_Payload;
} u;
} Packet_Handover_Command_t;