Tx timestamping w/C++ & "raw" ethernet driver (i.e., non-UHD)


I’m having a problem getting scheduled transmissions to occur when I
think they should.

I am sending out tx packets with:

start_of_burst = 1
send_now = 0
end_of_burst = 1 if just 1 packet, else 0
timestamp = “the appropriate value”

The timestamp hardware has been configured to reset every PPS.

The behavior I’m trying to achieve is one/burst packet sent every 640

The calculated timestamps appear to be set correctly (i.e., I’ve
checked them and they advance by 640ms and wrap when they “overflow” a

I thought that the USRP2 might throttle my code (i.e., not accept
another send (transmit request) while a send is pending) but that does
not appear to be happening (i.e., the code pretty much continuously
sends xmits)

What I see is a bunch of packets going out, then a few go out, then a
bunch more (repeat indefinitely).

I realize a might “buy” myself a little time if I didn’t reset the
timestamp h/w every second, but it will wrap eventually, so I had
thought that it didn’t matter (however, if it does, I’d appreciate
learning so).

Any thoughts/suggestions very much appreciated.