[PATCH V4] Add RFC 8335 Definitions from Linux 5.13

Andreas Roeseler andreas.a.roeseler@gmail.com
Mon Jun 21 13:00:27 GMT 2021


On 6/3/2021 9:26 AM, Andreas Roeseler wrote:
> RFC 8335 defines the network utility PROBE, which builds off of the
> capabilities of Ping to query more detailed interface information from
> networking nodes.
> 
> The definitions included in this patchset have been accepted into the
> linux net-next branch and will be included in Linux 5.13. This
> patchset adds the same definitions to the glibc for use in the
> iputils package.
> 
> The relevant commits for the Linux definitions can be found here:
> https://github.com/torvalds/linux/commit/e542d29ca81d005651680a0a697b72ca13ddc4cc
> https://github.com/torvalds/linux/commit/750f4fc2a12f6632b5aa04526bf57fa06bfe8467
> 
> These changes have been tested by running the glibc tests on x86_64
> 
> Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com>
> ---
> Changes:
> v1 -> v2:
> - Add more specific prefixes to constants
> 
> v2 -> v3:
> - Updated URLs
> - Corrected Linux version that will include the definitions (5.13)
> 
> v3 -> v4:
> - Updated URLs to Linus branch
> - Added V to ICMPV6 definitions
> ---
>   inet/netinet/icmp6.h          |  2 ++
>   sysdeps/gnu/netinet/ip_icmp.h | 18 ++++++++++++++++++
>   2 files changed, 20 insertions(+)
> 
> diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
> index 22b82335ec..151347987f 100644
> --- a/inet/netinet/icmp6.h
> +++ b/inet/netinet/icmp6.h
> @@ -69,6 +69,8 @@ struct icmp6_hdr
>   #define MLD_LISTENER_QUERY          130
>   #define MLD_LISTENER_REPORT         131
>   #define MLD_LISTENER_REDUCTION      132
> +#define ICMPV6_EXT_ECHO_REQUEST	    160
> +#define ICMPV6_EXT_ECHO_REPLY	    161
>   
>   #define ICMP6_DST_UNREACH_NOROUTE     0 /* no route to destination */
>   #define ICMP6_DST_UNREACH_ADMIN       1 /* communication with destination */
> diff --git a/sysdeps/gnu/netinet/ip_icmp.h b/sysdeps/gnu/netinet/ip_icmp.h
> index 5db7ac7c37..ec7137253f 100644
> --- a/sysdeps/gnu/netinet/ip_icmp.h
> +++ b/sysdeps/gnu/netinet/ip_icmp.h
> @@ -89,6 +89,24 @@ struct icmphdr
>   #define ICMP_EXC_TTL		0	/* TTL count exceeded		*/
>   #define ICMP_EXC_FRAGTIME	1	/* Fragment Reass time exceeded	*/
>   
> +/* Codes for ICMP_EXT_ECHO (PROBE) */
> +#define ICMP_EXT_ECHO		42
> +#define ICMP_EXT_ECHOREPLY	43
> +#define ICMP_EXT_CODE_MAL_QUERY	1	/* Malformed Query */
> +#define ICMP_EXT_CODE_NO_IF	2	/* No such Interface */
> +#define ICMP_EXT_CODE_NO_TABLE_ENT	3	/* No table entry */
> +#define ICMP_EXT_CODE_MULT_IFS	4	/* Multiple Interfaces Satisfy Query */
> +
> +/* Constants for EXT_ECHO (PROBE) */
> +#define ICMP_EXT_ECHOREPLY_ACTIVE	(1 << 2)/* active bit in reply */
> +#define ICMP_EXT_ECHOREPLY_IPV4		(1 << 1)/* ipv4 bit in reply */
> +#define ICMP_EXT_ECHOREPLY_IPV6		1	/* ipv6 bit in reply */
> +#define ICMP_EXT_ECHO_CTYPE_NAME	1
> +#define ICMP_EXT_ECHO_CTYPE_INDEX	2
> +#define ICMP_EXT_ECHO_CTYPE_ADDR	3
> +#define ICMP_AFI_IP			1	/* Address Family Identifier for IPV4 */
> +#define ICMP_AFI_IP6			2	/* Address Family Identifier for IPV6 */
> +
>   
>   #ifdef __USE_MISC
>   /*
> 
bump

As a side note in case this was missed, the conflict with Trinity has 
been fixed in Linux net-next here.

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=e32ea44c7ae476f4c90e35ab0a29dc8ff082bc11


More information about the Libc-alpha mailing list