16:32:36 | Start |
| == Case1: Can not set odd value == |
| == create an IPv6 raw socket == |
16:32:36 | socket(domain:AF_INET6, type:SOCK_RAW, protocol:IPPROTO_NONE)
|
16:32:36 | return sockfd=4
|
| == set the value of IPV6_CHECKSUM option to 3 == |
16:32:36 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_CHECKSUM, optval:0x3ffeacf8bd8, optlen:4)
|
16:32:36 | return error EINVAL
|
| == Case2: Default checksum option == |
| == bind socket to address == |
16:32:36 | bind(sockfd:4, my_addr:0x3ffeacf8ca4, addrlen:28)
|
16:32:36 | return 0
|
| == sendto message to interface lo == |
16:32:37 | sendto(sockfd:4, buf:0x3ffeacf8c40, len:100, flags:0, to:0x3ffeacf8ca4, tolen:28)
|
16:32:37 | return 100
|
| == recv message on IPv6 socket == |
16:32:37 | recv(sockfd:4, buf:0x3ffeacf8bdc, len:100, flags:64)
|
16:32:37 | return 100
|
| == Case3: checksum option is 2 and send to itself == |
| == set the value of IPV6_CHECKSUM option to 2 == |
16:32:37 | setsockopt(sockfd:4, level:IPPROTO_IPV6, optname:IPV6_CHECKSUM, optval:0x3ffeacf8bd8, optlen:4)
|
16:32:37 | return 0
|
| == sendto message to interface lo == |
16:32:37 | sendto(sockfd:4, buf:0x3ffeacf8c40, len:100, flags:0, to:0x3ffeacf8ca4, tolen:28)
|
16:32:37 | return 100
|
| == recv message on IPv6 socket == |
16:32:37 | recv(sockfd:4, buf:0x3ffeacf8bdc, len:100, flags:64)
|
16:32:37 | return 100
|
| == Case4: checksum option is 2 and send to another sock == |
| == create an IPv6 socket == |
16:32:37 | socket(domain:AF_INET6, type:SOCK_RAW, protocol:IPPROTO_NONE)
|
16:32:37 | return sockfd=5
|
| == bind socket to address == |
16:32:37 | bind(sockfd:5, my_addr:0x3ffeacf8ca4, addrlen:28)
|
16:32:37 | return 0
|
| == sendto message to interface lo == |
16:32:37 | sendto(sockfd:4, buf:0x3ffeacf8c40, len:100, flags:0, to:0x3ffeacf8ca4, tolen:28)
|
16:32:37 | return 100
|
| == recv message on IPv6 socket == |
16:32:38 | recv(sockfd:5, buf:0x3ffeacf8bdc, len:100, flags:64)
|
16:32:38 | return 100
|
16:32:38 | close(5)
|
16:32:38 | close(4)
|
| OK |
16:32:38 | End |