Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Kurt Kanzenbach <kurt@linutronix.de>
To: Richard Cochran <richardcochran@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@mellanox.com>,
	Ido Schimmel <idosch@mellanox.com>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Samuel Zou <zou_wei@huawei.com>,
	netdev@vger.kernel.org, Petr Machata <petrm@mellanox.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Kurt Kanzenbach <kurt@linutronix.de>
Subject: [PATCH v4 2/9] ptp: Add generic ptp message type function
Date: Tue, 18 Aug 2020 12:32:44 +0200	[thread overview]
Message-ID: <20200818103251.20421-3-kurt@linutronix.de> (raw)
In-Reply-To: <20200818103251.20421-1-kurt@linutronix.de>

The message type is located at different offsets within the ptp header depending
on the ptp version (v1 or v2). Therefore, drivers which also deal with ptp v1
have some code for it.

Extract this into a helper function for drivers to be used.

Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
---
 include/linux/ptp_classify.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/include/linux/ptp_classify.h b/include/linux/ptp_classify.h
index 996f31e8f35d..39bad015d1d6 100644
--- a/include/linux/ptp_classify.h
+++ b/include/linux/ptp_classify.h
@@ -96,6 +96,31 @@ unsigned int ptp_classify_raw(const struct sk_buff *skb);
  */
 struct ptp_header *ptp_parse_header(struct sk_buff *skb, unsigned int type);
 
+/**
+ * ptp_get_msgtype - Extract ptp message type from given header
+ * @hdr: ptp header
+ * @type: type of the packet (see ptp_classify_raw())
+ *
+ * This function returns the message type for a given ptp header. It takes care
+ * of the different ptp header versions (v1 or v2).
+ *
+ * Return: The message type
+ */
+static inline u8 ptp_get_msgtype(const struct ptp_header *hdr,
+				 unsigned int type)
+{
+	u8 msgtype;
+
+	if (unlikely(type & PTP_CLASS_V1)) {
+		/* msg type is located at the control field for ptp v1 */
+		msgtype = hdr->control;
+	} else {
+		msgtype = hdr->tsmt & 0x0f;
+	}
+
+	return msgtype;
+}
+
 void __init ptp_classifier_init(void);
 #else
 static inline void ptp_classifier_init(void)
-- 
2.20.1


  parent reply	other threads:[~2020-08-18 10:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18 10:32 [PATCH v4 0/9] ptp: Add generic helper functions Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 1/9] ptp: Add generic ptp v2 header parsing function Kurt Kanzenbach
2020-08-18 10:37   ` Russell King - ARM Linux admin
2020-08-18 10:32 ` Kurt Kanzenbach [this message]
2020-08-18 10:40   ` [PATCH v4 2/9] ptp: Add generic ptp message type function Russell King - ARM Linux admin
2020-08-19  5:50     ` Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 3/9] net: dsa: mv88e6xxx: Use generic helper function Kurt Kanzenbach
2020-08-18 10:43   ` Russell King - ARM Linux admin
2020-08-19  6:00     ` Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 4/9] mlxsw: spectrum_ptp: " Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 5/9] ethernet: ti: am65-cpts: " Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 6/9] ethernet: ti: cpts: " Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 7/9] net: phy: dp83640: " Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 8/9] ptp: ptp_ines: " Kurt Kanzenbach
2020-08-18 10:32 ` [PATCH v4 9/9] ptp: Remove unused macro Kurt Kanzenbach
2020-08-19 23:11 ` [PATCH v4 0/9] ptp: Add generic helper functions 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=20200818103251.20421-3-kurt@linutronix.de \
    --to=kurt@linutronix.de \
    --cc=andrew@lunn.ch \
    --cc=bigeasy@linutronix.de \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=grygorii.strashko@ti.com \
    --cc=hkallweit1@gmail.com \
    --cc=idosch@mellanox.com \
    --cc=jiri@mellanox.com \
    --cc=kuba@kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=petrm@mellanox.com \
    --cc=richardcochran@gmail.com \
    --cc=vivien.didelot@gmail.com \
    --cc=zou_wei@huawei.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).