Loading ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +182 −0 Original line number Diff line number Diff line Loading @@ -616,5 +616,187 @@ group IcmpAndEspFns { }//end IcmpAndEspFns group IcmpAndAuthHeaderFns { function f_generateEchoReqWithAh( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsTn.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); // ICV is set to 0 before authentication }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), m_extHdr_tunneledHeader ( c_icmpHdr, p_paramsTn.gla, p_paramsIut.gla )), p_paramsTunnelStart.gla, p_paramsTunnelEnd.gla, c_defId, c_defSeqNo )); } return v_echoRequest; } //end function f_generateEchoReqWithAh_noData( template Ipv6NodeParams p_paramsRt, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd, UInt16 p_id, UInt16 p_seqNr ) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsRt.gla, p_paramsIut.gla, p_id, p_seqNr)); // ICV is set to 0 before authentication }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsRt.gla, p_paramsIut.gla, p_id, p_seqNr )); } return v_echoRequest; } //end function f_generateEchoRequestWithAh_Fh( template Ipv6NodeParams p_paramsRt, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_fragHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), // ICV is set to 0 before authentication m_extHdr_fragmentHeader( c_icmpHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 )), p_paramsRt.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_fragHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), m_extHdr_fragmentHeader( c_tunneledIpHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 )), p_paramsRt.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); } return v_echoRequest; } // end f_generateEchoRequestWithAh_Fh function f_generateNrbSolWithAh( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return NeighborSolicitation { var NeighborSolicitation v_nbrSol; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_nbrSol := valueof(m_nbrSol_extHdr ( c_authHdr, p_paramsTn.gla, p_paramsIut.gla, m_nbrSolOpt_sllaOpt ( p_paramsTn.macUca ), m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)))); // ICV is set to 0 before authentication }else{ // Generate a Neigbor Solicitation message with Authentication Header in tunnel mode v_nbrSol := valueof(m_nbrSol_extHdr ( c_authHdr, p_paramsTn.gla, p_paramsIut.gla, m_nbrSolOpt_sllaOpt ( p_paramsTn.macUca ), m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)))); } return v_nbrSol; }// end f_generateNrbSolWithAh }// end IcmpAndAuthHeaderFns } // end module LibIpv6_MultiRfcs_Functions Loading
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Functions.ttcn +182 −0 Original line number Diff line number Diff line Loading @@ -616,5 +616,187 @@ group IcmpAndEspFns { }//end IcmpAndEspFns group IcmpAndAuthHeaderFns { function f_generateEchoReqWithAh( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsTn.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); // ICV is set to 0 before authentication }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), m_extHdr_tunneledHeader ( c_icmpHdr, p_paramsTn.gla, p_paramsIut.gla )), p_paramsTunnelStart.gla, p_paramsTunnelEnd.gla, c_defId, c_defSeqNo )); } return v_echoRequest; } //end function f_generateEchoReqWithAh_noData( template Ipv6NodeParams p_paramsRt, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd, UInt16 p_id, UInt16 p_seqNr ) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsRt.gla, p_paramsIut.gla, p_id, p_seqNr)); // ICV is set to 0 before authentication }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)), p_paramsRt.gla, p_paramsIut.gla, p_id, p_seqNr )); } return v_echoRequest; } //end function f_generateEchoRequestWithAh_Fh( template Ipv6NodeParams p_paramsRt, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return EchoRequest { var EchoRequest v_echoRequest; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_fragHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), // ICV is set to 0 before authentication m_extHdr_fragmentHeader( c_icmpHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 )), p_paramsRt.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); }else{ // Generate an Echo Request with Authentication Header in tunnel mode v_echoRequest := valueof(m_echoRequest_extHdr_noData ( c_authHdr, m_extHdrList_2Elem ( m_extHdr_AHHeaders( c_fragHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr), m_extHdr_fragmentHeader( c_tunneledIpHdr, c_fragOffset2, c_moreFragments, c_fragmentId1 )), p_paramsRt.gla, p_paramsIut.gla, c_defId, c_defSeqNo)); } return v_echoRequest; } // end f_generateEchoRequestWithAh_Fh function f_generateNrbSolWithAh( template Ipv6NodeParams p_paramsTn, template Ipv6NodeParams p_paramsIut, template Ipv6NodeParams p_paramsTunnelStart, template Ipv6NodeParams p_paramsTunnelEnd) runs on Ipv6Node return NeighborSolicitation { var NeighborSolicitation v_nbrSol; if (vc_sad[c_saOut].ipSecProtocolMode == e_transportMode) { // Transport mode v_nbrSol := valueof(m_nbrSol_extHdr ( c_authHdr, p_paramsTn.gla, p_paramsIut.gla, m_nbrSolOpt_sllaOpt ( p_paramsTn.macUca ), m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_icmpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)))); // ICV is set to 0 before authentication }else{ // Generate a Neigbor Solicitation message with Authentication Header in tunnel mode v_nbrSol := valueof(m_nbrSol_extHdr ( c_authHdr, p_paramsTn.gla, p_paramsIut.gla, m_nbrSolOpt_sllaOpt ( p_paramsTn.macUca ), m_extHdrList_1Elem ( m_extHdr_AHHeaders( c_tunneledIpHdr, vc_sad[c_saOut].spi, vc_sad[c_saOut].seqNr)))); } return v_nbrSol; }// end f_generateNrbSolWithAh }// end IcmpAndAuthHeaderFns } // end module LibIpv6_MultiRfcs_Functions