[ntp:hackers] NIC knacks

David L. Mills mills at udel.edu
Mon Feb 11 17:55:57 UTC 2008


P-H,

I dug up the Broadcom chip, but found only an overview descrition and 
crude diagram. It looks very much like the Intel chip, PHY, MAC, PCI, 
memory and a RISC processor. If this thing is running at 125 MB for 25 
us, somewhere over 6000B is sitting waiting its turn.

I'm not sure what those IOCTLs actually do, but it seems output 
timestamping might not be far away, at least in FreeBSD. I'm guessing, 
but it might be that a socket option retrieves the output timestamp for 
the last packet sent. That would take some bookeeping to sort out which 
association sent the packet and warp the timestamp to the right structure.

Did I understand you to say the kernel internal format is NTP double 
precision 32.64, which is a 64-bit quantity? Or by double did you mean 
the NTP 128-bit date format?

Yes, I find the IEEE license rather murky. I have a couple of 1588 NICs, 
although they are somewhat primitive. I've also pored over the Intel 
1588 chip architecture as used in the IE 1588 NIC, which anybody can buy 
for $600.

I would like to keep this issue warm. If the output timestamp is an 
option, I would like to try it and work the protocol to support a 
two-step protocol. The bottom line is that, if I can persuate a 
volunteer to bring up output timestamping, I will do what needs in the 
NTP code.

Dave

Poul-Henning Kamp wrote:

> In message <47AFB6AC.509 at udel.edu>, "David L. Mills" writes:
>
>> P-H,
>>
>> Both machies are Dell with Broadcom BCM5751 Gigabit Ethernet.
>
>
> A clear non-favourite of mine for timekeeping.
>
> As a general rule of thumb, the more performance features a
> NIC has, the more jitter you will see on your timestamps.
>
>> What started me going was trying to assess whether
>> driver timestamping could really help or whether the only hope are 1588
>> NICs.
>
>
> Driver timestamping does help, it still eliminates a lot of kernel
> work from the critical path.
>
> In recent FreeBSD we have the SO_BINTIME socket option which stamps
> with double-precision NTP stamps (32.64), that's both faster and
> more precise because it's the kernels native time format.
>
> The problem is that nobody supports outgoing timestamping yet.
>
> I've been thinking about implementing it in FreeBSD, but somehow
> I've never been able to get across the SO_TIMESTAMPNTPPACKET
> embarasment :-)
>
> If you want me to, I can try to make a kernelpatch for you...
>
> I have been fingered by Intel about IEEE1588 capable chips from
> their side, but I have still not been convinced that the licensing
> of IEEE1588 is resolved.
>
> Last I checked, some years ago, a lawyer from HP told me, that
> anybody who *compiles* the source code, needs a $1000 one time
> license from HP.
>



More information about the hackers mailing list