icmp: add response to RFC 8335 PROBE messages
authorAndreas Roeseler <andreas.a.roeseler@gmail.com>
Tue, 30 Mar 2021 01:45:51 +0000 (18:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Mar 2021 20:29:39 +0000 (13:29 -0700)
commitd329ea5bd8845f0b196bf41b18b6173340d6e0e4
treec04bd4f9b2c8d3b4b560c58b47351e36a8e5b3ee
parent504a40113cc4f329dd75bbf6e4b060603224d814
icmp: add response to RFC 8335 PROBE messages

Modify the icmp_rcv function to check PROBE messages and call icmp_echo
if a PROBE request is detected.

Modify the existing icmp_echo function to respond ot both ping and PROBE
requests.

This was tested using a custom modification to the iputils package and
wireshark. It supports IPV4 probing by name, ifindex, and probing by
both IPV4 and IPV6 addresses. It currently does not support responding
to probes off the proxy node (see RFC 8335 Section 2).

The modification to the iputils package is still in development and can
be found here: https://github.com/Juniper-Clinic-2020/iputils.git. It
supports full sending functionality of PROBE requests, but currently
does not parse the response messages, which is why Wireshark is required
to verify the sent and recieved PROBE messages. The modification adds
the ``-e'' flag to the command which allows the user to specify the
interface identifier to query the probed host. An example usage would be
<./ping -4 -e 1 [destination]> to send a PROBE request of ifindex 1 to the
destination node.

Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/icmp.c