pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28189 )


Change subject: IuUP: Encode Initialization according to cfg
......................................................................

IuUP: Encode Initialization according to cfg

Change-Id: I1dec3a8dcc829ad2c308636b697b089e873fd824
---
M library/IuUP_Emulation.ttcn
1 file changed, 45 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/89/28189/1

diff --git a/library/IuUP_Emulation.ttcn b/library/IuUP_Emulation.ttcn
index 899ba50..1bb2bb2 100644
--- a/library/IuUP_Emulation.ttcn
+++ b/library/IuUP_Emulation.ttcn
@@ -35,6 +35,7 @@

 template (value) IuUP_RabFlowCombination t_IuUP_RFC_AMR_12_2(IuUP_RFCI rfci) 
:= t_IuUP_RFC(rfci, {81, 103, 60}, 1);
 template (value) IuUP_RabFlowCombination t_IuUP_RFC_AMR_SID(IuUP_RFCI rfci) := 
t_IuUP_RFC(rfci, {34, 0, 0}, 7);
+template (value) IuUP_RabFlowCombination t_IuUP_RFC_AMR_NO_DATA(IuUP_RFCI 
rfci) := t_IuUP_RFC(rfci, {0, 0, 0}, 1);

 type record IuUP_Config {
        /* actively send INIT (true) or only passively respond (false) */
@@ -63,7 +64,7 @@
        cfg := {
                active_init := act_init,
                data_pdu_type_0 := true,
-               rab_flow_combs := { t_IuUP_RFC_AMR_12_2(0), 
t_IuUP_RFC_AMR_SID(1) }
+               rab_flow_combs := { t_IuUP_RFC_AMR_12_2(0), 
t_IuUP_RFC_AMR_SID(1), t_IuUP_RFC_AMR_NO_DATA(2) }
        },
        state := ST_INIT,
        tx_next_frame_nr := 0,
@@ -120,6 +121,48 @@
        self.stop;
 }

+private function f_ts_IuUP_INIT(inout IuUP_Entity st) return IuUP_PDU
+{
+       var IuUP_PDU pdu;
+       var uint4_t data_pdu_type;
+       var template (omit) IuUP_InitRfci rfci := omit;
+       var IuUP_IPTI_List IPTIs := {};
+       var uint4_t num_rfci := lengthof(st.cfg.rab_flow_combs);
+
+       if (st.cfg.data_pdu_type_0 == true) {
+               data_pdu_type := 0;
+       } else {
+               data_pdu_type := 1;
+       }
+
+       /* Build RFCI list: */
+       for (var integer remain := num_rfci; remain > 0; remain := remain - 1) {
+               var IuUP_RabFlowCombination comb := 
st.cfg.rab_flow_combs[remain - 1];
+               var boolean lri := false;
+               if (remain == num_rfci) {
+                       lri := true;
+               }
+               rfci := ts_IuUP_InitRfci(lri, false, comb.rfci, 
comb.sub_flow_bits, omit, rfci)
+       }
+
+       /* Build IPTI list: */
+       for (var integer i := 0; i < num_rfci; i := i + 1) {
+               IPTIs := IPTIs & { st.cfg.rab_flow_combs[i].ipti };
+       }
+
+       template (value) IuUP_PDU14_ProcSending_INIT tpl := 
ts_IuUP_PDU14_ProcSending_INIT(
+               ti := true,
+               subflows_per_rfci := num_rfci,
+               chain_ind := false,
+               rfci := rfci,
+               IPTIs := IPTIs,
+               versions_supported := '0000000000000001'B,
+               data_pdu_type := data_pdu_type
+               );
+       pdu := valueof(ts_IuUP_INIT(tpl));
+       return pdu;
+}
+
 function f_IuUP_Em_tx_encap(inout IuUP_Entity st, in octetstring payload) 
return octetstring {
        var IuUP_PDU pdu;
        select (st.state) {
@@ -127,7 +170,7 @@
                        if (st.cfg.active_init) {
                                if (not isvalue(st.pending_tx_pdu)) {
                                        /* send INIT */
-                                       pdu := 
valueof(ts_IuUP_INIT(ts_IuUP_PDU14_ProcSending_INIT));
+                                       pdu := f_ts_IuUP_INIT(st);
                                        st.pending_tx_pdu := pdu;
                                } /* else: wait for INIT-ACK return ''O at the 
end */


--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28189
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: I1dec3a8dcc829ad2c308636b697b089e873fd824
Gerrit-Change-Number: 28189
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to