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/02/03 01:02:22
SystemName(null)
KernelVersion(null)

Test Sequence Execution Log

01:02:22Start
01:02:23tst_get_unused_port() get port 43759

== create an IPv6 socket ==
01:02:23socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
01:02:23return sockfd=4

== leave this any group ==
01:02:23if_nametoindex(ifname:"dummy_ipv6")
01:02:23return 3
01:02:23inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:23return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:23setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:23return error ENOENT

== join a anycast group on Link0 ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

== leave this any group ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

== creat send socket ==
01:02:24socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
01:02:24return sockfd=5
01:02:24inet_pton(af:AF_INET6, src:"::1", dst:0x3ffcd6f8448)
01:02:24return 1, dst=0000:0000:0000:0000:0000:0000:0000:0001
01:02:24bind(sockfd:5, my_addr:0x3ffcd6f8440, addrlen:28)
01:02:24return 0
01:02:24setsockopt(sockfd:5, level:IPPROTO_ICMP, optname:IPV6_2292PKTINFO, optval:0x3ffcd6f8418, optlen:4)
01:02:24return 0
01:02:24bind(sockfd:4, my_addr:0x3ffcd6f845c, addrlen:28)
01:02:24return 0
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f842c)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24sendto(sockfd:5, buf:0x3ffcd6f8420, len:4, flags:0, to:0x3ffcd6f8424, tolen:28)
01:02:24return 4
01:02:24recvfrom(sockfd:4, buf:0x3ffcd6f841c, len:4, flags:64, from:(nil), fromlen:0)
01:02:24return -1

== join a anycast group on Link0 ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

== leave this any group ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

== leave this any group again ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return error ENOENT

== join a anycast group on Link0 ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

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

== leave this any group ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return error ENOENT
01:02:24sendto(sockfd:5, buf:0x3ffcd6f8420, len:4, flags:0, to:0x3ffcd6f8424, tolen:28)
01:02:24return 4
01:02:24recvfrom(sockfd:4, buf:0x3ffcd6f841c, len:4, flags:64, from:(nil), fromlen:0)
01:02:24return -1

== join a anycast group on Link0 ==
01:02:24if_nametoindex(ifname:"dummy_ipv6")
01:02:24return 3
01:02:24inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffcd6f8478)
01:02:24return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:24setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_ANYCAST, optval:0x3ffcd6f8478, optlen:20)
01:02:24return 0

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

OK
01:02:25End