timestamping checks socket options during initialisation. For the field bind_phc of the socket option SO_TIMESTAMPING it expects the value -1 if PHC is not bound. Actually the value of bind_phc is 0 if PHC is not bound. This results in the following output: SIOCSHWTSTAMP: tx_type 0 requested, got 0; rx_filter 0 requested, got 0 SO_TIMESTAMP 0 SO_TIMESTAMPNS 0 SO_TIMESTAMPING flags 0, bind phc 0 not expected, flags 0, bind phc -1 This is fixed by setting default value and expected value of bind_phc to 0.
Unified · Split
| @@ -325,8 +325,8 @@ int main(int argc, char **argv) · 324 unmodified lines | |||
| 325 | struct ifreq device; | 325 | struct ifreq device; |
| 326 | struct ifreq hwtstamp; | 326 | struct ifreq hwtstamp; |
| 327 | struct hwtstamp_config hwconfig, hwconfig_requested; | 327 | struct hwtstamp_config hwconfig, hwconfig_requested; |
| 328 | struct so_timestamping so_timestamping_get = { 0, -1 }; | 328 | struct so_timestamping so_timestamping_get = { 0, 0 }; |
| 329 | struct so_timestamping so_timestamping = { 0, -1 }; | 329 | struct so_timestamping so_timestamping = { 0, 0 }; |
| 330 | struct sockaddr_in addr; | 330 | struct sockaddr_in addr; |
| 331 | struct ip_mreq imr; | 331 | struct ip_mreq imr; |
| 332 | struct in_addr iaddr; | 332 | struct in_addr iaddr; |