Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
4810 Discussions

Hardware Timestamp on windows

Ossama-MOUSTAFA
New Contributor II
15,641 Views

Hello. 

 

I would like to use hardware timestamping on windows, so I try to use this : 

https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getinterfaceactivetimestampcapabilities

 

But I only get this error : "ERROR_BAD_DRIVER"

(I already tried to update my drivers, on windows 11, and also on windows server 2022.)

 

I have 2 intel network adapters now : i219-LM and i210-T1. 

 

Do you know if intel support hardware timestamp on windows please ? 

Or only on linux ? 

https://www.intel.ca/content/www/ca/en/products/sku/82185/intel-ethernet-connection-i219lm/specifications.html 

 

In this page, specifications indicate that it does support PTP IEEE 1588, 

but it's not specified if it does support only software timestamp on windows or more.

 

Do you know if any other intel network adapter does support hardware timestamp on windows, please ? 

 

Kind regards. 

0 Kudos
103 Replies
Caguicla_Intel
Moderator
5,855 Views

Hello Ossama,


Thank you for posting in Intel Ethernet Communities. 


Can you share the exact Operating System you use?


You may also consider visiting below link for more information on which Ethernet controllers support Hardware Timestamp. 


Does Intel® Ethernet Network Adapter I350 Series Supports Precision Time Protocol (PTP) Hardware (HW) Timestamp under Windows® 10?

https://www.intel.com/content/www/us/en/support/articles/000089268/ethernet-products/gigabit-ethernet-adapters-up-to-2-5gbe.html


Do Intel Ethernet Drivers Support IEEE 1588 in Windows*?

https://www.intel.com/content/www/us/en/support/articles/000033862/ethernet-products.html


Hoping to hear from you soon. 


Should there be no reply, we will follow up after 3 business days. 


Best regards,

Crisselle C

Intel® Customer Support 


Ossama-MOUSTAFA
New Contributor II
5,851 Views

Hello @Caguicla_Intel , thank you for your answer.

Right now, I am using windows server 2022

( Edition Windows Server 2022 Datacenter Evaluation. Version 21H2. OS build 20348.1311 ), 

but I also tried on windows 10, and windows 11, and windows 10 IOT, but I always have the same error at best.

Your website indicates that e1r devices (I210, I211 and I350) support hardware timestamp, 

I do have a i210 network adapter with last driver, and yes,

I can activate the option for hardware timestamp on ProSet Adapter Configuration Utility, or on windows settings directly, 

but I still have the error "ERROR_BAD_DRIVER" when I try to use this : 

https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getinterfaceactivetimestampcapabilities .

And yes, I am using NDIS mechanism, as your website is indicating. 

 

Do you know how we could use hardware timestamp on these intel drivers on Windows please, 

or why it doesn't work ? 

(It does work, but only for Linux.)

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,804 Views

Hello Ossama,


Thank you for the swift response. 


Can you provide System Support Utility (SSU) log of your system as we will be escalating this request to our engineers. The SSU will allow us to check your Adapter details and configuration. Kindly refer to the steps below.

a- Go to https://downloadcenter.intel.com/download/25293/Intel-System-Support-Utility-for-Windows-?product=91600

b- Open SSU.exe

c- Mark the box "Everything" and then click "Scan".

d- When finished scanning, click "Next".

e- Click on "Save" and attach the file to a post.


Looking forward to hear from you. 


Should there be no reply, we will follow up after 3 business days.


Best regards,

Crisselle C.

Intel® Customer Support


Ossama-MOUSTAFA
New Contributor II
5,792 Views

Hi @Caguicla_Intel.

 

Ok, here is the result of my scan. 

 

Thank you. 

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,767 Views

Hello Ossama,


Thank you for providing the requested information. 


Please allow us to further check this request with our engineers. We will give you an update as soon as possible but no later than 3 business days.


Hoping for your kind patience.


Best regards,

Crisselle C.

Intel® Customer Support


Ossama-MOUSTAFA
New Contributor II
5,755 Views

Hi @Caguicla_Intel

 

Thank you for your answer. 

 

Ok, I will wait. 

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,741 Views

Hello Ossama,


Good day!


Our engineering team is requesting for the front and back photos of the adapter and we hope you don't mind sharing this with us. It will help us identify if you are using an Original Equipment Manufacturer(OEM) or retail version of Intel Ethernet Adapter.


Looking forward to your reply.


We will follow up after 3 business days in case we don't hear from you. 


Best regards,

Crisselle C.

Intel® Customer Support 


Ossama-MOUSTAFA
New Contributor II
5,713 Views

Hi @Caguicla_Intel.

Ok, here are photos of these adapters. 

 

It's on a motherboard made by HP (model : Z4).

 

IMG_8091.jpg

 

Here are the 2 adapters : RU31JA-SWD3-ECO-OH 18022610 

 

 

IMG_8084.jpg

 

And the other one : RU31JA-SWD3-ECO-OH 18022610 (exactly the same name.)

 

IMG_8080.jpg

 

Here is also a photo of the front :  

 

IMG_8087.jpg

 

Actually, these network adapters support some hardware timestamps (only for received event messages, and tagged transmit), 

but it's not active. How could I active them on windows please ? 

 

(I already tried to update the driver and to enable/disable "PTP Hardware Timestamp"

and/or "SoftwareTimestamp" on drivers configurations.)

 

Ossama_1-1670525105886.png

 

GetInterfaceSupportedTimestampCapabilities returns true for PtpV2OverUdpIPv4EventMessageReceive

and TaggedTransmit only, but GetInterfaceActiveTimestampCapabilities only returns "ERROR_BAD_DRIVER" each time. 

https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getinterfacesupportedtimestampcapabilities

and https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getinterfaceactivetimestampcapabilities ) )

 

I have the same problem on these i219-lm and i210 intel network adapters. 

 

But also on a i211 intel network adapter. 

 

I have questions, please, if it doesn't bother you :

Would I have the same problem on all intel network adapters ? 

As an example, if I buy and try a i350 (i350-T4V2 ?), would it be the same problem ? 

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,705 Views

Hello Ossama,


Thank you for the reply. 


Will you be able to provide the photos of your I210-T1 and I211 (if PCIe adapter) so we can identify if you are using an Original Equipment Manufacturer(OEM) or retail version of Intel Ethernet Adapter. Unfortunately, the photos provided are LAN on Motherboard (LOM) which is embedded on the board. For Original Equipment Manufacturer(OEM) on-board Ethernet controller, we'd like to set your expectation that we have a limited support and it would be best if you can also get in touch with your manufacturer for further support since they have customized drivers and software to enable or alter features on your system. They are in best position where you can seek assistance so you don’t lose features or customizations of the Ethernet controller. 


Looking forward to your reply.


In case we don't hear from you, we will follow up after 3 business days.


Best regards,

Crisselle C.

Intel® Customer Support


Ossama-MOUSTAFA
New Contributor II
5,698 Views

Hi. 

 

Thank you for your quick reply.

 

Yes, I think it's an OEM version from HP, I can't find any intel ethernet adapter.

(HP Z4 G4 Workstation, with Intel® Xeon® W Processor.)

 

I contacted HP, but i don't use any HP driver/software, I only use stock windows 11

(downloaded from microsoft's website), with intel drivers :

 https://www.intel.com/content/www/us/en/download/18293/intel-network-adapter-driver-for-windows-10.html 

(also tried with windows 10, and windows 10 iot, and windows server 2022), 

so HP just said they can't help me for that, and I would have to contact intel instead, 

since they "didn't disabled hardware timestamp on windows" for these network cards, as they said. 

(For i219-lm and i210.)

 

Ossama_0-1670597149331.png

 

Best regards. 

 

 

 

0 Kudos
Caguicla_Intel
Moderator
5,667 Views

Hello Ossama,


Appreciate your swift response. 


Please allow us to continue checking this request with our engineers. We will give you an update as soon as possible but no later than 3 business days. 


Hoping for your kind patience. 


Best regards,

Crisselle C.

Intel® Customer Support 


Ossama-MOUSTAFA
New Contributor II
5,654 Views

Hi. 

 

Ok, thank you for this update. 

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,626 Views

Hello Ossama,


Good day!


Please be informed that we are still checking this request. Rest assured that we will give you an update as soon as we heard from our engineers but no later than 3 business days. 


Thank you for your kind understanding.


Best regards,

Crisselle C.

Intel® Customer Support


Ossama-MOUSTAFA
New Contributor II
5,616 Views

Hi. 

 

Ok, thank you. 

 

Have a good day. 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,593 Views

Hello Ossama,


Thank you for your kind patience on this matter. 


HW Timestamp is supported on e1r devices (I210, I211 and I350). However, you need to use the ProSet Adapter Configuration Utility (ACU) to set this to enable. This will set the *PTPhardwaretimestamp registry key.

https://www.intel.com/content/www/us/en/download/18293/intel-network-adapter-driver-for-windows-10.html

 

Unfortunately, if you are going to use Windows 11, Intel® PROSet and Intel® Advanced Network Services (Intel® ANS) is not supported. Best to try it on Windows 10. 

https://www.intel.com/content/www/us/en/support/articles/000087483/ethernet-products.html


Feel free to let us know if you have questions or clarifications. 


Awaiting to hear from you soon.


We will follow up after 3 business days in case we don't receive a reply. 


Best regards,

Crisselle C.

Intel® Customer Support


lexa
New Contributor I
5,556 Views

Hello Criselle,

 

Windows 10 does not support packet timestamping, so it's useless trying this on Windows 10. If you look at the documentation for GetInterfaceSupportedTimestampCapabilities here https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getinterfacesupportedtimestampcapabilities you will see that this is supported since build 20348.

 

Windows 10 22H2 is build 19045 see here https://en.wikipedia.org/wiki/Windows_10_version_history, so packet timestamping won't work on Windows 10.

 

Unfortunately Microsoft created a mess with Windows version numbers. If you programmatically read out the OS version even when running on Windows 11 you will get a 10 as major version. So you have really to look at the build number instead. I guess Microsoft stumbled upon their own mess in the GetInterfaceSupportedTimestampCapabilities documentation and they woukd have to wite Windows 11 and Server 2022 respectively.

 

If you look at the documentation for CaptureInterfaceHardwareCrossTimestamp here https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-captureinterfacehardwarecrosstimestamp  it's more clear as you see at the bottom of the page the function is either supported on Windows 11 or Windows Server 2022.

 

So making support for packet timestamping dependent on Intel® PROSet Adapter Configuration Utility is a bad idea as it's - as you write - not supported under Windows 11.

 

I also don't understand why Intel® PROSet Adapter Configuration Utility should be necessary at all, because PTP hardware timestamping can be enabled in the standard Windows configuration dialog that can be rached by the default Windows device manager:

lexa_0-1671200557801.png

As you can see your competitor Mellanox (now Nvidia) supports this perfectly and the NICs perfectly deliver timestamps.

 

Also the i210-T1 does support this:

lexa_1-1671200669325.png

 

It's just not working because calling GetInterfaceSupportedTimestampCapabilities results in ERROR_BAD_DRIVER.

 

I think you should again talk back with your engineers.

 

Merry Christmas

Axel

Ossama-MOUSTAFA
New Contributor II
5,556 Views

Hi. 

 

Thank you for your answer. 

 

Ok, thank you, is it also supported on I217-LM and I219-V ? 

 

I would like to use GPTP ( https://github.com/Avnu/gptp , made by you, intel ), and apparently it was made only for i217-LM and i219-V ? 

 

https://github.com/Avnu/gptp/blob/master/windows/daemon_cl/windows_hal.hpp ) 

 

#define I217_DESC "I217-LM"
#define I219_DESC "I219-V"

#define NETWORK_CARD_ID_PREFIX "\\\\.\\"			/*!< Network adapter prefix */
#define OID_INTEL_GET_RXSTAMP 0xFF020264			/*!< Get RX timestamp code*/
#define OID_INTEL_GET_TXSTAMP 0xFF020263			/*!< Get TX timestamp code*/
#define OID_INTEL_GET_SYSTIM  0xFF020262			/*!< Get system time code */
#define OID_INTEL_SET_SYSTIM  0xFF020261			/*!< Set system time code */

typedef struct
{
	uint32_t clock_rate;
	char *device_desc;
} DeviceClockRateMapping;

/**
* @brief Maps network device type to device clock rate
*/
static DeviceClockRateMapping DeviceClockRateMap[] =
{
	{ 1000000000, I217_DESC	},
	{ 1008000000, I219_DESC	},
	{ 0, NULL },
};

 

Or could it work also for my i219-LM or i210

 

I get errors with this code "OID_INTEL_GET_TXSTAMP", when I try to get the transmission hardware timestamp, the error is just "ERROR_GEN_FAILURE" ("A device attached to the system is not functioning"), could I have more details about this error please ? 

(Is it because or my network cards, would it be better with a i350, or i217-LM, or i219-V ?)

 

Or do I have to do anything else in order to activate TX timestamp please ? 

 

Yes, I already tried with ProSet Adapter Configuration Utility to set hardware timestamp to enabled on windows 10,

and also on windows 10 IOT, but I still have the same problems. (Same problem that I have on windows server 2022 and windows 11.)

 

Best regards. 

0 Kudos
lexa
New Contributor I
5,547 Views

Hi Ossama,

 

are you sure you want to use Avnu's gptp? The code wasn't touched for years.

 

It won't work with the standard Intel driver as it makes use of OIDs (additional DeviceIoControl Codes the driver has to react on). At that time it was used, because there was no timestamping facility on Windows. IIRC you had to have a special driver from Intel at that time. I can't imagine that they left that experimental code in  today's release drivers. But who knows, there seems to be enough chaos if we look at the 27.8 driver pack that had to be revoked after it was already published.

 

Today we want to use the NICs the standard way with the new Windows API, but unfortunately the Intel drivers don't work (ERROR_BAD_DRIVER).

 

It's also embarassing that for many Intel boards which do have timestamping support in hardware and which work perfectly (regarding timestamps) under Linux, do not offer timestamping support under Windows (i.e. i350) at all.

 

Neither there are 10GBit/s which do.

 

The only adapters are X700 and E810 series, but one needs a money printer for these big irons.

 

What is needed is functioning drivers and support for i350 and X550.

Ossama-MOUSTAFA
New Contributor II
5,541 Views

Hi. 

 

Yes, it's the only PTP application I found that could maybe work with hardware timestamp on windows. 

Ok, thank you very much for these information about OIDs, I will try to check this. 

 

You are right, I hope intel could help use about this "ERROR_BAD_DRIVER" on windows.

@Caguicla_Intel : Do you have any idea about this please ? )

 

(As you say, these intel network cards have hardware timestamp on Linux, and PTP4L can use it easily.)

 

https://www.intel.com/content/www/us/en/support/articles/000033862/ethernet-products.html 

" E1R - driver for the I210, I211, and I350 devices

ICEA - driver for the E810 family "

 

I didn't know for X700, that's interesting, thank you. 

 

Best regards. 

0 Kudos
Caguicla_Intel
Moderator
5,334 Views

Hi Ossama and Axel,


Thank you for your reply.


Please allow us to re-escalate the request to our engineers. We will give you an update as soon as possible but no later than 3 business days.


Hoping for your kind patience.


Best regards,

Crisselle C.

Intel® Customer Support


Reply