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/26 16:34:14
SystemName(null)
KernelVersion(null)

Test Sequence Execution Log

16:34:14Start
16:34:15tst_get_unused_port() get port 49529

== create an IPv6 socket ==
16:34:15socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
16:34:15return sockfd=4

== leave this any group ==
16:34:15if_nametoindex(ifname:"dummy_ipv6")
16:34:15return 125
16:34:15inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffc0378de8)
16:34:15return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
16:34:15setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffc0378de8, optlen:20)
16:34:15return error ENOENT

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

== leave this any group ==
16:34:16if_nametoindex(ifname:"dummy_ipv6")
16:34:16return 125
16:34:16inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffc0378de8)
16:34:16return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
16:34:16setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffc0378de8, optlen:20)
16:34:16return 0

== creat send socket ==
16:34:16socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
16:34:16return sockfd=5
16:34:16inet_pton(af:AF_INET6, src:"::1", dst:0x3ffc0378db8)
16:34:16return 1, dst=0000:0000:0000:0000:0000:0000:0000:0001
16:34:16bind(sockfd:5, my_addr:0x3ffc0378db0, addrlen:28)
16:34:16return 0
16:34:16setsockopt(sockfd:5, level:IPPROTO_ICMP, optname:IPV6_2292PKTINFO, optval:0x3ffc0378d88, optlen:4)
16:34:16return 0
16:34:16bind(sockfd:4, my_addr:0x3ffc0378dcc, addrlen:28)
16:34:16return 0
16:34:16inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffc0378d9c)
16:34:16return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
16:34:16sendto(sockfd:5, buf:0x3ffc0378d90, len:4, flags:0, to:0x3ffc0378d94, tolen:28)
16:34:16return 4
16:34:16recvfrom(sockfd:4, buf:0x3ffc0378d8c, len:4, flags:64, from:(nil), fromlen:0)
16:34:16return -1

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

== leave this any group ==
16:34:16if_nametoindex(ifname:"dummy_ipv6")
16:34:16return 125
16:34:16inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffc0378de8)
16:34:16return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
16:34:16setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffc0378de8, optlen:20)
16:34:16return 0

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

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

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

== leave this any group ==
16:34:16if_nametoindex(ifname:"dummy_ipv6")
16:34:16return 125
16:34:16inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffc0378de8)
16:34:16return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
16:34:16setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_ANYCAST, optval:0x3ffc0378de8, optlen:20)
16:34:16return error ENOENT
16:34:16sendto(sockfd:5, buf:0x3ffc0378d90, len:4, flags:0, to:0x3ffc0378d94, tolen:28)
16:34:16return 4
16:34:16recvfrom(sockfd:4, buf:0x3ffc0378d8c, len:4, flags:64, from:(nil), fromlen:0)
16:34:16return -1

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

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

OK
16:34:17End