[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <206a857a-625c-e604-9916-7f73f79d191c@gmail.com>
Date: Sat, 22 May 2021 23:46:15 +0300
From: Claudiu Manoil <claudiu.manoil@...il.com>
To: Yangbo Lu <yangbo.lu@....com>, netdev@...r.kernel.org
Cc: "David S . Miller" <davem@...emloft.net>,
Richard Cochran <richardcochran@...il.com>,
Claudiu Manoil <claudiu.manoil@....com>,
Jakub Kicinski <kuba@...nel.org>
Subject: Re: [net-next, v2, 7/7] enetc: support PTP domain timestamp
conversion
hi Yangbo,
On 21.05.2021 07:36, Yangbo Lu wrote:
> Support timestamp conversion to specified PTP domain in PTP packet.
>
> Signed-off-by: Yangbo Lu <yangbo.lu@....com>
> ---
> Changes for v2:
> - Fixed build waring.
> - Updated copyright.
> ---
> drivers/net/ethernet/freescale/enetc/enetc.c | 39 ++++++++++++++++++--
> 1 file changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
> index 3ca93adb9662..cd0429c73999 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc.c
> @@ -1,5 +1,5 @@
> // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> -/* Copyright 2017-2019 NXP */
> +/* Copyright 2017-2021 NXP */
>
> #include "enetc.h"
> #include <linux/bpf_trace.h>
> @@ -7,6 +7,7 @@
> #include <linux/udp.h>
> #include <linux/vmalloc.h>
> #include <linux/ptp_classify.h>
> +#include <linux/ptp_clock_kernel.h>
> #include <net/pkt_sched.h>
>
> static int enetc_num_stack_tx_queues(struct enetc_ndev_priv *priv)
> @@ -472,13 +473,36 @@ static void enetc_get_tx_tstamp(struct enetc_hw *hw, union enetc_tx_bd *txbd,
> *tstamp = (u64)hi << 32 | tstamp_lo;
> }
>
> -static void enetc_tstamp_tx(struct sk_buff *skb, u64 tstamp)
> +static int enetc_ptp_parse_domain(struct sk_buff *skb, u8 *domain)
> +{
> + unsigned int ptp_class;
> + struct ptp_header *hdr;
> +
> + ptp_class = ptp_classify_raw(skb);
> + if (ptp_class == PTP_CLASS_NONE)
> + return -EINVAL;
> +
> + hdr = ptp_parse_header(skb, ptp_class);
> + if (!hdr)
> + return -EINVAL;
> +
> + *domain = hdr->domain_number;
> + return 0;
> +}
> +
Why is this function defined inside the enetc driver? I don't see
anything enetc specific to it, but it looks like another generic ptp
procedure, similar to ptp_parse_header() or ptp_clock_domain_tstamp().
Powered by blists - more mailing lists