Hi all,
I am trying to use the pfring_send_get_time() function to retrieve
hardware timestamps for outgoing packets. I am using an Intel 82599
network interface card (ixgbe driver), so HW timestamps are supported:
# $ ethtool -T eth1
Time stamping parameters for eth1:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)
When running the following code, I get the error message "Sending error
-7". The value -7 stands for PF_RING_ERROR_NOT_SUPPORTED according to
the pf_ring header file.
pfring *pd = pfring_open("eth1", 1500, PF_RING_HW_TIMESTAMP);
pfring_enable_ring(pd);
u_char buffer[1000];
forge_udp_packet(buffer, sizeof(buffer), 0);
struct timespec *ts = NULL;
ts = (struct timespec *) malloc(sizeof(struct timespec));
//int rc = pfring_send(pd, buffer, send_len, 0);
int rc = pfring_send_get_time(pd, buffer, send_len, ts);
if (rc < 0) {
printf("Sending error %i\n", rc);
}
pfring_close(pd);
When replacing the pfring_send_get_time() function with the uncommented
line above, it works fine. I am using a recent version of pf_ring from
the SVN repository on Debian Linux (kernel 3.7).
Do you have any suggestions what I am doing wrong?
Best regards,
Florian Wohlfart
_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc