Ali Gholami Rudi wrote:
> "Duyck, Alexander H" <[email protected]> wrote:
>> Ali Gholami Rudi wrote:
>>> But I tried reading E1000_RXSTMP[LH] registers as soon as
>>> E1000_RXD_STAT_TS is set with no luck; ie. the timestamp was
>>> activated only for ptp packets (even tried reading those registers
>>> regardless of .._STAT_TS without success).  So as you said, that
>>> probably means HWTSTAMP_FILTER_ALL is not working on my HW.  Is
>>> there a way to find out if HWTSTAMP_FILTER_ALL is supported by the
>>> HW so that the igb driver return -ERANGE from the ioctl()?
>> 
>> I think I see the problem.  If TSYNCRXCTL.TYPE=100b, aka
>> HWTSTAMP_FILTER_ ALL, all the packets are time stamped; however,
>> this bit is never set as the time stamp value is not locked.
> 
> But I remember reading E1000_RXSTMP[LH] when packets arrived
> regardless of E1000_RXD_STAT_TS and AFAIR, it contained all zeros or
> something like that for non-ptp packets.
> 
> Thanks,
> Ali

The problem is that there is only one register.  As a result when you read the 
E1000_RXSTMP[LH] you end up reading the last timestamp that was recorded, not 
necessarily the one for your packet.  This is due to the fact that all locking 
of the registers is disabled when set to 100b.

The next version of the hardware, the 82580 MAC, will have support for placing 
the timestamps into the packet header itself so then when you enable the 
timestamp all mode you will be able to differentiate the timestamps between 
packets.

Thanks,

Alex
------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to