Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function */ function f_sendRtAdvWithPrefix_time( in template Ipv6Address p_llaAddrTn, function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template PrefixLength p_prefixLength, in template Ipv6Address p_glaAddrTn, Loading ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +38 −21 Original line number Diff line number Diff line Loading @@ -133,7 +133,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 */ altstep a_receiveBindingUpdateAndReply(in template Ipv6Address p_haGlaTn) altstep a_receiveBindingUpdateAndReply(in template Ipv6NodeParams p_paramsTn, in template Ipv6Address p_haGlaTn) runs on Ipv6Node { //Variables var GeneralIpv6 v_generalIpv6 ; Loading @@ -142,9 +142,24 @@ module LibIpv6_Rfc3775Mipv6_Functions { var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; var Ipv6Address v_receivedTargetAddr := c_16ZeroBytes; var NeighborSolicitation v_nbrSol ; //tc_wait.start; //alt { [] ipPort.receive(mw_nbrSol_addressDetermination(PX_SOL_NODE_MCA_IUT_A, ?)) -> value v_nbrSol{ v_receivedTargetAddr := v_nbrSol.targetAddr ; f_sendNbrAdv (m_nbrAdv_noExtHdr( p_paramsTn.lla, c_allNodesMca, c_rFlag0, c_sFlag1, c_oFlag1, v_receivedTargetAddr, m_nbrAdvOpt_tllaOpt(p_paramsTn.macUca) )) ; repeat; } //1st alternative : m_optPad2 + Coa [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, Loading Loading @@ -190,6 +205,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); repeat; } //2nd alternative : m_optPad4 [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, Loading Loading @@ -234,11 +250,12 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); repeat; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } // [] tc_wait.timeout{ // v_ret := e_timeout; // log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); // } //} // end alt //return v_ret; Loading ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +36 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import from LibIpv6_ModuleParameters all ; import from LibIpv6_MultiRfcs_TypesAndValues all; import from LibIpv6_MultiRfcs_Templates all; import from LibIpv6_Rfc2460Root_TypesAndValues { type all }; import from LibIpv6_Rfc2460Root_TypesAndValues { type all; const all }; import from LibIpv6_Rfc2460Root_Templates all; group extHdrFns { Loading Loading @@ -47,6 +47,11 @@ group extHdrFns { p_dstAddr, p_extHdrList[i].mipHeader); } else if (f_isPresentRoutingHeaderType2(p_extHdrList, v_homeAddress) == e_success) { f_setMipHeader( p_srcAddr, v_homeAddress, p_extHdrList[i].mipHeader); } else { f_setMipHeader( p_srcAddr, p_dstAddr, Loading Loading @@ -210,18 +215,19 @@ group extHdrFns { * @desc This goes through the ExtensionHeaderList and * checks if a HomeAddressOption is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home address of HomeAddressOption * @param p_homeAddr Home address * @return execution status */ function f_isPresentHomeAddressOption( in ExtensionHeaderList p_extHdrList, inout Ipv6Address p_homeAddr) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for (i:=0; i<sizeof(p_extHdrList);i:=i+1) { for (i:=0; i<sizeof(p_extHdrList) and (v_ret != e_success); i:=i+1) { if (ischosen(p_extHdrList[i].destinationOptionHeader)) { for (j:=0; j<sizeof(p_extHdrList[i].destinationOptionHeader.destOptionList);j:=j+1) { if (ischosen(p_extHdrList[i].destinationOptionHeader.destOptionList[j].homeAddressOption)) { Loading @@ -234,6 +240,33 @@ group extHdrFns { return v_ret; }//end function f_isPresentHomeAddressOption /* * @desc This goes through the ExtensionHeaderList and * checks if a Routing Header type 2 is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home address * @return execution status */ function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, inout Ipv6Address p_homeAddr) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for (i:=0; i<sizeof(p_extHdrList) and (v_ret != e_success); i:=i+1) { if (ischosen(p_extHdrList[i].routingHeader) and (p_extHdrList[i].routingHeader.routingType == c_routeHdrType2)) { if (ischosen(p_extHdrList[i].routingHeader.routingHeaderData.rtHdrDataHomeAddress)) { p_homeAddr := p_extHdrList[i].routingHeader.routingHeaderData.rtHdrDataHomeAddress; v_ret := e_success; } } } return v_ret; }//end function f_isPresentRoutingHeaderType2 }//end group mipHdrFns Loading ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_TypesAndValues.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -321,7 +321,7 @@ module LibIpv6_MultiRfcs_TypesAndValues { with { encode "present=bytes(0,1,1);"; encode (optLen) "tag='optLen';intTag='hdrExtIntLen',getIntTag('hdrExtIntLen')-value-2"; encode (padding) "length=valueOf(getTag('optLen'))"; encode (padding) "length=valueOf(getTag('optLen'));fieldPresent=(valueOf(getTag('optLen'))>0)"; } }//end group rfc2460Options Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function */ function f_sendRtAdvWithPrefix_time( in template Ipv6Address p_llaAddrTn, function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template PrefixLength p_prefixLength, in template Ipv6Address p_glaAddrTn, Loading
ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +38 −21 Original line number Diff line number Diff line Loading @@ -133,7 +133,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 */ altstep a_receiveBindingUpdateAndReply(in template Ipv6Address p_haGlaTn) altstep a_receiveBindingUpdateAndReply(in template Ipv6NodeParams p_paramsTn, in template Ipv6Address p_haGlaTn) runs on Ipv6Node { //Variables var GeneralIpv6 v_generalIpv6 ; Loading @@ -142,9 +142,24 @@ module LibIpv6_Rfc3775Mipv6_Functions { var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; var Ipv6Address v_receivedTargetAddr := c_16ZeroBytes; var NeighborSolicitation v_nbrSol ; //tc_wait.start; //alt { [] ipPort.receive(mw_nbrSol_addressDetermination(PX_SOL_NODE_MCA_IUT_A, ?)) -> value v_nbrSol{ v_receivedTargetAddr := v_nbrSol.targetAddr ; f_sendNbrAdv (m_nbrAdv_noExtHdr( p_paramsTn.lla, c_allNodesMca, c_rFlag0, c_sFlag1, c_oFlag1, v_receivedTargetAddr, m_nbrAdvOpt_tllaOpt(p_paramsTn.macUca) )) ; repeat; } //1st alternative : m_optPad2 + Coa [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, //p_mnCoaTn, Loading Loading @@ -190,6 +205,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); repeat; } //2nd alternative : m_optPad4 [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, Loading Loading @@ -234,11 +250,12 @@ module LibIpv6_Rfc3775Mipv6_Functions { v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); repeat; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } // [] tc_wait.timeout{ // v_ret := e_timeout; // log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); // } //} // end alt //return v_ret; Loading
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +36 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import from LibIpv6_ModuleParameters all ; import from LibIpv6_MultiRfcs_TypesAndValues all; import from LibIpv6_MultiRfcs_Templates all; import from LibIpv6_Rfc2460Root_TypesAndValues { type all }; import from LibIpv6_Rfc2460Root_TypesAndValues { type all; const all }; import from LibIpv6_Rfc2460Root_Templates all; group extHdrFns { Loading Loading @@ -47,6 +47,11 @@ group extHdrFns { p_dstAddr, p_extHdrList[i].mipHeader); } else if (f_isPresentRoutingHeaderType2(p_extHdrList, v_homeAddress) == e_success) { f_setMipHeader( p_srcAddr, v_homeAddress, p_extHdrList[i].mipHeader); } else { f_setMipHeader( p_srcAddr, p_dstAddr, Loading Loading @@ -210,18 +215,19 @@ group extHdrFns { * @desc This goes through the ExtensionHeaderList and * checks if a HomeAddressOption is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home address of HomeAddressOption * @param p_homeAddr Home address * @return execution status */ function f_isPresentHomeAddressOption( in ExtensionHeaderList p_extHdrList, inout Ipv6Address p_homeAddr) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for (i:=0; i<sizeof(p_extHdrList);i:=i+1) { for (i:=0; i<sizeof(p_extHdrList) and (v_ret != e_success); i:=i+1) { if (ischosen(p_extHdrList[i].destinationOptionHeader)) { for (j:=0; j<sizeof(p_extHdrList[i].destinationOptionHeader.destOptionList);j:=j+1) { if (ischosen(p_extHdrList[i].destinationOptionHeader.destOptionList[j].homeAddressOption)) { Loading @@ -234,6 +240,33 @@ group extHdrFns { return v_ret; }//end function f_isPresentHomeAddressOption /* * @desc This goes through the ExtensionHeaderList and * checks if a Routing Header type 2 is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home address * @return execution status */ function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, inout Ipv6Address p_homeAddr) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for (i:=0; i<sizeof(p_extHdrList) and (v_ret != e_success); i:=i+1) { if (ischosen(p_extHdrList[i].routingHeader) and (p_extHdrList[i].routingHeader.routingType == c_routeHdrType2)) { if (ischosen(p_extHdrList[i].routingHeader.routingHeaderData.rtHdrDataHomeAddress)) { p_homeAddr := p_extHdrList[i].routingHeader.routingHeaderData.rtHdrDataHomeAddress; v_ret := e_success; } } } return v_ret; }//end function f_isPresentRoutingHeaderType2 }//end group mipHdrFns Loading
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_TypesAndValues.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -321,7 +321,7 @@ module LibIpv6_MultiRfcs_TypesAndValues { with { encode "present=bytes(0,1,1);"; encode (optLen) "tag='optLen';intTag='hdrExtIntLen',getIntTag('hdrExtIntLen')-value-2"; encode (padding) "length=valueOf(getTag('optLen'))"; encode (padding) "length=valueOf(getTag('optLen'));fieldPresent=(valueOf(getTag('optLen'))>0)"; } }//end group rfc2460Options Loading