Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +6 −5 Original line number Original line Diff line number Diff line Loading @@ -60,9 +60,9 @@ * @param p_prefix Prefix * @param p_prefix Prefix * @param p_prefixLen Prefix Length * @param p_prefixLen Prefix Length * @param p_lla Computed link-local address * @param p_lla Computed link-local address * @param p_lla Computed global address * @param p_gla Computed global address * @param p_lla Computed solicited-node multicast address * @param p_solNodeMca Computed solicited-node multicast address * @param p_lla Computed MAC solicited-node multicast address * @param p_macSolNodeMca Computed MAC solicited-node multicast address * @return Execution status * @return Execution status */ */ function f_createIpAddresses( in Oct6to15 p_macAddr, function f_createIpAddresses( in Oct6to15 p_macAddr, Loading Loading @@ -234,6 +234,7 @@ * @desc This goes through the ExtensionHeaderList and * @desc This goes through the ExtensionHeaderList and * checks if a Routing Header type 2 is present. * checks if a Routing Header type 2 is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home Address in the routing header * @return execution status * @return execution status */ */ function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, Loading Loading @@ -765,7 +766,7 @@ group ipSecFns { /* /* * @desc Initialize security parameters (SAD, keys, algos, ...) * @desc Initialize security parameters (SAD, keys, algos, ...) * @param p_ipSecControl Select manual or automatic SA establishment * @param p_ipSecControl Select manual or automatic SA establishment * @param p_ipSec Select transport or Tunnel mode * @param p_ipSecProtocolMode Select transport or Tunnel mode * @return Execution status * @return Execution status */ */ function f_init_ipSecParams ( function f_init_ipSecParams ( Loading ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +11 −77 Original line number Original line Diff line number Diff line Loading @@ -458,7 +458,11 @@ group rfc3775Mipv6_ExtHdrFunctions { * @desc This goes through the Mip header and calculates length, checksum * @desc This goes through the Mip header and calculates length, checksum * and other specific functions of the different messages. * and other specific functions of the different messages. * This function is used when sending messages. * This function is used when sending messages. * @param p_msg ExtensionHeaderList to be treated * @param p_srcAddr Packet Real Source Address * @param p_dstAddr Packet Real Destination Address * @param p_pseudoSrcAddr Packet Pseudo Source Address * @param p_pseudoDstAddr Packet Pseudo Destination Address * @param p_mobileHeader MobileHeader to be treated * @return execution status * @return execution status */ */ function f_setMobileHeader( in Ipv6Address p_srcAddr, function f_setMobileHeader( in Ipv6Address p_srcAddr, Loading Loading @@ -710,7 +714,7 @@ group rfc3775Mipv6_ExtHdrFunctions { /* /* * @desc This goes through the BindingAck and * @desc This goes through the BindingAck and * checks if a NonceIndicesOption is present. * checks if a NonceIndicesOption is present. * @param p_bindingUpdate Binding Update to be treated * @param p_bindingAck Binding Acknowledgement to be treated * @param v_position Position of the NonceIndicesOption in the MobileOptionList * @param v_position Position of the NonceIndicesOption in the MobileOptionList * @return execution status * @return execution status */ */ Loading @@ -734,7 +738,7 @@ group rfc3775Mipv6_ExtHdrFunctions { /* /* * @desc This goes through the BindingAck and * @desc This goes through the BindingAck and * checks if a AuthorizationDataOption is present. * checks if a AuthorizationDataOption is present. * @param p_bindingUpdate Binding Update to be treated * @param p_bindingAck Binding Acknowledgement to be treated * @param v_position Position of the AuthorizationDataOption in the MobileOptionList * @param v_position Position of the AuthorizationDataOption in the MobileOptionList * @return execution status * @return execution status */ */ Loading Loading @@ -1102,77 +1106,6 @@ group rfc4303Esp_ExtHdrFunctions { }//end f_getOriginalIpv6Packet }//end f_getOriginalIpv6Packet /* * @desc * This function is used when sending messages. * @param p_msg ExtensionHeaderList to be treated * @return execution status */ /* function f_setEspHeader( in Ipv6Packet p_ipv6Packet, inout EspHeader p_espHeader) runs on LibIpv6Node return FncRetCode { var Ipv6Header v_originalIpv6Hdr; var EchoRequest v_originalEchoRequest; var EchoReply v_originalEchoReply; //treat MipHdr and other ext if (ispresent(p_espHeader.espPayload.espIpDatagram.extHdrList)) { } if (ispresent(p_espHeader.espPayload.espIpDatagram.ipv6Payload)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoRequestMsg)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6)) {//tunnelMode v_originalIpv6Hdr := p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6; } else { //transportMode v_originalIpv6Hdr := p_ipv6Packet.ipv6Hdr; } //build original packet v_originalEchoRequest := { ipv6Hdr := v_originalIpv6Hdr, extHdrList := omit, ipv6Payload := p_espHeader.espPayload.espIpDatagram.ipv6Payload } //calc checksum if (v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum != c_2ZeroBytes) { //calc checksum v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum := fx_icmpv6Checksum(v_originalEchoRequest); } //assign checksum p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoRequestMsg.checksum := v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum; } else if (ischosen(p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoReplyMsg)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6)) {//tunnelMode v_originalIpv6Hdr := p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6; } else { //transportMode v_originalIpv6Hdr := p_ipv6Packet.ipv6Hdr; } //build original packet v_originalEchoReply := { ipv6Hdr := v_originalIpv6Hdr, extHdrList := omit, ipv6Payload := p_espHeader.espPayload.espIpDatagram.ipv6Payload } //calc checksum if (v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum != c_2ZeroBytes) { //calc checksum v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum := fx_icmpv6Checksum(v_originalEchoReply); } //assign checksum p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoReplyMsg.checksum := v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum; } } return e_success; }//end f_setEspHeader */ /* /* * @desc * @desc * This function is used to retrieve the index * This function is used to retrieve the index Loading @@ -1184,7 +1117,8 @@ group rfc4303Esp_ExtHdrFunctions { * @param p_idx Index of the SA corresponding to p_spi * @param p_idx Index of the SA corresponding to p_spi * @return execution status * @return execution status */ */ function f_getSaBySpi(in Sad p_sad, in integer p_spi, out integer p_idx) return FncRetCode { function f_getSaBySpi(in Sad p_sad, in integer p_spi, out integer p_idx) return FncRetCode { var integer i := 0; var integer i := 0; for (i:=0; i<sizeof(p_sad); i:=i+1) { for (i:=0; i<sizeof(p_sad); i:=i+1) { if (p_sad[i].spi == p_spi) { if (p_sad[i].spi == p_spi) { Loading @@ -1208,7 +1142,7 @@ group rfc791RootFns { * IPv4 packet payload length (totalLength field in IPv4 header) and ICMPv4 checksum * IPv4 packet payload length (totalLength field in IPv4 header) and ICMPv4 checksum * to their correct values using external functions. * to their correct values using external functions. * @remark The template passed in must NOT contain any matching expressions! * @remark The template passed in must NOT contain any matching expressions! * @param p_echoRequest Ipv4 packet value or template with echo request to be sent * @param p_ipv4Packet Ipv4 packet value or template with echo request to be sent * @return execution status * @return execution status */ */ function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +5 −3 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,8 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_prefixLength Router advertisement option prefix length value * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function * @param p_glaAddrTn Global address of testing node which calls this function * @param p_macUcaTn Local link-layer address of testing node which calls this function * @param p_macUcaTn Local link-layer address of testing node which calls this function * @param p_validLifetime Valid Lifetime to be send in Router Advertisement * @param p_preferredLifetime Preferred Lifetime to be send in Router Advertisement */ */ function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template Ipv6Address p_dstAddr, Loading Loading @@ -176,6 +178,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_dstAddr Local link address of node under test * @param p_dstAddr Local link address of node under test * @param p_prefixLength Router advertisement option prefix length value * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function * @param p_glaAddrTn Global address of testing node which calls this function * @param p_linkLayerAddr Router Link-Layer address */ */ function f_sendMipRtAdvWithPrefix( in template Ipv6Address p_llaAddrTn, function f_sendMipRtAdvWithPrefix( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template Ipv6Address p_dstAddr, Loading Loading @@ -318,7 +321,6 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @desc This function initiates Neighbor detection. * @desc This function initiates Neighbor detection. * Sent and received packets must be given as templates. * Sent and received packets must be given as templates. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_echoRequest Echo Request to be sent * @param p_nbrSol Neighbor Solicitation to be sent * @param p_nbrSol Neighbor Solicitation to be sent * @param p_nbrAdv template of an NA that is sent by NUT * @param p_nbrAdv template of an NA that is sent by NUT * @return execution status * @return execution status Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +2 −1 Original line number Original line Diff line number Diff line Loading @@ -276,6 +276,7 @@ * @param p_llaAddrNut Local link address of node under test * @param p_llaAddrNut Local link address of node under test * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @param p_echoRequest Received Echo Request * @return execution status * @return execution status */ */ function f_replyToEchoRequest(in template Ipv6Address p_llaAddrTn, function f_replyToEchoRequest(in template Ipv6Address p_llaAddrTn, Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +6 −5 Original line number Original line Diff line number Diff line Loading @@ -60,9 +60,9 @@ * @param p_prefix Prefix * @param p_prefix Prefix * @param p_prefixLen Prefix Length * @param p_prefixLen Prefix Length * @param p_lla Computed link-local address * @param p_lla Computed link-local address * @param p_lla Computed global address * @param p_gla Computed global address * @param p_lla Computed solicited-node multicast address * @param p_solNodeMca Computed solicited-node multicast address * @param p_lla Computed MAC solicited-node multicast address * @param p_macSolNodeMca Computed MAC solicited-node multicast address * @return Execution status * @return Execution status */ */ function f_createIpAddresses( in Oct6to15 p_macAddr, function f_createIpAddresses( in Oct6to15 p_macAddr, Loading Loading @@ -234,6 +234,7 @@ * @desc This goes through the ExtensionHeaderList and * @desc This goes through the ExtensionHeaderList and * checks if a Routing Header type 2 is present. * checks if a Routing Header type 2 is present. * @param p_extHdrList ExtensionHeaderList to be treated * @param p_extHdrList ExtensionHeaderList to be treated * @param p_homeAddr Home Address in the routing header * @return execution status * @return execution status */ */ function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, function f_isPresentRoutingHeaderType2( in ExtensionHeaderList p_extHdrList, Loading Loading @@ -765,7 +766,7 @@ group ipSecFns { /* /* * @desc Initialize security parameters (SAD, keys, algos, ...) * @desc Initialize security parameters (SAD, keys, algos, ...) * @param p_ipSecControl Select manual or automatic SA establishment * @param p_ipSecControl Select manual or automatic SA establishment * @param p_ipSec Select transport or Tunnel mode * @param p_ipSecProtocolMode Select transport or Tunnel mode * @return Execution status * @return Execution status */ */ function f_init_ipSecParams ( function f_init_ipSecParams ( Loading
ttcn3/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Functions.ttcn +11 −77 Original line number Original line Diff line number Diff line Loading @@ -458,7 +458,11 @@ group rfc3775Mipv6_ExtHdrFunctions { * @desc This goes through the Mip header and calculates length, checksum * @desc This goes through the Mip header and calculates length, checksum * and other specific functions of the different messages. * and other specific functions of the different messages. * This function is used when sending messages. * This function is used when sending messages. * @param p_msg ExtensionHeaderList to be treated * @param p_srcAddr Packet Real Source Address * @param p_dstAddr Packet Real Destination Address * @param p_pseudoSrcAddr Packet Pseudo Source Address * @param p_pseudoDstAddr Packet Pseudo Destination Address * @param p_mobileHeader MobileHeader to be treated * @return execution status * @return execution status */ */ function f_setMobileHeader( in Ipv6Address p_srcAddr, function f_setMobileHeader( in Ipv6Address p_srcAddr, Loading Loading @@ -710,7 +714,7 @@ group rfc3775Mipv6_ExtHdrFunctions { /* /* * @desc This goes through the BindingAck and * @desc This goes through the BindingAck and * checks if a NonceIndicesOption is present. * checks if a NonceIndicesOption is present. * @param p_bindingUpdate Binding Update to be treated * @param p_bindingAck Binding Acknowledgement to be treated * @param v_position Position of the NonceIndicesOption in the MobileOptionList * @param v_position Position of the NonceIndicesOption in the MobileOptionList * @return execution status * @return execution status */ */ Loading @@ -734,7 +738,7 @@ group rfc3775Mipv6_ExtHdrFunctions { /* /* * @desc This goes through the BindingAck and * @desc This goes through the BindingAck and * checks if a AuthorizationDataOption is present. * checks if a AuthorizationDataOption is present. * @param p_bindingUpdate Binding Update to be treated * @param p_bindingAck Binding Acknowledgement to be treated * @param v_position Position of the AuthorizationDataOption in the MobileOptionList * @param v_position Position of the AuthorizationDataOption in the MobileOptionList * @return execution status * @return execution status */ */ Loading Loading @@ -1102,77 +1106,6 @@ group rfc4303Esp_ExtHdrFunctions { }//end f_getOriginalIpv6Packet }//end f_getOriginalIpv6Packet /* * @desc * This function is used when sending messages. * @param p_msg ExtensionHeaderList to be treated * @return execution status */ /* function f_setEspHeader( in Ipv6Packet p_ipv6Packet, inout EspHeader p_espHeader) runs on LibIpv6Node return FncRetCode { var Ipv6Header v_originalIpv6Hdr; var EchoRequest v_originalEchoRequest; var EchoReply v_originalEchoReply; //treat MipHdr and other ext if (ispresent(p_espHeader.espPayload.espIpDatagram.extHdrList)) { } if (ispresent(p_espHeader.espPayload.espIpDatagram.ipv6Payload)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoRequestMsg)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6)) {//tunnelMode v_originalIpv6Hdr := p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6; } else { //transportMode v_originalIpv6Hdr := p_ipv6Packet.ipv6Hdr; } //build original packet v_originalEchoRequest := { ipv6Hdr := v_originalIpv6Hdr, extHdrList := omit, ipv6Payload := p_espHeader.espPayload.espIpDatagram.ipv6Payload } //calc checksum if (v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum != c_2ZeroBytes) { //calc checksum v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum := fx_icmpv6Checksum(v_originalEchoRequest); } //assign checksum p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoRequestMsg.checksum := v_originalEchoRequest.ipv6Payload.echoRequestMsg.checksum; } else if (ischosen(p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoReplyMsg)) { if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6)) {//tunnelMode v_originalIpv6Hdr := p_espHeader.espPayload.espIpDatagram.extHdrList[0].tunneledIpv6; } else { //transportMode v_originalIpv6Hdr := p_ipv6Packet.ipv6Hdr; } //build original packet v_originalEchoReply := { ipv6Hdr := v_originalIpv6Hdr, extHdrList := omit, ipv6Payload := p_espHeader.espPayload.espIpDatagram.ipv6Payload } //calc checksum if (v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum != c_2ZeroBytes) { //calc checksum v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum := fx_icmpv6Checksum(v_originalEchoReply); } //assign checksum p_espHeader.espPayload.espIpDatagram.ipv6Payload.echoReplyMsg.checksum := v_originalEchoReply.ipv6Payload.echoReplyMsg.checksum; } } return e_success; }//end f_setEspHeader */ /* /* * @desc * @desc * This function is used to retrieve the index * This function is used to retrieve the index Loading @@ -1184,7 +1117,8 @@ group rfc4303Esp_ExtHdrFunctions { * @param p_idx Index of the SA corresponding to p_spi * @param p_idx Index of the SA corresponding to p_spi * @return execution status * @return execution status */ */ function f_getSaBySpi(in Sad p_sad, in integer p_spi, out integer p_idx) return FncRetCode { function f_getSaBySpi(in Sad p_sad, in integer p_spi, out integer p_idx) return FncRetCode { var integer i := 0; var integer i := 0; for (i:=0; i<sizeof(p_sad); i:=i+1) { for (i:=0; i<sizeof(p_sad); i:=i+1) { if (p_sad[i].spi == p_spi) { if (p_sad[i].spi == p_spi) { Loading @@ -1208,7 +1142,7 @@ group rfc791RootFns { * IPv4 packet payload length (totalLength field in IPv4 header) and ICMPv4 checksum * IPv4 packet payload length (totalLength field in IPv4 header) and ICMPv4 checksum * to their correct values using external functions. * to their correct values using external functions. * @remark The template passed in must NOT contain any matching expressions! * @remark The template passed in must NOT contain any matching expressions! * @param p_echoRequest Ipv4 packet value or template with echo request to be sent * @param p_ipv4Packet Ipv4 packet value or template with echo request to be sent * @return execution status * @return execution status */ */ function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) function f_sendIpv4Packet (in template Ipv4Packet p_ipv4Packet) Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +5 −3 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,8 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_prefixLength Router advertisement option prefix length value * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function * @param p_glaAddrTn Global address of testing node which calls this function * @param p_macUcaTn Local link-layer address of testing node which calls this function * @param p_macUcaTn Local link-layer address of testing node which calls this function * @param p_validLifetime Valid Lifetime to be send in Router Advertisement * @param p_preferredLifetime Preferred Lifetime to be send in Router Advertisement */ */ function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, function f_sendRtAdvWithPrefix_lifeTime( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template Ipv6Address p_dstAddr, Loading Loading @@ -176,6 +178,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @param p_dstAddr Local link address of node under test * @param p_dstAddr Local link address of node under test * @param p_prefixLength Router advertisement option prefix length value * @param p_prefixLength Router advertisement option prefix length value * @param p_glaAddrTn Global address of testing node which calls this function * @param p_glaAddrTn Global address of testing node which calls this function * @param p_linkLayerAddr Router Link-Layer address */ */ function f_sendMipRtAdvWithPrefix( in template Ipv6Address p_llaAddrTn, function f_sendMipRtAdvWithPrefix( in template Ipv6Address p_llaAddrTn, in template Ipv6Address p_dstAddr, in template Ipv6Address p_dstAddr, Loading Loading @@ -318,7 +321,6 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { * @desc This function initiates Neighbor detection. * @desc This function initiates Neighbor detection. * Sent and received packets must be given as templates. * Sent and received packets must be given as templates. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_echoRequest Echo Request to be sent * @param p_nbrSol Neighbor Solicitation to be sent * @param p_nbrSol Neighbor Solicitation to be sent * @param p_nbrAdv template of an NA that is sent by NUT * @param p_nbrAdv template of an NA that is sent by NUT * @return execution status * @return execution status Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_Functions.ttcn +2 −1 Original line number Original line Diff line number Diff line Loading @@ -276,6 +276,7 @@ * @param p_llaAddrNut Local link address of node under test * @param p_llaAddrNut Local link address of node under test * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_identifier Idenitifier to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @param p_seqNo Sequence number to be used in ICMPv6 echo request * @param p_echoRequest Received Echo Request * @return execution status * @return execution status */ */ function f_replyToEchoRequest(in template Ipv6Address p_llaAddrTn, function f_replyToEchoRequest(in template Ipv6Address p_llaAddrTn, Loading