<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17391">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  keith: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">csn1: fix csnStreamDecoder(): skip bits unhandled by serialize()<br><br>This change fixes a bug that was reported by Keith Whyte and<br>confirmed in [1]. The problem is that a user-defined handler<br>in case of CSN_SERIALIZE may parse only a part of the given<br>bit-stream, leaving some bits unhandled. This is expected<br>because the sender (i.e. the MS) may use more recent RLC/MAC<br>message definitions containing new fields at the end.<br><br>Those bits that were left unhandled by serialize() shall not be<br>interpreted as continuation of the message, they shall be skipped.<br><br>Note that the encoded vector in the RLCMAC unit test still does<br>not match the original one. That's a known bug explained in [2].<br><br>[1] If5873355d52d7ddb06c2716154a88d34100f6ab5<br>[2] Ic46d6e56768f516203d27d8e7a5adb77afdf32b7<br><br>Change-Id: Id4cc042fed68fc54aca0355dcb986cab3f6b49ea<br>Related: OS#4338<br>---<br>M src/csn1.c<br>M tests/rlcmac/RLCMACTest.err<br>M tests/rlcmac/RLCMACTest.ok<br>3 files changed, 11 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/csn1.c b/src/csn1.c</span><br><span>index 594e8ec..21d3662 100644</span><br><span>--- a/src/csn1.c</span><br><span>+++ b/src/csn1.c</span><br><span>@@ -571,6 +571,13 @@</span><br><span>             remaining_bits_len = arT.remaining_bits_len;</span><br><span>             bit_offset         = arT.bit_offset;</span><br><span>           }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          /* Skip bits not handled by serialize(), if any */</span><br><span style="color: hsl(120, 100%, 40%);">+          if (Status > 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGPC(DCSN1, LOGL_NOTICE, "skipped = %d | ", Status);</span><br><span style="color: hsl(120, 100%, 40%);">+            *readIndex += Status;</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>           pDescr++;</span><br><span>         }</span><br><span>         else</span><br><span>diff --git a/tests/rlcmac/RLCMACTest.err b/tests/rlcmac/RLCMACTest.err</span><br><span>index 89e5fb1..fdba943 100644</span><br><span>--- a/tests/rlcmac/RLCMACTest.err</span><br><span>+++ b/tests/rlcmac/RLCMACTest.err</span><br><span>@@ -24,8 +24,8 @@</span><br><span> DCSN1 INFO csnStreamEncoder (type=2): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 28 |  : Ack_Nack_Description | FINAL_ACK_INDICATION = 0 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 |  : End Ack_Nack_Description | Exist_Channel_Request_Description = 0 |  : Channel_Quality_Report | C_VALUE = 18 | RXQUAL = 0 | SIGN_VAR = 7 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 |  : End Channel_Quality_Report | Exist_AdditionsR99 = 0 | Padding = 3|43|43|43|43|43|43|43|43|</span><br><span> DCSN1 INFO csnStreamDecoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xc4f70250 | : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 3 | u.Content length = 67 | offset = 4 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 1 | DTM_GPRS_multislot_class = 3 | Single_Slot_DTM = 0 |  : DTM_EGPRS_Params | Exist_DTM_EGPRS_multislot_class = 1 | DTM_EGPRS_multislot_class = 3 | : End DTM_EGPRS_Params | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 1 | HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 1 | DTM_GPRS_HighMultislotClass = 2 |  : DTM_EGPRS_HighMultislotClass | Exist_DTM_EGPRS_HighMultislotClass = 1 | DTM_EGPRS_HighMultislotClass = 2 | : End DTM_EGPRS_HighMultislotClass | PS_HandoverCapability = 0 | MS_RA_capability_value } | : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 3 | RADIO_PRIORITY = 3 | RLC_MODE = 1 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 0 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 63 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 1 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43|</span><br><span> DCSN1 INFO csnStreamEncoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | u.TLLI = 1 | u.TLLI = 3304522320 |  : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | u.Content = 3 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 1 | DTM_GPRS_multislot_class = 3 | Single_Slot_DTM = 0 |  : DTM_EGPRS_Params | Exist_DTM_EGPRS_multislot_class = 1 | DTM_EGPRS_multislot_class = 3 |  : End DTM_EGPRS_Params |  : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 1 | HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 1 | DTM_GPRS_HighMultislotClass = 2 |  : DTM_EGPRS_HighMultislotClass | Exist_DTM_EGPRS_HighMultislotClass = 1 | DTM_EGPRS_HighMultislotClass = 2 |  : End DTM_EGPRS_HighMultislotClass | PS_HandoverCapability = 0 | u.Content length = 67 | MS_RA_capability_value } |  : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 3 | RADIO_PRIORITY = 3 | RLC_MODE = 1 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 0 |  : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 63 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 1 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 |  : End AdditionsR99 | Padding = 43|</span><br><span style="color: hsl(0, 100%, 40%);">-DCSN1 INFO csnStreamDecoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xcf21fc92 | : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 73 | offset = 4 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | MS_RA_capability_value } | : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 0 | RLC_OCTET_COUNT = 4 | : End Channel_Request_Description | Exist_CHANGE_MARK = 1 | CHANGE_MARK = 0 | C_VALUE = 16 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 1 | I_LEVEL = 6 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 1 |  : EGPRS_BEP_LinkQualityMeasurements | : End EGPRS_BEP_LinkQualityMeasurements | Exist_EGPRS_TimeslotLinkQualityMeasurements = 1 | DCSN1 ERROR csnStreamDecoder: error NEED_MORE BITS TO UNPACK (-5) at EGPRS_TimeslotLinkQualityMeasurements (idx 164): End AdditionsR99 | </span><br><span style="color: hsl(0, 100%, 40%);">-DCSN1 INFO csnStreamEncoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | u.TLLI = 1 | u.TLLI = 3475111058 |  : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 |  : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | u.Content length = 52 | MS_RA_capability_value } |  : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 0 | RLC_OCTET_COUNT = 4 |  : End Channel_Request_Description | Exist_CHANGE_MARK = 1 | CHANGE_MARK = 0 | C_VALUE = 16 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 1 | I_LEVEL = 6 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 1 |  : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 0 | Exist_MEAN_CV_BEP_8PSK = 0 |  : End EGPRS_BEP_LinkQualityMeasurements | Exist_EGPRS_TimeslotLinkQualityMeasurements = 1 |  : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 |  : End EGPRS_TimeslotLinkQualityMeasurements | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 |  : End AdditionsR99 | Padding = 3|43|</span><br><span style="color: hsl(120, 100%, 40%);">+DCSN1 INFO csnStreamDecoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xcf21fc92 | : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 73 | offset = 4 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | skipped = 21 | MS_RA_capability_value } | : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 11 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 60 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 0|</span><br><span style="color: hsl(120, 100%, 40%);">+DCSN1 INFO csnStreamEncoder (type=5): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 |  : ID | u.TLLI = 1 | u.TLLI = 3475111058 |  : End ID | Exist_MS_Radio_Access_capability = 1 |  : MS_Radio_Access_capability | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 |  : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 |  : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | u.Content length = 52 | MS_RA_capability_value } |  : End MS_Radio_Access_capability |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 11 |  : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 60 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 |  : End AdditionsR99 | Padding = 11|43|43|</span><br><span> DCSN1 INFO csnStreamDecoder (type=8): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 |  : EGPRS_ChannelQualityReport |  : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 1 | MEAN_BEP_GMSK = 31 | CV_BEP_GMSK = 7 | Exist_MEAN_CV_BEP_8PSK = 0 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 0 |  : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 0 | Exist_PFI = 0 | Exist_ExtensionBits = 0 |  : EGPRS_AckNack | Desc = 1 |  : Desc | Desc length = 15 | offset = 0 | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 2 | Exist_CRBB = 0 |  : End Desc | : End EGPRS_AckNack | Padding = 11|43|43|43|43|43|43|43|43|43|43|43|43|43|43|</span><br><span> DCSN1 INFO csnStreamEncoder (type=8): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 |  : EGPRS_ChannelQualityReport |  : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 1 | MEAN_BEP_GMSK = 31 | CV_BEP_GMSK = 7 | Exist_MEAN_CV_BEP_8PSK = 0 |  : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 0 |  : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 |  : End EGPRS_TimeslotLinkQualityMeasurements |  : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 0 | Exist_PFI = 0 | Exist_ExtensionBits = 0 |  : EGPRS_AckNack | Desc = 1 |  : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 2 | Exist_CRBB = 0 | Desc length = 15 |  : End Desc |  : End EGPRS_AckNack | Padding = 11|43|43|43|43|43|43|43|43|43|43|43|43|43|43|</span><br><span> DCSN1 INFO csnStreamDecoder (type=2): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 20 |  : Ack_Nack_Description | FINAL_ACK_INDICATION = 1 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 1 |  : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 18 | : End Channel_Request_Description |  : Channel_Quality_Report | C_VALUE = 40 | RXQUAL = 1 | SIGN_VAR = 0 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 1 |  : AdditionsR99 | Exist_PFI = 0 | : End AdditionsR99 | Padding = 3|43|43|43|43|43|</span><br><span>diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok</span><br><span>index c44ad6a..fdf4ff0 100644</span><br><span>--- a/tests/rlcmac/RLCMACTest.ok</span><br><span>+++ b/tests/rlcmac/RLCMACTest.ok</span><br><span>@@ -108,11 +108,11 @@</span><br><span> vector1 == vector2 : TRUE</span><br><span> vector1 = 401673c87f24af2632b25964200600000091000b780080</span><br><span> =========Start DECODE===========</span><br><span style="color: hsl(0, 100%, 40%);">-+++++++++Finish DECODE (-5)++++++++++</span><br><span>++++++++++Finish DECODE (0)++++++++++</span><br><span> =========Start ENCODE=============</span><br><span> +++++++++Finish ENCODE (0)+++++++++++</span><br><span> vector1 = 40 16 73 c8 7f 24 af 26 32 b2 59 64 20 06 00 00 00 91 00 0b 78 00 80 </span><br><span style="color: hsl(0, 100%, 40%);">-vector2 = 40 16 73 c8 7f 24 ae d2 32 b2 59 64 20 06 00 00 00 91 00 0b 64 03 2b </span><br><span style="color: hsl(120, 100%, 40%);">+vector2 = 40 16 73 c8 7f 24 ae d2 32 b2 59 64 20 06 12 20 01 6f 00 10 0b 2b 2b </span><br><span> vector1 == vector2 : FALSE</span><br><span> vector1 = 40200ffc0021ec010b2b2b2b2b2b2b2b2b2b2b2b2b2b2b</span><br><span> =========Start DECODE===========</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17391">change 17391</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/17391"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Id4cc042fed68fc54aca0355dcb986cab3f6b49ea </div>
<div style="display:none"> Gerrit-Change-Number: 17391 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: keith <keith@rhizomatica.org> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>