svn commit: r352458 - in head/sys: net sys
Konstantin Belousov
kib at FreeBSD.org
Tue Sep 17 18:49:14 UTC 2019
Author: kib
Date: Tue Sep 17 18:49:13 2019
New Revision: 352458
URL: https://svnweb.freebsd.org/changeset/base/352458
Log:
Add SIOCGIFDOWNREASON.
The ioctl(2) is intended to provide more details about the cause of
the down for the link.
Eventually we might define a comprehensive list of codes for the
situations. But interface also allows the driver to provide free-form
null-terminated ASCII string to provide arbitrary non-formalized
information. Sample implementation exists for mlx5(4), where the
string is fetched from firmware controlling the port.
Reviewed by: hselasky, rrs
Sponsored by: Mellanox Technologies
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D21527
Modified:
head/sys/net/if.c
head/sys/net/if.h
head/sys/sys/sockio.h
Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c Tue Sep 17 18:41:39 2019 (r352457)
+++ head/sys/net/if.c Tue Sep 17 18:49:13 2019 (r352458)
@@ -2891,6 +2891,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data,
case SIOCGIFGENERIC:
case SIOCGIFRSSKEY:
case SIOCGIFRSSHASH:
+ case SIOCGIFDOWNREASON:
if (ifp->if_ioctl == NULL)
return (EOPNOTSUPP);
error = (*ifp->if_ioctl)(ifp, cmd, data);
Modified: head/sys/net/if.h
==============================================================================
--- head/sys/net/if.h Tue Sep 17 18:41:39 2019 (r352457)
+++ head/sys/net/if.h Tue Sep 17 18:49:13 2019 (r352458)
@@ -585,6 +585,16 @@ struct ifrsshash {
#define IFNET_PCP_NONE 0xff /* PCP disabled */
+#define IFDR_MSG_SIZE 64
+#define IFDR_REASON_MSG 1
+#define IFDR_REASON_VENDOR 2
+struct ifdownreason {
+ char ifdr_name[IFNAMSIZ];
+ uint32_t ifdr_reason;
+ uint32_t ifdr_vendor;
+ char ifdr_msg[IFDR_MSG_SIZE];
+};
+
#endif /* __BSD_VISIBLE */
#ifdef _KERNEL
Modified: head/sys/sys/sockio.h
==============================================================================
--- head/sys/sys/sockio.h Tue Sep 17 18:41:39 2019 (r352457)
+++ head/sys/sys/sockio.h Tue Sep 17 18:49:13 2019 (r352458)
@@ -143,4 +143,6 @@
#define SIOCGLANPCP _IOWR('i', 152, struct ifreq) /* Get (V)LAN PCP */
#define SIOCSLANPCP _IOW('i', 153, struct ifreq) /* Set (V)LAN PCP */
+#define SIOCGIFDOWNREASON _IOWR('i', 154, struct ifdownreason)
+
#endif /* !_SYS_SOCKIO_H_ */
More information about the svn-src-head
mailing list