netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Richard Cochran <richardcochran@gmail.com>
To: netdev@vger.kernel.org
Subject: [PATCH v3 0/4] Extend Time Stamping
Date: Sat, 17 Jul 2010 20:48:02 +0200	[thread overview]
Message-ID: <cover.1279391885.git.richard.cochran@omicron.at> (raw)

This patch set extends the packet time stamping capabilites of the
network stack in two ways.

1. The first patch presents a work-around for the TX software time
   stamping fallback problem cited in cd4d8fdad1f1. The idea is to add
   one inline function into each MAC driver. This function will act
   as hooks for current (and possible future) time stamping needs,
   once they are placed correctly within each MAC driver.

2. The other patches prepare the way for PHY drivers to offer time
   stamping.

I am preparing a new round of patches for PTP support, but it will
require the changes in this patch set in order to function. Thus I
would like to have this patch set reviewed (and hopefully merged) in
order to go forward.

Thanks,
Richard

* Patch ChangeLog
** v3
   After having received plenty of criticism on the idea of reading
   from the MDIO bus during the critical paths, this version presents
   a new approach. Now, when the CONFIG option for PHY time stamping
   is enabled, likely packets for time stamping are identified by the
   stack and presented to the PHY driver. The driver may accept the
   packet and defer its deliverly until the time stamp becomes
   available at a later time. This approach brings four main
   advantages.

   1. Now only one MAC driver hook is necessary.

   2. It leaves the option of how to get the time stamps open,
      allowing, for example, a driver to get them either via MDIO or
      PHY status frames.

   3. If reading the MDIO bus is required to get the time stamp, this
      can be done during as a work queue task.

   4. It moves the identification of PTP packets into the stack, so
      that each new PHY driver that comes only will not have to
      duplicate this logic again.

** v2
   Removed the CONFIG option for the driver hooks.


Richard Cochran (4):
  net: add driver hook for tx time stamping.
  net: preserve ifreq parameter when calling generic phy_mii_ioctl().
  net: added a BPF to help drivers detect PTP packets.
  net: support time stamping in phy devices.

 drivers/net/arm/ixp4xx_eth.c           |    3 +-
 drivers/net/au1000_eth.c               |    2 +-
 drivers/net/bcm63xx_enet.c             |    2 +-
 drivers/net/cpmac.c                    |    5 +-
 drivers/net/dnet.c                     |    2 +-
 drivers/net/ethoc.c                    |    2 +-
 drivers/net/fec.c                      |    2 +-
 drivers/net/fec_mpc52xx.c              |    2 +-
 drivers/net/fs_enet/fs_enet-main.c     |    3 +-
 drivers/net/gianfar.c                  |    2 +-
 drivers/net/macb.c                     |    2 +-
 drivers/net/mv643xx_eth.c              |    2 +-
 drivers/net/octeon/octeon_mgmt.c       |    2 +-
 drivers/net/phy/phy.c                  |    8 ++-
 drivers/net/phy/phy_device.c           |    2 +
 drivers/net/sb1250-mac.c               |    2 +-
 drivers/net/sh_eth.c                   |    2 +-
 drivers/net/smsc911x.c                 |    2 +-
 drivers/net/smsc9420.c                 |    2 +-
 drivers/net/stmmac/stmmac_main.c       |   22 ++----
 drivers/net/tc35815.c                  |    2 +-
 drivers/net/tg3.c                      |    2 +-
 drivers/net/ucc_geth.c                 |    2 +-
 drivers/staging/octeon/ethernet-mdio.c |    2 +-
 include/linux/netdevice.h              |    4 +
 include/linux/phy.h                    |   24 ++++++-
 include/linux/ptp_classify.h           |  126 ++++++++++++++++++++++++++++++++
 include/linux/skbuff.h                 |   52 +++++++++++++
 net/Kconfig                            |   10 +++
 net/core/Makefile                      |    2 +-
 net/core/dev.c                         |    3 +
 net/core/timestamping.c                |  126 ++++++++++++++++++++++++++++++++
 net/dsa/slave.c                        |    3 +-
 net/socket.c                           |    4 +
 34 files changed, 389 insertions(+), 44 deletions(-)
 create mode 100644 include/linux/ptp_classify.h
 create mode 100644 net/core/timestamping.c


             reply	other threads:[~2010-07-17 18:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-17 18:48 Richard Cochran [this message]
2010-07-17 18:48 ` [PATCH 1/4] net: add driver hook for tx time stamping Richard Cochran
2010-07-17 18:48 ` [PATCH 2/4] net: preserve ifreq parameter when calling generic phy_mii_ioctl() Richard Cochran
2010-07-17 18:49 ` [PATCH 3/4] net: added a BPF to help drivers detect PTP packets Richard Cochran
2010-07-17 18:49 ` [PATCH 4/4] net: support time stamping in phy devices Richard Cochran
2010-07-19  2:24 ` [PATCH v3 0/4] Extend Time Stamping David Miller

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=cover.1279391885.git.richard.cochran@omicron.at \
    --to=richardcochran@gmail.com \
    --cc=netdev@vger.kernel.org \
    /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).