* [PATCH v3 net-next 0/3] add support sending RFC8335 PROBE
@ 2020-11-14 20:55 Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 1/3] net: add support for " Andreas Roeseler
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Andreas Roeseler @ 2020-11-14 20:55 UTC (permalink / raw)
To: davem; +Cc: kuznet, yoshfuji, kuba, netdev
The popular utility ping has several severe limitations such as the
inability to query specific interfaces on a node and requiring
bidirectional connectivity between the probing and the probed
interfaces. RFC8335 attempts to solve these limitations by creating the
new utility PROBE which is a specialized ICMP message that makes use of
the ICMP Extension Structure outlined in RFC4884.
This patchset adds definitions for the ICMP Extended Echo Request and
Reply (PROBE) types for both IPv4 and IPv6. It also expands the list of
supported ICMP messages to accommodate PROBEs.
Changes since v1:
- Switch to correct base tree
Changes since v2:
- Switch to net-next tree 67c70b5eb2bf7d0496fcb62d308dc3096bc11553
Andreas Roeseler (3):
net: add support for sending RFC8335 PROBE
icmp: define PROBE message types
ICMPv6: define PROBE message types
include/uapi/linux/icmp.h | 3 +++
include/uapi/linux/icmpv6.h | 6 ++++++
net/ipv4/ping.c | 4 +++-
3 files changed, 12 insertions(+), 1 deletion(-)
--
2.29.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 net-next 1/3] net: add support for sending RFC8335 PROBE
2020-11-14 20:55 [PATCH v3 net-next 0/3] add support sending RFC8335 PROBE Andreas Roeseler
@ 2020-11-14 20:56 ` Andreas Roeseler
2020-11-17 21:52 ` Jakub Kicinski
2020-11-14 20:56 ` [PATCH v3 net-next 2/3] icmp: define PROBE message types Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 3/3] ICMPv6: " Andreas Roeseler
2 siblings, 1 reply; 5+ messages in thread
From: Andreas Roeseler @ 2020-11-14 20:56 UTC (permalink / raw)
To: davem; +Cc: kuznet, yoshfuji, kuba, netdev
Modifying the ping_supported function to support probe message types
allows the user to send probe requests through the existing framework
for sending ping requests.
Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
---
Changes since v1:
- Switch to correct base tree
Changes since v2:
- Switch to net-next tree 67c70b5eb2bf7d0496fcb62d308dc3096bc11553
---
net/ipv4/ping.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index 248856b301c4..39bdcb2bfc92 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -453,7 +453,9 @@ EXPORT_SYMBOL_GPL(ping_bind);
static inline int ping_supported(int family, int type, int code)
{
return (family == AF_INET && type == ICMP_ECHO && code == 0) ||
- (family == AF_INET6 && type == ICMPV6_ECHO_REQUEST && code == 0);
+ (family == AF_INET && type == ICMP_EXT_ECHO && code == 0) ||
+ (family == AF_INET6 && type == ICMPV6_ECHO_REQUEST && code == 0) ||
+ (family == AF_INET6 && type == ICMPV6_EXT_ECHO_REQUEST && code == 0);
}
/*
--
2.29.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 net-next 2/3] icmp: define PROBE message types
2020-11-14 20:55 [PATCH v3 net-next 0/3] add support sending RFC8335 PROBE Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 1/3] net: add support for " Andreas Roeseler
@ 2020-11-14 20:56 ` Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 3/3] ICMPv6: " Andreas Roeseler
2 siblings, 0 replies; 5+ messages in thread
From: Andreas Roeseler @ 2020-11-14 20:56 UTC (permalink / raw)
To: davem; +Cc: kuznet, yoshfuji, kuba, netdev
The types of ICMP Extended Echo Request and ICMP Extended Echo Reply are
defined in sections 2 and 3 of RFC8335.
Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
---
Changes since v1:
- Switch to correct base tree
Changes since v2:
- Switch to net-next tree 67c70b5eb2bf7d0496fcb62d308dc3096bc11553
---
include/uapi/linux/icmp.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h
index fb169a50895e..1a84450f667f 100644
--- a/include/uapi/linux/icmp.h
+++ b/include/uapi/linux/icmp.h
@@ -66,6 +66,9 @@
#define ICMP_EXC_TTL 0 /* TTL count exceeded */
#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */
+/* Codes for EXT_ECHO (Probe) */
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
struct icmphdr {
__u8 type;
--
2.29.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 net-next 3/3] ICMPv6: define PROBE message types
2020-11-14 20:55 [PATCH v3 net-next 0/3] add support sending RFC8335 PROBE Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 1/3] net: add support for " Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 2/3] icmp: define PROBE message types Andreas Roeseler
@ 2020-11-14 20:56 ` Andreas Roeseler
2 siblings, 0 replies; 5+ messages in thread
From: Andreas Roeseler @ 2020-11-14 20:56 UTC (permalink / raw)
To: davem; +Cc: kuznet, yoshfuji, kuba, netdev
The types of ICMPV6 Extended Echo Request and ICMPV6 Extended Echo Reply
are defined in sections 2 and 3 of RFC8335.
Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
---
Changes since v1:
- Switch to correct base tree
Changes since v2:
- Switch to net-next tree 67c70b5eb2bf7d0496fcb62d308dc3096bc11553
---
include/uapi/linux/icmpv6.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/uapi/linux/icmpv6.h b/include/uapi/linux/icmpv6.h
index 0564fd7ccde4..54dbafdedca1 100644
--- a/include/uapi/linux/icmpv6.h
+++ b/include/uapi/linux/icmpv6.h
@@ -140,6 +140,12 @@ struct icmp6hdr {
#define ICMPV6_UNK_OPTION 2
#define ICMPV6_HDR_INCOMP 3
+/*
+ * Codes for EXT_ECHO (Probe)
+ */
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
+
/*
* constants for (set|get)sockopt
*/
--
2.29.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 net-next 1/3] net: add support for sending RFC8335 PROBE
2020-11-14 20:56 ` [PATCH v3 net-next 1/3] net: add support for " Andreas Roeseler
@ 2020-11-17 21:52 ` Jakub Kicinski
0 siblings, 0 replies; 5+ messages in thread
From: Jakub Kicinski @ 2020-11-17 21:52 UTC (permalink / raw)
To: Andreas Roeseler; +Cc: davem, kuznet, yoshfuji, netdev
On Sat, 14 Nov 2020 12:56:11 -0800 Andreas Roeseler wrote:
> Modifying the ping_supported function to support probe message types
> allows the user to send probe requests through the existing framework
> for sending ping requests.
>
> Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
You need to reorder the patches so that defines are added first.
Otherwise if someone lands on this patch during bisection the kernel
will not build:
../net/ipv4/ping.c: In function ‘ping_supported’:
../net/ipv4/ping.c:456:39: error: ‘ICMP_EXT_ECHO’ undeclared (first use in this function); did you mean ‘ICMP_ECHO’?
456 | (family == AF_INET && type == ICMP_EXT_ECHO && code == 0) ||
| ^~~~~~~~~~~~~
| ICMP_ECHO
../net/ipv4/ping.c:456:39: note: each undeclared identifier is reported only once for each function it appears in
../net/ipv4/ping.c:458:40: error: ‘ICMPV6_EXT_ECHO_REQUEST’ undeclared (first use in this function); did you mean ‘ICMPV6_ECHO_REQUEST’?
458 | (family == AF_INET6 && type == ICMPV6_EXT_ECHO_REQUEST && code == 0);
| ^~~~~~~~~~~~~~~~~~~~~~~
| ICMPV6_ECHO_REQUEST
../net/ipv4/ping.c:459:1: error: control reaches end of non-void function [-Werror=return-type]
459 | }
| ^
cc1: some warnings being treated as errors
make[3]: *** [net/ipv4/ping.o] Error 1
make[2]: *** [net/ipv4] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [net] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [__sub-make] Error 2
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-11-17 21:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-14 20:55 [PATCH v3 net-next 0/3] add support sending RFC8335 PROBE Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 1/3] net: add support for " Andreas Roeseler
2020-11-17 21:52 ` Jakub Kicinski
2020-11-14 20:56 ` [PATCH v3 net-next 2/3] icmp: define PROBE message types Andreas Roeseler
2020-11-14 20:56 ` [PATCH v3 net-next 3/3] ICMPv6: " Andreas Roeseler
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.