Loading ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +5 −113 Original line number Diff line number Diff line Loading @@ -379,114 +379,6 @@ module LibIpv6_Rfc3775Mipv6_Functions { /* * @desc primaryCareOfAddressRegistration * @param p_mnCoaTn Mobile Node Care Of Address of test node * @param p_mnHoaTn Mobile Node Home Address of test node * @param p_haGlaNut Home Agent Address of node under test */ function f_receiveBindingUpdateAndReplyOffHome(in template Ipv6Address p_haGlaTn, in UInt16 p_lifeTime) runs on Ipv6Node return FncRetCode { //Variables var GeneralIpv6 v_generalIpv6 ; var UInt16 v_seqNr := 0; var Ipv6Address v_mnCareOfAddr1 := c_16ZeroBytes; var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; tc_wait.start; alt { //1st alternative : m_optPad2 + Coa [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, mw_bindingUpdate_lifeTime(c_aFlag1, c_hFlag1, c_lFlag0, c_kFlag0, p_lifeTime, m_mipOptList_2Elem( m_mipOpt_padN(m_optPad2), m_mipOpt_altCoa(mw_mipOptAltCoA))))))) -> value v_generalIpv6 { //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //TODO read v_mnCareOfAddr2 from MipOptions //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } //2nd alternative : m_optPad4 [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, mw_bindingUpdate(c_aFlag1, c_hFlag1, c_lFlag0, c_kFlag0, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))) -> value v_generalIpv6 { //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } } // end alt if (v_ret == e_success) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst( c_routeHdr, p_haGlaTn, v_mnCareOfAddr1, m_extHdrList_2Elem( m_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(v_mnHomeAddr)), m_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, m_bindingAck( v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); } return v_ret; }//end f_receiveBindingUpdateAndReply /* * @desc primaryCareOfAddressRegistration Loading Loading @@ -547,7 +439,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { * @param p_mnHoaTn Mobile Node Home Address of test node * @param p_haGlaNut Home Agent Address of node under test */ function f_sendBindUpAndWaitForBindAck( in template Ipv6Address p_mnCoaTn, function f_sendBindUpAndWaitForBindAckOffHome( in template Ipv6Address p_mnCoaTn, in template Ipv6Address p_mnHoaTn, in template Ipv6Address p_haGlaNut, in UInt16 p_seqNr, Loading Loading @@ -602,7 +494,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { return v_ret; }//end f_sendBindUpAndWaitForBindAck }//end f_sendBindUpAndWaitForBindAckOffHome /* * @desc primaryCareOfAddressRegistration Loading Loading @@ -1024,7 +916,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { if (v_ret == e_success) { //TODO align param Order with other fns v_ret := f_sendBindUpAndWaitForBindAck( p_mnCoaTn, v_ret := f_sendBindUpAndWaitForBindAckOffHome( p_mnCoaTn, p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, Loading Loading @@ -1056,7 +948,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_haGlasNut); if(v_ret == e_success) { f_sendBindUpAndWaitForBindAck( p_mnCoaTn, f_sendBindUpAndWaitForBindAckOffHome( p_mnCoaTn, p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +5 −113 Original line number Diff line number Diff line Loading @@ -379,114 +379,6 @@ module LibIpv6_Rfc3775Mipv6_Functions { /* * @desc primaryCareOfAddressRegistration * @param p_mnCoaTn Mobile Node Care Of Address of test node * @param p_mnHoaTn Mobile Node Home Address of test node * @param p_haGlaNut Home Agent Address of node under test */ function f_receiveBindingUpdateAndReplyOffHome(in template Ipv6Address p_haGlaTn, in UInt16 p_lifeTime) runs on Ipv6Node return FncRetCode { //Variables var GeneralIpv6 v_generalIpv6 ; var UInt16 v_seqNr := 0; var Ipv6Address v_mnCareOfAddr1 := c_16ZeroBytes; var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; tc_wait.start; alt { //1st alternative : m_optPad2 + Coa [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, mw_bindingUpdate_lifeTime(c_aFlag1, c_hFlag1, c_lFlag0, c_kFlag0, p_lifeTime, m_mipOptList_2Elem( m_mipOpt_padN(m_optPad2), m_mipOpt_altCoa(mw_mipOptAltCoA))))))) -> value v_generalIpv6 { //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //TODO read v_mnCareOfAddr2 from MipOptions //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } //2nd alternative : m_optPad4 [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, mw_bindingUpdate(c_aFlag1, c_hFlag1, c_lFlag0, c_kFlag0, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))) -> value v_generalIpv6 { //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } } // end alt if (v_ret == e_success) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst( c_routeHdr, p_haGlaTn, v_mnCareOfAddr1, m_extHdrList_2Elem( m_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(v_mnHomeAddr)), m_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, m_bindingAck( v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); } return v_ret; }//end f_receiveBindingUpdateAndReply /* * @desc primaryCareOfAddressRegistration Loading Loading @@ -547,7 +439,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { * @param p_mnHoaTn Mobile Node Home Address of test node * @param p_haGlaNut Home Agent Address of node under test */ function f_sendBindUpAndWaitForBindAck( in template Ipv6Address p_mnCoaTn, function f_sendBindUpAndWaitForBindAckOffHome( in template Ipv6Address p_mnCoaTn, in template Ipv6Address p_mnHoaTn, in template Ipv6Address p_haGlaNut, in UInt16 p_seqNr, Loading Loading @@ -602,7 +494,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { return v_ret; }//end f_sendBindUpAndWaitForBindAck }//end f_sendBindUpAndWaitForBindAckOffHome /* * @desc primaryCareOfAddressRegistration Loading Loading @@ -1024,7 +916,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { if (v_ret == e_success) { //TODO align param Order with other fns v_ret := f_sendBindUpAndWaitForBindAck( p_mnCoaTn, v_ret := f_sendBindUpAndWaitForBindAckOffHome( p_mnCoaTn, p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, Loading Loading @@ -1056,7 +948,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_haGlasNut); if(v_ret == e_success) { f_sendBindUpAndWaitForBindAck( p_mnCoaTn, f_sendBindUpAndWaitForBindAckOffHome( p_mnCoaTn, p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, Loading