Test Information

TitleCheck use IPV6_LEAVE_ANYCAST option leave anycast
CommandLine./tst_ipv6_leave_anycast --log=12.html --title=Check use IPV6_LEAVE_ANYCAST option leave anycast
TestVersionREL_1_1_18
Start2023/01/17 08:42:26
SystemName(null)
KernelVersion(null)

Test Sequence Execution Log

08:42:26Start
08:42:27tst_get_unused_port() get port 53370

== create an IPv6 socket ==
08:42:27socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
08:42:27return sockfd=4

== leave this any group ==
08:42:27if_nametoindex(ifname:"dummy_ipv6")
08:42:27return 106
08:42:27inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:27return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:27setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:27return error ENOENT

== join a anycast group on Link0 ==
08:42:27if_nametoindex(ifname:"dummy_ipv6")
08:42:27return 106
08:42:27inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:27return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:27setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:27return 0

== leave this any group ==
08:42:27if_nametoindex(ifname:"dummy_ipv6")
08:42:27return 106
08:42:27inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:27return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:27setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:27return 0

== creat send socket ==
08:42:27socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
08:42:27return sockfd=5
08:42:27inet_pton(af:AF_INET6, src:"::1", dst:0x7ffd8f6b8688)
08:42:27return 1, dst=0000:0000:0000:0000:0000:0000:0000:0001
08:42:27bind(sockfd:5, my_addr:0x7ffd8f6b8680, addrlen:28)
08:42:27return 0
08:42:27setsockopt(sockfd:5, level:IPPROTO_ICMP, optname:IPV6_2292PKTINFO, optval:0x7ffd8f6b8654, optlen:4)
08:42:27return 0
08:42:27bind(sockfd:4, my_addr:0x7ffd8f6b86a0, addrlen:28)
08:42:27return 0
08:42:27inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b8668)
08:42:27return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:27sendto(sockfd:5, buf:0x7ffd8f6b865c, len:4, flags:0, to:0x7ffd8f6b8660, tolen:28)
08:42:27return 4
08:42:27recvfrom(sockfd:4, buf:0x7ffd8f6b8658, len:4, flags:64, from:(nil), fromlen:0)
08:42:27return -1

== join a anycast group on Link0 ==
08:42:27if_nametoindex(ifname:"dummy_ipv6")
08:42:27return 106
08:42:27inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:27return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:27setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:27return 0

== leave this any group ==
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return 0

== leave this any group again ==
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return error ENOENT

== join a anycast group on Link0 ==
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return 0

== leave this anycast group with index 0==
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return 0

== leave this any group ==
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return error ENOENT
08:42:28sendto(sockfd:5, buf:0x7ffd8f6b865c, len:4, flags:0, to:0x7ffd8f6b8660, tolen:28)
08:42:28return 4
08:42:28recvfrom(sockfd:4, buf:0x7ffd8f6b8658, len:4, flags:64, from:(nil), fromlen:0)
08:42:28return -1

== join a anycast group on Link0 ==
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return 0

== leave EINVAL anycast group
08:42:28if_nametoindex(ifname:"dummy_ipv6")
08:42:28return 106
08:42:28inet_pton(af:AF_INET6, src:"ff03::01", dst:0x7ffd8f6b86c0)
08:42:28return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0001
08:42:28setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x7ffd8f6b86c0, optlen:20)
08:42:28return error ENOENT

OK
08:42:28End