This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17050 ) Change subject: gsm_rlcmac: improve dissection of Packet Resource Request message ...................................................................... gsm_rlcmac: improve dissection of Packet Resource Request message Port from wireshark.git de028e81c53f9c45ccc5adb3bffd2f16ae2017bf This commit breaks a unit test. Ported-by: Pau Espin Pedrol <pespin at sysmocom.de> Change-Id: Ibb4cbd3f5865415fd547e95fc24ff31df1aed4c0 --- M src/gsm_rlcmac.cpp M src/gsm_rlcmac.h M src/pdch.cpp M tests/rlcmac/RLCMACTest.ok 4 files changed, 77 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/17050/1 diff --git a/src/gsm_rlcmac.cpp b/src/gsm_rlcmac.cpp index 4550c47..c12cf69 100644 --- a/src/gsm_rlcmac.cpp +++ b/src/gsm_rlcmac.cpp @@ -777,6 +777,12 @@ CSN_DESCR_END (DTM_EGPRS_HighMultislotClass_t) static const +CSN_DESCR_BEGIN (DownlinkDualCarrierCapability_r7_t) + M_NEXT_EXIST (DownlinkDualCarrierCapability_r7_t, MultislotCapabilityReductionForDL_DualCarrier, 1), + M_UINT (DownlinkDualCarrierCapability_r7_t, DL_DualCarrierForDTM, 3), +CSN_DESCR_END (DownlinkDualCarrierCapability_r7_t) + +static const CSN_DESCR_BEGIN (Multislot_capability_t) M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_HSCSD_multislot_class, 1), M_UINT (Multislot_capability_t, HSCSD_multislot_class, 5), @@ -854,6 +860,25 @@ M_TYPE (Content_t, DTM_EGPRS_HighMultislotClass, DTM_EGPRS_HighMultislotClass_t), M_UINT_OR_NULL (Content_t, PS_HandoverCapability, 1), + + /* additions in release 7 */ + M_UINT_OR_NULL (Content_t, DTM_Handover_Capability, 1), + M_NEXT_EXIST_OR_NULL(Content_t, Exist_DownlinkDualCarrierCapability_r7, 1), + M_TYPE (Content_t, DownlinkDualCarrierCapability_r7, DownlinkDualCarrierCapability_r7_t), + + M_UINT_OR_NULL (Content_t, FlexibleTimeslotAssignment, 1), + M_UINT_OR_NULL (Content_t, GAN_PS_HandoverCapability, 1), + M_UINT_OR_NULL (Content_t, RLC_Non_persistentMode, 1), + M_UINT_OR_NULL (Content_t, ReducedLatencyCapability, 1), + M_UINT_OR_NULL (Content_t, UplinkEGPRS2, 2), + M_UINT_OR_NULL (Content_t, DownlinkEGPRS2, 2), + + /* additions in release 8 */ + M_UINT_OR_NULL (Content_t, EUTRA_FDD_Support, 1), + M_UINT_OR_NULL (Content_t, EUTRA_TDD_Support, 1), + M_UINT_OR_NULL (Content_t, GERAN_To_EUTRAN_supportInGERAN_PTM, 2), + M_UINT_OR_NULL (Content_t, PriorityBasedReselectionSupport, 1), + CSN_DESCR_END (Content_t) gint16 Content_Dissector(csnStream_t* ar, bitvec *vector, unsigned& readIndex, void* data) @@ -897,9 +922,18 @@ { {4, AccTech_GSMP, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ {4, AccTech_GSME, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSMR, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ {4, AccTech_GSM1800, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ {4, AccTech_GSM1900, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSM450, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSM480, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ {4, AccTech_GSM850, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSM750, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSMT830, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSMT410, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSMT900, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSM710, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ + {4, AccTech_GSMT810, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */ {4, AccTech_GSMOther, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Additional_access_technologies, 7, Additional_access_technologies_Dissector)}, /* Short Form */ }; @@ -1138,7 +1172,7 @@ M_NEXT_EXIST (Packet_Resource_Request_t, Exist_SIGN_VAR, 1), M_UINT (Packet_Resource_Request_t, SIGN_VAR, 6), - M_TYPE_ARRAY (Packet_Resource_Request_t, Slot, InterferenceMeasurementReport_t, 8), + M_TYPE_ARRAY (Packet_Resource_Request_t, I_LEVEL_TN, InterferenceMeasurementReport_t, 8), M_NEXT_EXIST_OR_NULL(Packet_Resource_Request_t, Exist_AdditionsR99, 1), M_TYPE (Packet_Resource_Request_t, AdditionsR99, PRR_AdditionsR99_t), diff --git a/src/gsm_rlcmac.h b/src/gsm_rlcmac.h index 461fda3..c1869ae 100644 --- a/src/gsm_rlcmac.h +++ b/src/gsm_rlcmac.h @@ -1109,6 +1109,12 @@ typedef struct { + guint8 MultislotCapabilityReductionForDL_DualCarrier; + guint8 DL_DualCarrierForDTM; +} DownlinkDualCarrierCapability_r7_t; + +typedef struct +{ guint8 Exist_HSCSD_multislot_class; guint8 HSCSD_multislot_class; @@ -1194,6 +1200,25 @@ guint8 DTM_GPRS_HighMultislotClass; DTM_EGPRS_HighMultislotClass_t DTM_EGPRS_HighMultislotClass; guint8 PS_HandoverCapability; + + /* -------- R7 additions */ + guint8 DTM_Handover_Capability; + guint8 Exist_DownlinkDualCarrierCapability_r7; + DownlinkDualCarrierCapability_r7_t DownlinkDualCarrierCapability_r7; + + guint8 FlexibleTimeslotAssignment; + guint8 GAN_PS_HandoverCapability; + guint8 RLC_Non_persistentMode; + guint8 ReducedLatencyCapability; + guint8 UplinkEGPRS2; + guint8 DownlinkEGPRS2; + + /* -------- R8 additions */ + guint8 EUTRA_FDD_Support; + guint8 EUTRA_TDD_Support; + guint8 GERAN_To_EUTRAN_supportInGERAN_PTM; + guint8 PriorityBasedReselectionSupport; + } Content_t; #define ABSOLUTE_MAX_BANDS 2 /* New fields for R4 extend the length of the capabilities message so we can only send 2 */ @@ -1201,12 +1226,21 @@ #define MAX_ACCESS_TECHNOLOGIES_COUNT 16 /* No more than 16 instances */ typedef enum -{/* See TS 24.008 table 10.5.146, GSM R and GSM 450/480 excluded */ +{/* See TS 24.008 table 10.5.146 */ AccTech_GSMP = 0x0, AccTech_GSME = 0x1, + AccTech_GSMR = 0x2, AccTech_GSM1800 = 0x3, AccTech_GSM1900 = 0x4, + AccTech_GSM450 = 0x5, + AccTech_GSM480 = 0x6, AccTech_GSM850 = 0x7, + AccTech_GSM750 = 0x8, + AccTech_GSMT830 = 0x9, + AccTech_GSMT410 = 0xa, + AccTech_GSMT900 = 0xb, + AccTech_GSM710 = 0xc, + AccTech_GSMT810 = 0xd, AccTech_GSMOther = 0xf } AccessTechnology_t; @@ -1459,7 +1493,7 @@ guint8 Exist_SIGN_VAR; guint8 SIGN_VAR; - InterferenceMeasurementReport_t Slot[8]; + InterferenceMeasurementReport_t I_LEVEL_TN[8]; guint8 Exist_AdditionsR99; PRR_AdditionsR99_t AdditionsR99; diff --git a/src/pdch.cpp b/src/pdch.cpp index e15af2c..6a35464 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -80,13 +80,13 @@ if (qr->Exist_SIGN_VAR) meas->set_ms_sign_var((qr->SIGN_VAR + 2) / 4); /* SIGN_VAR * 0.25 dB */ - for (i = 0; i < OSMO_MIN(ARRAY_SIZE(qr->Slot), ARRAY_SIZE(meas->ts)); i++) + for (i = 0; i < OSMO_MIN(ARRAY_SIZE(qr->I_LEVEL_TN), ARRAY_SIZE(meas->ts)); i++) { - if (qr->Slot[i].Exist) { + if (qr->I_LEVEL_TN[i].Exist) { LOGP(DRLCMAC, LOGL_INFO, "Packet resource request: i_level[%d] = %d\n", - i, qr->Slot[i].I_LEVEL); - meas->set_ms_i_level(i, -2 * qr->Slot[i].I_LEVEL); + i, qr->I_LEVEL_TN[i].I_LEVEL); + meas->set_ms_i_level(i, -2 * qr->I_LEVEL_TN[i].I_LEVEL); } } } diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok index 5793d57..7dd0a9c 100644 --- a/tests/rlcmac/RLCMACTest.ok +++ b/tests/rlcmac/RLCMACTest.ok @@ -104,8 +104,8 @@ =========Start ENCODE============= +++++++++Finish ENCODE+++++++++++ vector1 = 40 16 71 3d c0 94 27 0c a2 ae 57 ef 90 90 06 aa 0f c0 00 1f 80 22 2b -vector2 = 40 16 71 3d c0 94 27 0c a2 ae 57 ef 90 90 06 aa 0f c0 00 1f 80 22 2b -vector1 == vector2 : TRUE +vector2 = 40 16 71 3d c0 94 27 48 a2 ae 57 ef 90 90 06 aa 00 00 1f 80 00 3f 00 +vector1 == vector2 : FALSE vector1 = 40200ffc0021ec010b2b2b2b2b2b2b2b2b2b2b2b2b2b2b =========Start DECODE=========== +++++++++Finish DECODE++++++++++ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibb4cbd3f5865415fd547e95fc24ff31df1aed4c0 Gerrit-Change-Number: 17050 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200128/842195b4/attachment.htm>