beautypg.com

2 getting time stamping – Dell Mellanox Family of Adapters User Manual

Page 35

background image

User Manual for Mellanox ConnectX®-3 10/40 Gigabit Ethernet Adapters for Dell PowerEdge Servers

Rev 1.1

Mellanox Technologies

35

Receive side time sampling:

Enabled by ifreq.hwtstamp_config.rx_filter when

4.2.4.2 Getting Time Stamping

Once time stamping is enabled time stamp is placed in the socket Ancillary data. recvmsg() can
be used to get this control message for regular incoming packets. For send time stamps the outgo-
ing packet is looped back to the socket's error queue with the send time stamp(s) attached. It can

be received with recvmsg(flags=MSG_ERRQUEUE). The call returns the original outgoing
packet data including all headers preprended down to and including the link layer, the
scm_timestamping control message and a sock_extended_err control message with
ee_errno==ENOMSG and ee_origin==SO_EE_ORIGIN_TIMESTAMPING. A socket with such

/* possible values for hwtstamp_config->rx_filter */

enum hwtstamp_rx_filters {

/* time stamp no incoming packet at all */

HWTSTAMP_FILTER_NONE,

/* time stamp any incoming packet */

HWTSTAMP_FILTER_ALL,

/* return value: time stamp all packets requested plus some others */

HWTSTAMP_FILTER_SOME,

/* PTP v1, UDP, any kind of event packet */

HWTSTAMP_FILTER_PTP_V1_L4_EVENT,

/* PTP v1, UDP, Sync packet */

HWTSTAMP_FILTER_PTP_V1_L4_SYNC,

/* PTP v1, UDP, Delay_req packet */

HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ,

/* PTP v2, UDP, any kind of event packet */

HWTSTAMP_FILTER_PTP_V2_L4_EVENT,

/* PTP v2, UDP, Sync packet */

HWTSTAMP_FILTER_PTP_V2_L4_SYNC,

/* PTP v2, UDP, Delay_req packet */

HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ,

/* 802.AS1, Ethernet, any kind of event packet */

HWTSTAMP_FILTER_PTP_V2_L2_EVENT,

/* 802.AS1, Ethernet, Sync packet */

HWTSTAMP_FILTER_PTP_V2_L2_SYNC,

/* 802.AS1, Ethernet, Delay_req packet */

HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ,

/* PTP v2/802.AS1, any layer, any kind of event packet */

HWTSTAMP_FILTER_PTP_V2_EVENT,

/* PTP v2/802.AS1, any layer, Sync packet */

HWTSTAMP_FILTER_PTP_V2_SYNC,

/* PTP v2/802.AS1, any layer, Delay_req packet */

HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,

};

Note: for receive side time stamping currently only HWTSTAMP_FILTER_NONE and

HWTSTAMP_FILTER_ALL are supported.