linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rahul Rameshbabu <rrameshbabu@nvidia.com>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Radu Pirea <radu-nicolae.pirea@oss.nxp.com>,
	Jay Vosburgh <j.vosburgh@gmail.com>,
	Andy Gospodarek <andy@greyhouse.net>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Claudiu Beznea <claudiu.beznea@tuxon.dev>,
	Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Horatiu Vultur <horatiu.vultur@microchip.com>,
	UNGLinuxDriver@microchip.com, Simon Horman <horms@kernel.org>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org,
	Maxime Chevallier <maxime.chevallier@bootlin.com>
Subject: Re: [PATCH RFC net-next v8 06/13] net: Add struct kernel_ethtool_ts_info
Date: Fri, 16 Feb 2024 10:27:32 -0800	[thread overview]
Message-ID: <87frxsgt4i.fsf@nvidia.com> (raw)
In-Reply-To: <20240216-feature_ptp_netnext-v8-6-510f42f444fb@bootlin.com>

On Fri, 16 Feb, 2024 16:52:24 +0100 Kory Maincent <kory.maincent@bootlin.com> wrote:
> In prevision to add new UAPI for hwtstamp we will be limited to the struct
> ethtool_ts_info that is currently passed in fixed binary format through the
> ETHTOOL_GET_TS_INFO ethtool ioctl. It would be good if new kernel code
> already started operating on an extensible kernel variant of that
> structure, similar in concept to struct kernel_hwtstamp_config vs struct
> hwtstamp_config.
>
> Since struct ethtool_ts_info is in include/uapi/linux/ethtool.h, here
> we introduce the kernel-only structure in include/linux/ethtool.h.
> The manual copy is then made in the function called by ETHTOOL_GET_TS_INFO.
>
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
>  drivers/net/bonding/bond_main.c                    |  4 ++--
>  drivers/net/can/dev/dev.c                          |  2 +-
>  drivers/net/can/peak_canfd/peak_canfd.c            |  2 +-
>  drivers/net/can/usb/gs_usb.c                       |  2 +-
>  drivers/net/can/usb/peak_usb/pcan_usb_core.c       |  2 +-
>  drivers/net/can/usb/peak_usb/pcan_usb_core.h       |  2 +-
>  drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c    |  2 +-
>  drivers/net/dsa/hirschmann/hellcreek_hwtstamp.h    |  2 +-
>  drivers/net/dsa/microchip/ksz_ptp.c                |  2 +-
>  drivers/net/dsa/microchip/ksz_ptp.h                |  2 +-
>  drivers/net/dsa/mv88e6xxx/hwtstamp.c               |  2 +-
>  drivers/net/dsa/mv88e6xxx/hwtstamp.h               |  4 ++--
>  drivers/net/dsa/ocelot/felix.c                     |  2 +-
>  drivers/net/dsa/sja1105/sja1105_ptp.c              |  2 +-
>  drivers/net/dsa/sja1105/sja1105_ptp.h              |  2 +-
>  drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c       |  2 +-
>  .../net/ethernet/aquantia/atlantic/aq_ethtool.c    |  2 +-
>  .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c    |  2 +-
>  drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |  2 +-
>  drivers/net/ethernet/broadcom/tg3.c                |  2 +-
>  drivers/net/ethernet/cadence/macb.h                |  2 +-
>  drivers/net/ethernet/cadence/macb_main.c           |  4 ++--
>  drivers/net/ethernet/cavium/liquidio/lio_ethtool.c |  2 +-
>  .../net/ethernet/cavium/thunder/nicvf_ethtool.c    |  2 +-
>  drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c |  2 +-
>  drivers/net/ethernet/cisco/enic/enic_ethtool.c     |  2 +-
>  drivers/net/ethernet/engleder/tsnep_ethtool.c      |  2 +-
>  drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c |  2 +-
>  .../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c   |  2 +-
>  .../net/ethernet/freescale/enetc/enetc_ethtool.c   |  2 +-
>  drivers/net/ethernet/freescale/fec_main.c          |  2 +-
>  drivers/net/ethernet/freescale/gianfar_ethtool.c   |  2 +-
>  .../net/ethernet/fungible/funeth/funeth_ethtool.c  |  2 +-
>  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |  2 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  2 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c |  2 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h |  2 +-
>  drivers/net/ethernet/intel/e1000e/ethtool.c        |  2 +-
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |  2 +-
>  drivers/net/ethernet/intel/ice/ice_ethtool.c       |  2 +-
>  drivers/net/ethernet/intel/igb/igb_ethtool.c       |  2 +-
>  drivers/net/ethernet/intel/igc/igc_ethtool.c       |  2 +-
>  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |  2 +-
>  drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c    |  2 +-
>  .../ethernet/marvell/octeontx2/nic/otx2_ethtool.c  |  2 +-
>  drivers/net/ethernet/mellanox/mlx4/en_ethtool.c    |  2 +-
>  drivers/net/ethernet/mellanox/mlx5/core/en.h       |  2 +-
>  .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  4 ++--
>  .../ethernet/mellanox/mlx5/core/ipoib/ethtool.c    |  2 +-
>  drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |  2 +-
>  .../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c |  2 +-
>  drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c |  4 ++--
>  drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h | 10 ++++-----
>  drivers/net/ethernet/microchip/lan743x_ethtool.c   |  2 +-
>  .../ethernet/microchip/lan966x/lan966x_ethtool.c   |  2 +-
>  .../net/ethernet/microchip/sparx5/sparx5_ethtool.c |  2 +-
>  drivers/net/ethernet/mscc/ocelot_net.c             |  2 +-
>  drivers/net/ethernet/mscc/ocelot_ptp.c             |  2 +-
>  .../net/ethernet/pensando/ionic/ionic_ethtool.c    |  2 +-
>  drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |  2 +-
>  drivers/net/ethernet/qlogic/qede/qede_ptp.c        |  2 +-
>  drivers/net/ethernet/qlogic/qede/qede_ptp.h        |  2 +-
>  drivers/net/ethernet/renesas/ravb_main.c           |  2 +-
>  drivers/net/ethernet/renesas/rswitch.c             |  2 +-
>  drivers/net/ethernet/sfc/ethtool.c                 |  2 +-
>  drivers/net/ethernet/sfc/falcon/nic.h              |  2 +-
>  drivers/net/ethernet/sfc/ptp.c                     |  2 +-
>  drivers/net/ethernet/sfc/ptp.h                     |  5 +++--
>  drivers/net/ethernet/sfc/siena/ethtool.c           |  2 +-
>  drivers/net/ethernet/sfc/siena/ptp.c               |  2 +-
>  drivers/net/ethernet/sfc/siena/ptp.h               |  4 ++--
>  .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |  2 +-
>  drivers/net/ethernet/ti/am65-cpsw-ethtool.c        |  2 +-
>  drivers/net/ethernet/ti/cpsw_ethtool.c             |  4 ++--
>  drivers/net/ethernet/ti/cpsw_priv.h                |  2 +-
>  drivers/net/ethernet/ti/icssg/icssg_ethtool.c      |  2 +-
>  drivers/net/ethernet/ti/netcp_ethss.c              |  4 ++--
>  drivers/net/ethernet/xscale/ixp4xx_eth.c           |  2 +-
>  drivers/net/macvlan.c                              |  2 +-
>  drivers/net/netdevsim/ethtool.c                    |  2 +-
>  drivers/net/phy/bcm-phy-ptp.c                      |  2 +-
>  drivers/net/phy/dp83640.c                          |  2 +-
>  drivers/net/phy/marvell_ptp.c                      |  2 +-
>  drivers/net/phy/micrel.c                           |  4 ++--
>  drivers/net/phy/mscc/mscc_ptp.c                    |  2 +-
>  drivers/net/phy/nxp-c45-tja11xx.c                  |  2 +-
>  drivers/ptp/ptp_ines.c                             |  2 +-
>  drivers/s390/net/qeth_ethtool.c                    |  2 +-
>  include/linux/can/dev.h                            |  2 +-
>  include/linux/ethtool.h                            | 25 +++++++++++++++++++---
>  include/linux/mii_timestamper.h                    |  2 +-
>  include/linux/phy.h                                |  2 +-
>  include/net/dsa.h                                  |  2 +-
>  include/soc/mscc/ocelot.h                          |  2 +-
>  net/8021q/vlan_dev.c                               |  2 +-
>  net/dsa/user.c                                     |  2 +-
>  net/ethtool/common.c                               |  6 +++---
>  net/ethtool/common.h                               |  2 +-
>  net/ethtool/ioctl.c                                | 12 +++++++++--
>  net/ethtool/tsinfo.c                               |  6 +++---
>  net/sched/sch_taprio.c                             |  2 +-
>  101 files changed, 150 insertions(+), 122 deletions(-)
>
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index b90c33607594..f74190a8d9ee 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -18,6 +18,7 @@
>  #include <linux/if_ether.h>
>  #include <linux/netlink.h>
>  #include <uapi/linux/ethtool.h>
> +#include <uapi/linux/net_tstamp.h>
>  
>  struct compat_ethtool_rx_flow_spec {
>  	u32		flow_type;
> @@ -644,6 +645,22 @@ struct ethtool_rxfh_param {
>  	u8	input_xfrm;
>  };
>  
> +/**
> + * struct kernel_ethtool_ts_info - kernel copy of struct ethtool_ts_info
> + * @cmd: command number = %ETHTOOL_GET_TS_INFO
> + * @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags
> + * @phc_index: device index of the associated PHC, or -1 if there is none
> + * @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values
> + * @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values
> + */
> +struct kernel_ethtool_ts_info {
> +	u32 cmd;
> +	u32 so_timestamping;
> +	int phc_index;
> +	enum hwtstamp_tx_types tx_types;

I might just be terrible at reading code, but isn't this what
tx_reserved in ethtool_ts_info is for? I feel like using one of the
reserved memspaces for this enum removes the need to make
kernel_ethtool_ts_info? I might be missing something obvious however.

> +	enum hwtstamp_rx_filters rx_filters;
> +};

--
Thanks,

Rahul Rameshbabu

  reply	other threads:[~2024-02-16 18:29 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-16 15:52 [PATCH RFC net-next v8 00/13] net: Make timestamping selectable Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 01/13] net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask Kory Maincent
2024-02-16 18:43   ` Florian Fainelli
2024-02-16 15:52 ` [PATCH RFC net-next v8 02/13] net: Make dev_get_hwtstamp_phylib accessible Kory Maincent
2024-02-16 18:44   ` Florian Fainelli
2024-02-16 15:52 ` [PATCH RFC net-next v8 03/13] net: Make net_hwtstamp_validate accessible Kory Maincent
2024-02-16 18:44   ` Florian Fainelli
2024-02-16 15:52 ` [PATCH RFC net-next v8 04/13] net: Change the API of PHY default timestamp to MAC Kory Maincent
2024-02-16 18:09   ` Rahul Rameshbabu
2024-02-17 17:07     ` Andrew Lunn
2024-02-17 21:05       ` Rahul Rameshbabu
2024-02-17 22:10         ` Andrew Lunn
2024-02-20 20:17           ` Rahul Rameshbabu
2024-02-19 13:29     ` Köry Maincent
2024-02-19 16:11       ` Russell King (Oracle)
2024-02-20 16:20         ` Köry Maincent
2024-02-20 20:39         ` Rahul Rameshbabu
2024-02-16 18:52   ` Florian Fainelli
2024-02-16 15:52 ` [PATCH RFC net-next v8 05/13] net: net_tstamp: Add unspec field to hwtstamp_source enumeration Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 06/13] net: Add struct kernel_ethtool_ts_info Kory Maincent
2024-02-16 18:27   ` Rahul Rameshbabu [this message]
2024-02-19 10:57     ` Köry Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 07/13] ptp: Move from simple ida to xarray Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 08/13] ptp: Add phc source and helpers to register specific PTP clock or get information Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 09/13] net: Add the possibility to support a selected hwtstamp in netdevice Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 10/13] net: netdevsim: ptp_mock: Convert to netdev_ptp_clock_register Kory Maincent
2024-02-16 19:48   ` Rahul Rameshbabu
2024-02-16 15:52 ` [PATCH RFC net-next v8 11/13] net: macb: " Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 12/13] net: ethtool: tsinfo: Add support for hwtstamp provider and get/set hwtstamp config Kory Maincent
2024-02-16 15:52 ` [PATCH RFC net-next v8 13/13] netlink: specs: tsinfo: Enhance netlink attributes and add a set command Kory Maincent

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87frxsgt4i.fsf@nvidia.com \
    --to=rrameshbabu@nvidia.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andrew@lunn.ch \
    --cc=andy@greyhouse.net \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=hkallweit1@gmail.com \
    --cc=horatiu.vultur@microchip.com \
    --cc=horms@kernel.org \
    --cc=j.vosburgh@gmail.com \
    --cc=kory.maincent@bootlin.com \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=maxime.chevallier@bootlin.com \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=pabeni@redhat.com \
    --cc=radu-nicolae.pirea@oss.nxp.com \
    --cc=richardcochran@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=willemdebruijn.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).