I'm writing a CAN logger program. The way I log the data is similar to the way the candump-tool is doing it, when invoking candump like candump any:https://github.com/linux-can/can-utils/blob/master/candump.c
candump any makes candump bind to any device, i.e. addr.can_ifindex = 0; then it uses recvmsg to obtain a CAN frame, then it gets the on the struct msghdr msg; attached timestamp to write it into the log file or onto the screen.
My question here is, whether the kernel ensures that the following is always valid:
msg = recvmsg(_skt);timestamp_1 = getTimestamp(msg);msg = recvmsg(_skt);timestamp_2 = getTimestamp(msg);assert(timestamp_1 < timestamp_2);A hint to the source code location in the SocketCAN driver would be helpful too.