Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +6 −5 Original line number Diff line number Diff line Loading @@ -161,6 +161,8 @@ group rfc2460Root_Functions { else { v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.iv := PX_IV; } //Update the original packet v_activeIpv6Packet.ipv6Hdr.payloadLength := fx_payloadLength (v_activeIpv6Packet); v_ret := f_getOriginalIpv6Packet( v_activeIpv6Packet, Loading @@ -173,12 +175,10 @@ group rfc2460Root_Functions { // include recursion results if (ispresent(v_pseudoIpv6Packet.extHdrList)) { for (j:=0; j<sizeof(v_pseudoIpv6Packet.extHdrList) ;j:=j+1) { v_activeIpv6Packet.extHdrList[i+1] := v_pseudoIpv6Packet.extHdrList[j]; } v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.extHdrList := v_pseudoIpv6Packet.extHdrList } if (ispresent(v_pseudoIpv6Packet.ipv6Payload)) { v_activeIpv6Packet.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload; v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload; } v_loop := false; Loading Loading @@ -1188,6 +1188,7 @@ group rfc4303Esp_ExtHdrFunctions { } // is a tunneledIpv6Hdr in the extHdrList? If yes, then it becomes the Ipv6Hdr of the original packet // FIXME: check only the first extHdr if (ispresent(p_espHeader.espPayload.espIpDatagram.extHdrList)) { for (i:=0; i<sizeof(p_espHeader.espPayload.espIpDatagram.extHdrList) and v_loop ;i:=i+1) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[i].tunneledIpv6)) { Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -564,6 +564,14 @@ module LibIpv6_Interface_Templates { template Ipv6Payload m_ipv6Payload_echoRequestMsg(in template EchoRequestMsg p_echoRequestMsg) := { echoRequestMsg := p_echoRequestMsg } /* * @param p_echoReplyMsg Echo Reply Message */ template Ipv6Payload m_ipv6Payload_echoReplyMsg(in template EchoReplyMsg p_echoReplyMsg) := { echoReplyMsg := p_echoReplyMsg } } //end group ipv6Templates } //end group rfc2460Root_Templates group rfc3775Mipv6_ExtHdrTemplates { Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ v_ipPkt := valueof(p_echoRequest); //calc payloadLen v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); if(f_setExtensionHeaders( v_ipPkt, v_ipPkt.ipv6Hdr.sourceAddress, Loading Loading @@ -72,7 +72,7 @@ v_ipPkt := valueof(p_echoReply); //calc payloadLen v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); if(f_setExtensionHeaders( v_ipPkt, v_ipPkt.ipv6Hdr.sourceAddress, Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Templates.ttcn +85 −20 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } } } // end group ICMPv6_Echo_Reply group ICMPv6_Echo_Request { /* * @param p_nextHeader Next header identifier value to be used. Loading Loading @@ -626,6 +627,52 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } } } // end group ICMPv6_Echo_Request group ICMPv6_EchoReplyMsg { template EchoReplyMsg m_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoReplyMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit } template EchoReplyMsg mw_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoReplyMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit } } //end group ICMPv6_EchoReplyMsg group ICMPv6_EchoRequestMsg { template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit } template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit } } //end group ICMPv6_EchoRequestMsg group ICMPv6_Echo_Request_Esp { /* * @param p_nextHeader Next header identifier value to be used. Loading @@ -647,27 +694,45 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } //end group ICMPv6_Echo_Request_Esp group ICMPv6_EchoRequestMsg { group ICMPv6_Echo_Reply_Esp { template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit /* * @param p_nextHeader Next header identifier value to be used. * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_extHdrList List of extension header in the packet. */ template Ipv6Packet mw_echoReply_esp( UInt8 p_nextHeader, template Ipv6Address p_src, template Ipv6Address p_dst, template ExtensionHeaderList p_extHdrList) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList, ipv6Payload := omit } template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. * @param p_id ICMPv6 echo identifier. * @param p_seqNr ICMPv6 echo sequence number. */ template Ipv6Packet mw_echoReply_anyEsp( UInt8 p_nextHeader) := { ipv6Hdr := mw_ipHdr_nextHdr(p_nextHeader), extHdrList := *, ipv6Payload := omit } } //end group ICMPv6_EchoRequestPayload } //end group ICMPv6_Echo_Reply_Esp group ICMPv6_Other { /* * @param p_src Binary IPv6 address associated with the Loading ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +12 −8 Original line number Diff line number Diff line Loading @@ -352,23 +352,25 @@ group IcmpAndEspFns { c_defSeqNo))), c_icmpHdr)) ) ); //increment SA-based seqNr vc_sad[0].seqNr := vc_sad[0].seqNr + 1; if (v_ret != e_success) {return v_ret;} tc_ac.start; alt { [] ipPort.receive ( m_echoRequest_esp ( mw_echoReply_esp ( c_espHdr, p_paramsIut.gla, p_paramsTn.gla, m_extHdrList_1Elem ( mw_extHdr_espHeader( vc_sad[0].spi, vc_sad[0].seqNr + 1, ?, m_espIpDatagram( omit, m_ipv6Payload_echoRequestMsg( mw_echoRequestMsg( m_ipv6Payload_echoReplyMsg( mw_echoReplyMsg( c_defId, c_defSeqNo))), c_icmpHdr)) Loading Loading @@ -404,27 +406,29 @@ group IcmpAndEspFns { c_defSeqNo))), c_tunneledIpHdr)) ) ); //increment SA-based seqNr vc_sad[0].seqNr := vc_sad[0].seqNr + 1; if (v_ret != e_success) {return v_ret;} tc_ac.start; alt { [] ipPort.receive ( m_echoRequest_esp ( mw_echoReply_esp ( c_espHdr, p_paramsTunnelEnd.gla, p_paramsTunnelStart.gla, mw_extHdrList_1Elem_superSet ( mw_extHdr_espHeader( vc_sad[0].spi, vc_sad[0].seqNr + 1, ?, m_espIpDatagram( m_extHdrList_1Elem( mw_extHdr_tunneledHeader ( c_icmpHdr, p_paramsIut.gla, p_paramsTn.gla )), m_ipv6Payload_echoRequestMsg( mw_echoRequestMsg( m_ipv6Payload_echoReplyMsg( mw_echoReplyMsg( c_defId, c_defSeqNo))), c_tunneledIpHdr)) Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +6 −5 Original line number Diff line number Diff line Loading @@ -161,6 +161,8 @@ group rfc2460Root_Functions { else { v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.iv := PX_IV; } //Update the original packet v_activeIpv6Packet.ipv6Hdr.payloadLength := fx_payloadLength (v_activeIpv6Packet); v_ret := f_getOriginalIpv6Packet( v_activeIpv6Packet, Loading @@ -173,12 +175,10 @@ group rfc2460Root_Functions { // include recursion results if (ispresent(v_pseudoIpv6Packet.extHdrList)) { for (j:=0; j<sizeof(v_pseudoIpv6Packet.extHdrList) ;j:=j+1) { v_activeIpv6Packet.extHdrList[i+1] := v_pseudoIpv6Packet.extHdrList[j]; } v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.extHdrList := v_pseudoIpv6Packet.extHdrList } if (ispresent(v_pseudoIpv6Packet.ipv6Payload)) { v_activeIpv6Packet.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload; v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload; } v_loop := false; Loading Loading @@ -1188,6 +1188,7 @@ group rfc4303Esp_ExtHdrFunctions { } // is a tunneledIpv6Hdr in the extHdrList? If yes, then it becomes the Ipv6Hdr of the original packet // FIXME: check only the first extHdr if (ispresent(p_espHeader.espPayload.espIpDatagram.extHdrList)) { for (i:=0; i<sizeof(p_espHeader.espPayload.espIpDatagram.extHdrList) and v_loop ;i:=i+1) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[i].tunneledIpv6)) { Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -564,6 +564,14 @@ module LibIpv6_Interface_Templates { template Ipv6Payload m_ipv6Payload_echoRequestMsg(in template EchoRequestMsg p_echoRequestMsg) := { echoRequestMsg := p_echoRequestMsg } /* * @param p_echoReplyMsg Echo Reply Message */ template Ipv6Payload m_ipv6Payload_echoReplyMsg(in template EchoReplyMsg p_echoReplyMsg) := { echoReplyMsg := p_echoReplyMsg } } //end group ipv6Templates } //end group rfc2460Root_Templates group rfc3775Mipv6_ExtHdrTemplates { Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ v_ipPkt := valueof(p_echoRequest); //calc payloadLen v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); if(f_setExtensionHeaders( v_ipPkt, v_ipPkt.ipv6Hdr.sourceAddress, Loading Loading @@ -72,7 +72,7 @@ v_ipPkt := valueof(p_echoReply); //calc payloadLen v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); if(f_setExtensionHeaders( v_ipPkt, v_ipPkt.ipv6Hdr.sourceAddress, Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Templates.ttcn +85 −20 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } } } // end group ICMPv6_Echo_Reply group ICMPv6_Echo_Request { /* * @param p_nextHeader Next header identifier value to be used. Loading Loading @@ -626,6 +627,52 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } } } // end group ICMPv6_Echo_Request group ICMPv6_EchoReplyMsg { template EchoReplyMsg m_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoReplyMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit } template EchoReplyMsg mw_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoReplyMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit } } //end group ICMPv6_EchoReplyMsg group ICMPv6_EchoRequestMsg { template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit } template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit } } //end group ICMPv6_EchoRequestMsg group ICMPv6_Echo_Request_Esp { /* * @param p_nextHeader Next header identifier value to be used. Loading @@ -647,27 +694,45 @@ module LibIpv6_Rfc2463Icmpv6_Templates { } //end group ICMPv6_Echo_Request_Esp group ICMPv6_EchoRequestMsg { group ICMPv6_Echo_Reply_Esp { template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := c_2ZeroBytes, identifier := p_id, sequenceNumber := p_seqNr, data := omit /* * @param p_nextHeader Next header identifier value to be used. * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_extHdrList List of extension header in the packet. */ template Ipv6Packet mw_echoReply_esp( UInt8 p_nextHeader, template Ipv6Address p_src, template Ipv6Address p_dst, template ExtensionHeaderList p_extHdrList) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList, ipv6Payload := omit } template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := { icmpType := c_echoRequestMsg, icmpCode := c_icmpCode0, checksum := ?, identifier := p_id, sequenceNumber := p_seqNr, data := omit /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. * @param p_id ICMPv6 echo identifier. * @param p_seqNr ICMPv6 echo sequence number. */ template Ipv6Packet mw_echoReply_anyEsp( UInt8 p_nextHeader) := { ipv6Hdr := mw_ipHdr_nextHdr(p_nextHeader), extHdrList := *, ipv6Payload := omit } } //end group ICMPv6_EchoRequestPayload } //end group ICMPv6_Echo_Reply_Esp group ICMPv6_Other { /* * @param p_src Binary IPv6 address associated with the Loading
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +12 −8 Original line number Diff line number Diff line Loading @@ -352,23 +352,25 @@ group IcmpAndEspFns { c_defSeqNo))), c_icmpHdr)) ) ); //increment SA-based seqNr vc_sad[0].seqNr := vc_sad[0].seqNr + 1; if (v_ret != e_success) {return v_ret;} tc_ac.start; alt { [] ipPort.receive ( m_echoRequest_esp ( mw_echoReply_esp ( c_espHdr, p_paramsIut.gla, p_paramsTn.gla, m_extHdrList_1Elem ( mw_extHdr_espHeader( vc_sad[0].spi, vc_sad[0].seqNr + 1, ?, m_espIpDatagram( omit, m_ipv6Payload_echoRequestMsg( mw_echoRequestMsg( m_ipv6Payload_echoReplyMsg( mw_echoReplyMsg( c_defId, c_defSeqNo))), c_icmpHdr)) Loading Loading @@ -404,27 +406,29 @@ group IcmpAndEspFns { c_defSeqNo))), c_tunneledIpHdr)) ) ); //increment SA-based seqNr vc_sad[0].seqNr := vc_sad[0].seqNr + 1; if (v_ret != e_success) {return v_ret;} tc_ac.start; alt { [] ipPort.receive ( m_echoRequest_esp ( mw_echoReply_esp ( c_espHdr, p_paramsTunnelEnd.gla, p_paramsTunnelStart.gla, mw_extHdrList_1Elem_superSet ( mw_extHdr_espHeader( vc_sad[0].spi, vc_sad[0].seqNr + 1, ?, m_espIpDatagram( m_extHdrList_1Elem( mw_extHdr_tunneledHeader ( c_icmpHdr, p_paramsIut.gla, p_paramsTn.gla )), m_ipv6Payload_echoRequestMsg( mw_echoRequestMsg( m_ipv6Payload_echoReplyMsg( mw_echoReplyMsg( c_defId, c_defSeqNo))), c_tunneledIpHdr)) Loading