16:32:14 | Start |
| == create an IPv6 socket == |
16:32:14 | socket(domain:AF_INET6, type:SOCK_DGRAM, protocol:0)
|
16:32:14 | return sockfd=4
|
| == join to a multicast group on Link0 == |
16:32:14 | if_nametoindex(ifname:"dummy_ipv6")
|
16:32:14 | return 125
|
16:32:14 | inet_pton(af:AF_INET6, src:"ff03::00", dst:0x3ffc28f92bc)
|
16:32:14 | return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0000
|
16:32:14 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92cc, optlen:20)
|
16:32:14 | return 0
|
| == join to the same multicast group on Link0 == |
16:32:14 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92cc, optlen:20)
|
16:32:14 | return error EADDRINUSE
|
| == join to the same multicast group on lo == |
16:32:14 | if_nametoindex(ifname:"lo")
|
16:32:14 | return 1
|
16:32:14 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92cc, optlen:20)
|
16:32:14 | return 0
|
| == join to a multicast group with address is not multicast address == |
16:32:14 | inet_pton(af:AF_INET6, src:"fe80::00", dst:0x3ffc28f92cc)
|
16:32:14 | return 1, dst=fe80:0000:0000:0000:0000:0000:0000:0000
|
16:32:14 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92cc, optlen:20)
|
16:32:14 | return error EINVAL
|
| == join to a multicast group with bad paramter == |
16:32:14 | inet_pton(af:AF_INET6, src:"ff03::01", dst:0x3ffc28f92cc)
|
16:32:14 | return 1, dst=ff03:0000:0000:0000:0000:0000:0000:0001
|
16:32:14 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92bc, optlen:16)
|
16:32:14 | return error EINVAL
|
| == join to the same multicast group with the interface index is specified as 0 == |
16:32:15 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_JOIN_GROUP, optval:0x3ffc28f92cc, optlen:20)
|
16:32:15 | return 0
|
16:32:15 | close(4)
|
| OK |
16:32:15 | End |