> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of
> Mateusz Polchlopek
> Sent: Tuesday, October 22, 2024 1:41 PM
> To: [email protected]
> Cc: [email protected]; Keller, Jacob E <[email protected]>; 
> Drewek,
> Wojciech <[email protected]>; Rahul Rameshbabu
> <[email protected]>; Sunil Goutham <[email protected]>; Simon
> Horman <[email protected]>; Polchlopek, Mateusz
> <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v12 14/14] iavf: add support for Rx
> timestamps to hotpath
> 
> From: Jacob Keller <[email protected]>
> 
> Add support for receive timestamps to the Rx hotpath. This support only works
> when using the flexible descriptor format, so make sure that we request this
> format by default if we have receive timestamp support available in the PTP
> capabilities.
> 
> In order to report the timestamps to userspace, we need to perform timestamp
> extension. The Rx descriptor does actually contain the "40 bit" timestamp.
> However, upper 32 bits which contain nanoseconds are conveniently stored
> separately in the descriptor. We could extract the 32bits and lower 8 bits, 
> then
> perform a bitwise OR to calculate the 40bit value. This makes no sense, 
> because
> the timestamp extension algorithm would simply discard the lower 8 bits
> anyways.
> 
> Thus, implement timestamp extension as iavf_ptp_extend_32b_timestamp(), and
> extract and forward only the 32bits of nominal nanoseconds.
> 
> Signed-off-by: Jacob Keller <[email protected]>
> Reviewed-by: Wojciech Drewek <[email protected]>
> Reviewed-by: Rahul Rameshbabu <[email protected]>
> Reviewed-by: Sunil Goutham <[email protected]>
> Reviewed-by: Simon Horman <[email protected]>
> Signed-off-by: Mateusz Polchlopek <[email protected]>
> ---
>  drivers/net/ethernet/intel/iavf/iavf_main.c |  9 +++
> drivers/net/ethernet/intel/iavf/iavf_ptp.c  | 61 +++++++++++++++++++++
> drivers/net/ethernet/intel/iavf/iavf_ptp.h  | 11 ++++
> drivers/net/ethernet/intel/iavf/iavf_txrx.c | 43 +++++++++++++++
> drivers/net/ethernet/intel/iavf/iavf_type.h |  1 +
>  5 files changed, 125 insertions(+)
> 
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c
> b/drivers/net/ethernet/intel/iavf/iavf_main.c
> index 1103c210b4e3..a25ceecf1ea7 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_main.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
> @@ -730,6 +730,15 @@ static u8 iavf_select_rx_desc_format(const struct

Tested-by: Rafal Romanowski <[email protected]>


Reply via email to