Test Information

TitleCheck the IPV6_DROP_MEMBERSHIP option can be set correctly by setsockopt().
CommandLine./tst_ipv6_drop_membership --log=10.html --title=Check the IPV6_DROP_MEMBERSHIP option can be set correctly by setsockopt().
TestVersionREL_1_1_18
Start2023/01/17 08:42:20
SystemName(null)
KernelVersion(null)

Test Sequence Execution Log

08:42:20Start

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

== join a multicast group on Link0 ==
08:42:20if_nametoindex(ifname:"dummy_ipv6")
08:42:20return 106
08:42:20inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:20return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:20setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:20return 0

== leave this multicast group ==
08:42:20if_nametoindex(ifname:"dummy_ipv6")
08:42:20return 106
08:42:20inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:20return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:20setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:20return 0

== leave dummy_ipv6 to ff03::02 again ==
08:42:20if_nametoindex(ifname:"dummy_ipv6")
08:42:20return 106
08:42:20inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:20return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:20setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:20return error EADDRNOTAVAIL

== bind socket to lo==
08:42:21tst_get_unused_port() get port 51277
08:42:21bind(sockfd:4, my_addr:0x7ffe728b1650, addrlen:28)
08:42:21return 0

== creat recv socket ==
08:42:21socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
08:42:21return sockfd=5

== bind socket to ifaddr0==
08:42:22tst_get_unused_port() get port 58643
08:42:22inet_pton(af:AF_INET6, src:"fe80::686d:b9ff:fea2:3a1", dst:0x7ffe728b1638)
08:42:22return 1, dst=fe80:0000:0000:0000:686d:b9ff:fea2:03a1
08:42:22setsockopt(sockfd:5, level:IPPROTO_ICMP, optname:IPV6_RECVERR, optval:0x7ffe728b1670, optlen:40)
08:42:22return 0
08:42:22bind(sockfd:5, my_addr:0x7ffe728b1630, addrlen:28)
08:42:22return 0
08:42:22if_nametoindex(ifname:"dummy_ipv6")
08:42:22return 106
08:42:22inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:22return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:22inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b1618)
08:42:22return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:22sendto(sockfd:5, buf:0x7ffe728b1608, len:4, flags:0, to:0x7ffe728b1610, tolen:28)
08:42:22return 4
08:42:22recvfrom(sockfd:4, buf:0x7ffe728b1604, len:4, flags:64, from:0x7ffe728b1630, fromlen:28)
08:42:22return -1

== join a multicast group on Link0 ==
08:42:22if_nametoindex(ifname:"dummy_ipv6")
08:42:22return 106
08:42:22inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:22return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:22setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:22return 0

== leave this multicast group with index 0==
08:42:23inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:23return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:23setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:23return 0

== leave this multicast group on Link0 again==
08:42:23if_nametoindex(ifname:"dummy_ipv6")
08:42:23return 106
08:42:23inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:23return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:23setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:23return error EADDRNOTAVAIL

== join a multicast group on Link0 ==
08:42:23if_nametoindex(ifname:"dummy_ipv6")
08:42:23return 106
08:42:23inet_pton(af:AF_INET6, src:"ff03::02", dst:0x7ffe728b16a0)
08:42:23return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
08:42:23setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:23return 0

== leave EINVAL multicast group on Link0 ==
08:42:23if_nametoindex(ifname:"dummy_ipv6")
08:42:23return 106
08:42:23inet_pton(af:AF_INET6, src:"fe80::1", dst:0x7ffe728b16a0)
08:42:23return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
08:42:23setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x7ffe728b16a0, optlen:20)
08:42:23return error EINVAL

OK
08:42:23End