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, does the kernel ensures that the following assert is always valid?
msg = recvmsg(_skt);timestamp_1 = getTimestamp(msg);msg = recvmsg(_skt);timestamp_2 = getTimestamp(msg);// Always valid?assert(timestamp_1 < timestamp_2);A hint to the source code location in the SocketCAN driver would be helpful too.