[dpdk-dev] [PATCH 2/2] net/hns3: support IEEE 1588 PTP

Ferruh Yigit ferruh.yigit at intel.com
Tue Mar 30 15:59:24 CEST 2021


On 3/26/2021 8:56 AM, Min Hu (Connor) wrote:
> Add hns3 support for new ethdev APIs to enable and read IEEE1588/
> 802.1AS PTP timestamps.
> 
> Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
> ---
>   doc/guides/nics/features/hns3.ini |   2 +
>   doc/guides/nics/hns3.rst          |   1 +
>   drivers/net/hns3/hns3_cmd.h       |  33 +++++
>   drivers/net/hns3/hns3_ethdev.c    |  59 +++++++-
>   drivers/net/hns3/hns3_ethdev.h    |  25 ++++
>   drivers/net/hns3/hns3_ptp.c       | 294 ++++++++++++++++++++++++++++++++++++++
>   drivers/net/hns3/hns3_regs.h      |  25 ++++
>   drivers/net/hns3/hns3_rxtx.c      |  56 +++++++-
>   drivers/net/hns3/hns3_rxtx.h      |  12 ++
>   drivers/net/hns3/hns3_rxtx_vec.c  |  19 ++-
>   drivers/net/hns3/meson.build      |   3 +-
>   11 files changed, 516 insertions(+), 13 deletions(-)
>   create mode 100644 drivers/net/hns3/hns3_ptp.c
> 
> diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini
> index 3988be4..502bfe7 100644
> --- a/doc/guides/nics/features/hns3.ini
> +++ b/doc/guides/nics/features/hns3.ini
> @@ -43,6 +43,8 @@ Stats per queue      = Y
>   FW version           = Y
>   Registers dump       = Y
>   Module EEPROM dump   = Y
> +Timesync             = Y
> +Timestamp offload    = Y
>   Multiprocess aware   = Y
>   Linux                = Y
>   ARMv8                = Y
> diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
> index ccd2f6f..3366562 100644
> --- a/doc/guides/nics/hns3.rst
> +++ b/doc/guides/nics/hns3.rst
> @@ -37,6 +37,7 @@ Features of the HNS3 PMD are:
>   - MTU update
>   - NUMA support
>   - Generic flow API
> +- IEEE1588/802.1AS timestamping
>   
>   Prerequisites
>   -------------
> diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h
> index e704d0c..abc853b 100644
> --- a/drivers/net/hns3/hns3_cmd.h
> +++ b/drivers/net/hns3/hns3_cmd.h
> @@ -123,6 +123,12 @@ enum hns3_opcode_type {
>   	HNS3_OPC_CLEAR_MAC_TNL_INT      = 0x0312,
>   	HNS3_OPC_CONFIG_FEC_MODE        = 0x031A,
>   
> +#ifdef RTE_LIBRTE_IEEE1588
> +	/* PTP command */
> +	HNS3_OPC_PTP_INT_EN             = 0x0501,
> +	HNS3_OPC_CFG_PTP_MODE           = 0x0507,
> +#endif
> +

Hi Connor,

Does it needs to be a compile time configuration? What happens if it is always 
enabled, or controlled by device argument?


More information about the dev mailing list