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

Test Sequence Execution Log

01:02:16Start

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

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

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

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

== bind socket to lo==
01:02:18tst_get_unused_port() get port 59965
01:02:18bind(sockfd:4, my_addr:0x3ffd31f911c, addrlen:28)
01:02:18return 0

== creat recv socket ==
01:02:18socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
01:02:18return sockfd=5

== bind socket to ifaddr0==
01:02:19tst_get_unused_port() get port 38573
01:02:19inet_pton(af:AF_INET6, src:"fe80::4caa:b0ff:fe5b:7108", dst:0x3ffd31f9108)
01:02:19return 1, dst=fe80:0000:0000:0000:4caa:b0ff:fe5b:7108
01:02:19setsockopt(sockfd:5, level:IPPROTO_ICMP, optname:IPV6_RECVERR, optval:0x3ffd31f9138, optlen:40)
01:02:19return 0
01:02:19bind(sockfd:5, my_addr:0x3ffd31f9100, addrlen:28)
01:02:19return 0
01:02:19if_nametoindex(ifname:"dummy_ipv6")
01:02:19return 3
01:02:19inet_pton(af:AF_INET6, src:"ff03::02", dst:0x3ffd31f9164)
01:02:19return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
01:02:19inet_pton(af:AF_INET6, src:"ff03::02", dst:0x3ffd31f90ec)
01:02:19return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0002
01:02:19sendto(sockfd:5, buf:0x3ffd31f90dc, len:4, flags:0, to:0x3ffd31f90e4, tolen:28)
01:02:19return 4
01:02:19recvfrom(sockfd:4, buf:0x3ffd31f90d8, len:4, flags:64, from:0x3ffd31f9100, fromlen:28)
01:02:19return -1

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

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

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

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

== leave EINVAL multicast group on Link0 ==
01:02:19if_nametoindex(ifname:"dummy_ipv6")
01:02:19return 3
01:02:19inet_pton(af:AF_INET6, src:"fe80::1", dst:0x3ffd31f9164)
01:02:19return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0001
01:02:19setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_LEAVE_GROUP, optval:0x3ffd31f9164, optlen:20)
01:02:19return error EINVAL

OK
01:02:19End