module test_LibItsExternalFunctions { import from LibCommon_BasicTypesAndValues { type UInt8 }; import from LibItsIpv6OverGeoNetworking_TypesAndValues { type Ipv6Address, RouterAdvertisementMsg }; import from LibItsIpv6OverGeoNetworking_Functions all; import from test_CommonCodec all; template (value) UInt8 m_ICMPv6_protocoId := 58; // = 0x3a: ICMPv6 protocol ID group testValues_01 { template (value) Ipv6Address m_src_01 := 'fe80000000000000020086fffe0580da'O; // fe80::200:86ff:fe05:80da template (value) Ipv6Address m_dst_01 := 'fe80000000000000026097fffe0769ea'O; // fe80::260:97ff:fe07:69ea template (value) octetstring m_ipv6Payload_01 := '8700000000000000fe80000000000000026097fffe0769ea01010000860580da'O; // template (value) octetstring m_ipv6Payload_01 := '870068bd00000000fe80000000000000026097fffe0769ea01010000860580da'O; /*template (value) RouterAdvertisementMsg m_ipv6Payload := { icmpType := c_rtAdvMsg, icmpCode := 0, checksum := '68bd'O, curHopLimit := , managedConfigFlag, otherConfigFlag, homeAgentFlag, reserved, routerLifetime, reachableTime, retransTimer, rtAdvOptions := omit }*/ template (value) integer m_payloadLength_01 := 32; template octetstring mw_checksum_01 := '68bd'O; } // End of group testValues_01 group testValues_02 { template (value) Ipv6Address m_src_02 := '2001ffff000000000000000000000002'O; template (value) Ipv6Address m_dst_02 := '2001ffff000000000000000000000001'O; template (value) octetstring m_ipv6Payload_02 := '80000000636801004a43ec45d23f0b0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'O; // template (value) octetstring m_ipv6Payload_02 := '8000dc4b636801004a43ec45d23f0b0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'O; template (value) integer m_payloadLength_02 := 64; template octetstring mw_checksum_02 := 'dc4b'O; } // End of group testValues_02 group testValues_03 { template (value) Ipv6Address m_src_03 := '2001ffff000000000000000000000001'O; // 2001:ffff::1 template (value) Ipv6Address m_dst_03 := '2001ffff000000000000000000000002'O; // 2001:ffff::2 template (value) octetstring m_ipv6Payload_03 := '8100000072680500b043ec45f3500b0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'O; // template (value) octetstring m_ipv6Payload_03 := '8100413a72680500b043ec45f3500b0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'O; template (value) integer m_payloadLength_03 := 64; template octetstring mw_checksum_03 := '413a'O; } // End of group testValues_03 group externalFunctions { testcase tc_computeIPv6Checksum_01() runs on TCType system TCType { var octetstring v_checksum; v_checksum := f_computeIPv6CheckSum( m_src_01, m_dst_01, m_payloadLength_01, m_ipv6Payload_01, m_ICMPv6_protocoId); if (match(v_checksum, mw_checksum_01) == true) { setverdict(pass); } else { setverdict(fail); } } testcase tc_computeIPv6Checksum_02() runs on TCType system TCType { var octetstring v_checksum; v_checksum := f_computeIPv6CheckSum( m_src_02, m_dst_02, m_payloadLength_02, m_ipv6Payload_02, m_ICMPv6_protocoId); if (match(v_checksum, mw_checksum_02) == true) { setverdict(pass); } else { setverdict(fail); } } testcase tc_computeIPv6Checksum_03() runs on TCType system TCType { var octetstring v_checksum; v_checksum := f_computeIPv6CheckSum( m_src_03, m_dst_03, m_payloadLength_03, m_ipv6Payload_03, m_ICMPv6_protocoId); if (match(v_checksum, mw_checksum_03) == true) { setverdict(pass); } else { setverdict(fail); } } } // End of group externalFunctions } // End of module test_LibItsExternalFunctions