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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21125 ) Change subject: RLCMAC: Implement type+template for EGPRS Dl Pkt ACK/NACK ...................................................................... RLCMAC: Implement type+template for EGPRS Dl Pkt ACK/NACK Change-Id: I0d6555f8644e39da6124be2e861d57fda3b3d8a1 --- M library/RLCMAC_CSN1_Templates.ttcn M library/RLCMAC_CSN1_Types.ttcn M library/RLCMAC_Templates.ttcn 3 files changed, 111 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn index 727d4b8..64c709a 100644 --- a/library/RLCMAC_CSN1_Templates.ttcn +++ b/library/RLCMAC_CSN1_Templates.ttcn @@ -213,4 +213,10 @@ pwr_ctrl := * }; + template EgprsAckNackDescriptionIE ts_EgprsAckNackDescriptionIE(template EgprsAckNackDescription andesc) := { + len_present := '1'B, + len := 0, /* Overwritten by RAW encoder */ + acknack_desc := andesc + } + } with { encode "RAW"; variant "FIELDORDER(msb)" variant "BYTEORDER(last)" }; diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn index 1ffb85b..14570bf 100644 --- a/library/RLCMAC_CSN1_Types.ttcn +++ b/library/RLCMAC_CSN1_Types.ttcn @@ -617,7 +617,7 @@ with { extension "prototype(convert) decode(RAW)" }; - /* 11.2.6 Packet Downlikn Ack/Nack */ + /* 11.2.6 Packet Downlink Ack/Nack */ type record ILevel { BIT1 presence, uint4_t i_level optional @@ -635,7 +635,60 @@ BIT1 chreq_desc_presence, ChannelReqDescription chreq_desc optional, ChannelQualityReport ch_qual_rep + } with { variant (chreq_desc) "PRESENCE(chreq_desc_presence = '1'B)" }; + + /* 11.2.6a Egprs Packet Downlink Ack/Nack */ + type record EgprsBEPLinkQualityMeasurements { + BIT1 gmsk_presence, + BIT5 gmsk_mean_bep optional, + BIT3 gmsk_cv_bep optional, + BIT1 psk8_presence, + BIT5 psk8_mean_bep optional, + BIT3 psk8_cv_bep optional + } with { variant (gmsk_mean_bep) "PRESENCE(gmsk_presence = '1'B)" + variant (gmsk_cv_bep) "PRESENCE(gmsk_presence = '1'B)" + variant (psk8_mean_bep) "PRESENCE(psk8_presence = '1'B)" + variant (psk8_cv_bep) "PRESENCE(psk8_presence = '1'B)" + }; + /* 12.5.4 EGPRS Timeslot Link Quality Measurements IE */ + type record BEPMeas { + BIT1 presence, + BIT1 is_8psk optional, + uint4_t bep_meas optional + } with { variant (is_8psk) "PRESENCE(presence = '1'B)" + variant (bep_meas) "PRESENCE(presence = '1'B)" + }; + type record length(8) of BEPMeas BEPMeasLi; + type record EgprsTimeslotLinkQualityMeasurements { + BIT1 bep_measurements_presence, + BEPMeasLi bep_meas optional, + BIT1 i_measurements_presence, + ILevels i_meas optional + } with { variant (bep_meas) "PRESENCE(bep_measurements_presence = '1'B)" + variant (i_meas) "PRESENCE(i_measurements_presence = '1'B)" + }; + /* Table 12.5.1.1 : EGPRS Channel Quality Report Information elements */ + type record EgprsChannelQualityReport { + EgprsBEPLinkQualityMeasurements bep_link_qual_meas, + uint6_t c_value, + EgprsTimeslotLinkQualityMeasurements ts_link_qual_meas } with { variant "" }; + type record EgprsPacketDlAckNack { + uint5_t dl_tfi, + BIT1 ms_oom, + BIT1 egprs_ch_qual_rep_presence, + EgprsChannelQualityReport egprs_ch_qual_rep optional, + BIT1 chreq_desc_presence, + ChannelReqDescription chreq_desc optional, + BIT1 pfi_presence, + BIT7 pfi optional, + BIT1 epdan_presence('0'B), + /* TODO: Implement EPD A/N */ + EgprsAckNackDescriptionIE ack_nack_desc_ie + } with { variant (chreq_desc) "PRESENCE(chreq_desc_presence = '1'B)" + variant (egprs_ch_qual_rep) "PRESENCE(egprs_ch_qual_rep_presence = '1'B)" + variant (pfi) "PRESENCE(pfi_presence = '1'B)" + }; /* 11.2.2 Packet Control Acknowledgement */ type enumerated CtrlAck { @@ -706,6 +759,7 @@ type union RlcmacUlCtrlUnion { PacketCtrlAck ctrl_ack, PacketDlAckNack dl_ack_nack, + EgprsPacketDlAckNack dl_ack_nack_egprs, PacketUlDummy ul_dummy, PacketResourceReq resource_req, octetstring other @@ -717,6 +771,7 @@ } with { variant (u) "CROSSTAG(ctrl_ack, msg_type = PACKET_CONTROL_ACK; dl_ack_nack, msg_type = PACKET_DL_ACK_NACK; + dl_ack_nack_egprs, msg_type = PACKET_EGPRS_DL_ACK_NACK; ul_dummy, msg_type = PACKET_UL_DUMMY_CTRL; resource_req, msg_type = PACKET_RESOURCE_REQUEST; other, OTHERWISE @@ -737,6 +792,27 @@ ReceivedBlockBitmap receive_block_bitmap } with { variant "" }; + /* 12.3.1 Egprs Ack/Nack Description */ + type bitstring UncompressedReceivedBlockBitmap length(64) with { variant "BYTEORDER(last)" }; + type record EgprsAckNackDescription { + BIT1 final_ack, + BIT1 begin_window, + BIT1 end_window, + uint11_t starting_seq_nr, + BIT1 compressed, + /* TODO: CompressedReceivedBlockBitmap urbb optional, */ + UncompressedReceivedBlockBitmap urbb optional + } with { variant (urbb) "PRESENCE(compressed = '0'B)" }; + type record EgprsAckNackDescriptionIE { + BIT1 len_present, + uint8_t len optional, + EgprsAckNackDescription acknack_desc + } with { variant (len) "PRESENCE(len_present = '1'B)" + variant (len) "LENGTHTO(acknack_desc)" + variant (len) "UNIT(bits)" + }; + + /* 12.7 Channel Request Description */ type enumerated RlcMode { RLC_MODE_ACKNOWLEDGED (0), diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index f016c4d..e6f982f 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -401,6 +401,34 @@ } } + /* Send Template for Egprs Downlink ACK/NACK */ + template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_EGPRS(template uint5_t tfi, EgprsAckNackDescription andesc, boolean retry := false) := { + ctrl := { + mac_hdr := { + payload_type := MAC_PT_RLCMAC_NO_OPT, + spare := '00000'B, + retry := retry + }, + payload := { + msg_type := PACKET_EGPRS_DL_ACK_NACK, + u := { + dl_ack_nack_egprs := { + dl_tfi := tfi, + ms_oom := '0'B, + egprs_ch_qual_rep_presence := '0'B, + egprs_ch_qual_rep := omit, + chreq_desc_presence := '0'B, + chreq_desc := omit, + pfi_presence := '0'B, + pfi := omit, + epdan_presence := '0'B, + ack_nack_desc_ie := ts_EgprsAckNackDescriptionIE(andesc) + } + } + } + } + } + /* Template for uplink Data block */ template RlcmacUlBlock t_RLCMAC_UL_DATA(template CodingScheme cs, template uint5_t tfi, template uint4_t cv, template uint7_t bsn, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0d6555f8644e39da6124be2e861d57fda3b3d8a1 Gerrit-Change-Number: 21125 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201116/71710d19/attachment.htm>