Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Functions.ttcn +11 −3 Original line number Diff line number Diff line Loading @@ -36,13 +36,14 @@ var Ipv6Packet v_ipPkt; v_ipPkt.generalIpv6 := valueof(p_msg); //calc payloadLen v_ipPkt.generalIpv6.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //set extensionHeaders if(f_setGeneralIpv6ExtensionHeaders(v_ipPkt.generalIpv6) != e_success) { log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****"); log(" **** f_sendIpv6ExtHdrs: Error when calculating length of extension headers ****"); return e_error; } //calc payloadLen v_ipPkt.generalIpv6.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //send ipPort.send(v_ipPkt.generalIpv6); Loading @@ -60,6 +61,7 @@ return FncRetCode { var UInt8 i; var Ipv6Address v_homeAddress := c_16ZeroBytes; var UInt8 v_nrOfTunnelHdr := 0; //select ext hdrs that need special calculation if (ispresent(p_generalIpv6.extHdrList)) { Loading @@ -76,6 +78,12 @@ p_generalIpv6.extHdrList[i].mipHeader); } } else if (ischosen(p_generalIpv6.extHdrList[i].tunnelIpv6)) { //Cast GeneralIpv6Packet to Ipv6Packet in order to be able to reuse fx_tunnelledPayloadLength var Ipv6Packet v_ipv6Packet := {generalIpv6 := p_generalIpv6}; v_nrOfTunnelHdr := v_nrOfTunnelHdr + 1; p_generalIpv6.extHdrList[i].tunnelIpv6.payloadLength := fx_tunnelledPayloadLength(v_ipv6Packet, v_nrOfTunnelHdr); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +9 −1 Original line number Diff line number Diff line Loading @@ -330,6 +330,14 @@ } } /* * @param p_ipv6Address First IPv6 address in the routing header */ template RoutingHeaderData m_routingHeaderData_homeAddress ( template Ipv6Address p_ipv6Address ) := { rtHdrDataHomeAddress := p_ipv6Address } }//end group routingHeaderTemplates group mipHeaderTemplates { Loading Loading @@ -381,7 +389,7 @@ version := c_ipv6Version , trafficClass := c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := c_zeroPayloadLength, payloadLength := 16,//c_zeroPayloadLength, TODO possible to calculate??? nextHeader := p_nextHdr, hopLimit := c_hopLimit255, sourceAddress := p_src, Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ with { encode "present=(valueOf(getTag('nextHeader')) == 43);"; encode (nextHeader) "tag='nextHeader';"; encode (hdrExtLen) "tag='hdrExtLen';intTag='IPv6Header_payloadLength',getIntTag('IPv6Header_payloadLength')-value*8-8"; encode (hdrExtLen) "tag='hdrExtLen';intTag='hdrExtIntLen',value*8+8-8;intTag='IPv6Header_payloadLength',getIntTag('IPv6Header_payloadLength')-value*8-8"; encode (routingType) "tag='routingType';"; } Loading @@ -151,6 +151,7 @@ */ type union RoutingHeaderData{ RtHdrDataIpv6AddressList rtHdrDataIpv6AddressList, RtHdrDataHomeAddress rtHdrDataHomeAddress, MipData mipData } Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +6 −3 Original line number Diff line number Diff line Loading @@ -293,10 +293,12 @@ var FncRetCode v_ret := e_error; var EchoRequest echoRequest; tc_ac.start; alt { [] ipPort.receive(mw_echoRequest ( p_llaAddrNut, p_llaAddrTn )) { p_llaAddrTn )) -> value echoRequest { tc_ac.stop; v_ret := e_success; } Loading @@ -305,10 +307,11 @@ } } // end alt v_ret := f_sendEchoReply( m_echoReply_noExtHdr_noData( p_llaAddrTn, v_ret := f_sendEchoReply( m_echoReply_noExtHdr_data( p_llaAddrTn, p_llaAddrNut, p_identifier, p_seqNo )); p_seqNo, echoRequest.data )); return v_ret ; } // end f_replyToEchoRequest Loading ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +21 −10 Original line number Diff line number Diff line Loading @@ -96,6 +96,12 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_haAddrDreq.extHdrList[i].mipHeader); } } else if (ischosen(p_haAddrDreq.extHdrList[i].tunnelIpv6)) { //Cast XXXIpv6Packet to Ipv6Packet in order to be able to reuse fx_tunnelledPayloadLength var Ipv6Packet v_ipv6Packet := {homeAgentAddressDiscoveryRequest := p_msg}; v_nrOfTunnelHdr := v_nrOfTunnelHdr + 1; p_msg.extHdrList[i].tunnelIpv6.payloadLength := fx_tunnelledPayloadLength(v_ipv6Packet, v_nrOfTunnelHdr); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ Loading Loading @@ -128,6 +134,11 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_haGlasNut := v_dhaadReply.homeAgentAddresses; v_ret := e_success ; } //TODO add Reply without address => Fail [] ipPort.receive(mw_dhaadRepNoAddr(p_mnCoaTn, c_defId )) { tc_ac.stop; v_ret := e_error ; } [] tc_ac.timeout{ v_ret := e_timeout; log("**** f_sendHaAddrDreqAndWaitForReply: ERROR: tc_ac.timeout **** "); Loading Loading @@ -186,9 +197,9 @@ module LibIpv6_Rfc3775Mipv6_Functions { m_extHdrList_2Elem( mw_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType0, c_routeHdrSegmentsLeft0, m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn)), c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(p_mnHoaTn)), mw_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, mw_bindingAck(c_defSeqNo))))) { Loading Loading @@ -242,8 +253,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { c_defSeqNo, c_aFlag1, c_hFlag1, c_lFlag1, c_kFlag1, c_lFlag0, c_kFlag0, c_zeroTimeUnits, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); Loading Loading @@ -301,7 +312,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { [] ipPort.receive(mw_generalIpv6_srcDst( c_mipHdr, p_mnHoa, p_glaCn, m_extHdrList_1Elem( m_extHdr_mipHeader ( c_noNextHdr, m_extHdrList_1Elem( mw_extHdr_mipHeader ( c_noNextHdr, c_homeTestInit, mw_hoti)))) { tc_ac.stop; Loading @@ -314,7 +325,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { } } // end alt v_ret := f_sendGeneralIpv6(mw_generalIpv6_srcDst (c_mipHdr, v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst (c_mipHdr, p_glaCn, p_mnHoa, m_extHdrList_1Elem( m_extHdr_mipHeader ( c_noNextHdr, Loading Loading @@ -485,7 +496,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn))))) { m_routingHeaderData_homeAddress(p_mnHoaTn))))) { tc_ac.stop; v_ret := e_success ; } Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Functions.ttcn +11 −3 Original line number Diff line number Diff line Loading @@ -36,13 +36,14 @@ var Ipv6Packet v_ipPkt; v_ipPkt.generalIpv6 := valueof(p_msg); //calc payloadLen v_ipPkt.generalIpv6.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //set extensionHeaders if(f_setGeneralIpv6ExtensionHeaders(v_ipPkt.generalIpv6) != e_success) { log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****"); log(" **** f_sendIpv6ExtHdrs: Error when calculating length of extension headers ****"); return e_error; } //calc payloadLen v_ipPkt.generalIpv6.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //send ipPort.send(v_ipPkt.generalIpv6); Loading @@ -60,6 +61,7 @@ return FncRetCode { var UInt8 i; var Ipv6Address v_homeAddress := c_16ZeroBytes; var UInt8 v_nrOfTunnelHdr := 0; //select ext hdrs that need special calculation if (ispresent(p_generalIpv6.extHdrList)) { Loading @@ -76,6 +78,12 @@ p_generalIpv6.extHdrList[i].mipHeader); } } else if (ischosen(p_generalIpv6.extHdrList[i].tunnelIpv6)) { //Cast GeneralIpv6Packet to Ipv6Packet in order to be able to reuse fx_tunnelledPayloadLength var Ipv6Packet v_ipv6Packet := {generalIpv6 := p_generalIpv6}; v_nrOfTunnelHdr := v_nrOfTunnelHdr + 1; p_generalIpv6.extHdrList[i].tunnelIpv6.payloadLength := fx_tunnelledPayloadLength(v_ipv6Packet, v_nrOfTunnelHdr); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +9 −1 Original line number Diff line number Diff line Loading @@ -330,6 +330,14 @@ } } /* * @param p_ipv6Address First IPv6 address in the routing header */ template RoutingHeaderData m_routingHeaderData_homeAddress ( template Ipv6Address p_ipv6Address ) := { rtHdrDataHomeAddress := p_ipv6Address } }//end group routingHeaderTemplates group mipHeaderTemplates { Loading Loading @@ -381,7 +389,7 @@ version := c_ipv6Version , trafficClass := c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := c_zeroPayloadLength, payloadLength := 16,//c_zeroPayloadLength, TODO possible to calculate??? nextHeader := p_nextHdr, hopLimit := c_hopLimit255, sourceAddress := p_src, Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ with { encode "present=(valueOf(getTag('nextHeader')) == 43);"; encode (nextHeader) "tag='nextHeader';"; encode (hdrExtLen) "tag='hdrExtLen';intTag='IPv6Header_payloadLength',getIntTag('IPv6Header_payloadLength')-value*8-8"; encode (hdrExtLen) "tag='hdrExtLen';intTag='hdrExtIntLen',value*8+8-8;intTag='IPv6Header_payloadLength',getIntTag('IPv6Header_payloadLength')-value*8-8"; encode (routingType) "tag='routingType';"; } Loading @@ -151,6 +151,7 @@ */ type union RoutingHeaderData{ RtHdrDataIpv6AddressList rtHdrDataIpv6AddressList, RtHdrDataHomeAddress rtHdrDataHomeAddress, MipData mipData } Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +6 −3 Original line number Diff line number Diff line Loading @@ -293,10 +293,12 @@ var FncRetCode v_ret := e_error; var EchoRequest echoRequest; tc_ac.start; alt { [] ipPort.receive(mw_echoRequest ( p_llaAddrNut, p_llaAddrTn )) { p_llaAddrTn )) -> value echoRequest { tc_ac.stop; v_ret := e_success; } Loading @@ -305,10 +307,11 @@ } } // end alt v_ret := f_sendEchoReply( m_echoReply_noExtHdr_noData( p_llaAddrTn, v_ret := f_sendEchoReply( m_echoReply_noExtHdr_data( p_llaAddrTn, p_llaAddrNut, p_identifier, p_seqNo )); p_seqNo, echoRequest.data )); return v_ret ; } // end f_replyToEchoRequest Loading
ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +21 −10 Original line number Diff line number Diff line Loading @@ -96,6 +96,12 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_haAddrDreq.extHdrList[i].mipHeader); } } else if (ischosen(p_haAddrDreq.extHdrList[i].tunnelIpv6)) { //Cast XXXIpv6Packet to Ipv6Packet in order to be able to reuse fx_tunnelledPayloadLength var Ipv6Packet v_ipv6Packet := {homeAgentAddressDiscoveryRequest := p_msg}; v_nrOfTunnelHdr := v_nrOfTunnelHdr + 1; p_msg.extHdrList[i].tunnelIpv6.payloadLength := fx_tunnelledPayloadLength(v_ipv6Packet, v_nrOfTunnelHdr); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ Loading Loading @@ -128,6 +134,11 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_haGlasNut := v_dhaadReply.homeAgentAddresses; v_ret := e_success ; } //TODO add Reply without address => Fail [] ipPort.receive(mw_dhaadRepNoAddr(p_mnCoaTn, c_defId )) { tc_ac.stop; v_ret := e_error ; } [] tc_ac.timeout{ v_ret := e_timeout; log("**** f_sendHaAddrDreqAndWaitForReply: ERROR: tc_ac.timeout **** "); Loading Loading @@ -186,9 +197,9 @@ module LibIpv6_Rfc3775Mipv6_Functions { m_extHdrList_2Elem( mw_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType0, c_routeHdrSegmentsLeft0, m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn)), c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(p_mnHoaTn)), mw_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, mw_bindingAck(c_defSeqNo))))) { Loading Loading @@ -242,8 +253,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { c_defSeqNo, c_aFlag1, c_hFlag1, c_lFlag1, c_kFlag1, c_lFlag0, c_kFlag0, c_zeroTimeUnits, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); Loading Loading @@ -301,7 +312,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { [] ipPort.receive(mw_generalIpv6_srcDst( c_mipHdr, p_mnHoa, p_glaCn, m_extHdrList_1Elem( m_extHdr_mipHeader ( c_noNextHdr, m_extHdrList_1Elem( mw_extHdr_mipHeader ( c_noNextHdr, c_homeTestInit, mw_hoti)))) { tc_ac.stop; Loading @@ -314,7 +325,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { } } // end alt v_ret := f_sendGeneralIpv6(mw_generalIpv6_srcDst (c_mipHdr, v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst (c_mipHdr, p_glaCn, p_mnHoa, m_extHdrList_1Elem( m_extHdr_mipHeader ( c_noNextHdr, Loading Loading @@ -485,7 +496,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn))))) { m_routingHeaderData_homeAddress(p_mnHoaTn))))) { tc_ac.stop; v_ret := e_success ; } Loading