The value of the software timestamp is the start time for the poll that fetches the packet from the hardware.
Rarely, a packet might arrive during a poll, and can then be given the same timestamp as an earlier packet fetched by the same poll. If you are also using hardware timestamping for such a packet, its software timestamp might be earlier than its hardware timestamp.