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