[V4] Add RFC 8335 Definitions from Linux 5.13

Message ID 20210603142604.1658845-1-andreas.a.roeseler@gmail.com
State New
Headers show
Series
  • [V4] Add RFC 8335 Definitions from Linux 5.13
Related show

Commit Message

Szabolcs Nagy via Libc-alpha June 3, 2021, 2:26 p.m.
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(+)

-- 
2.31.1

Comments

Szabolcs Nagy via Libc-alpha June 21, 2021, 1 p.m. | #1
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
Szabolcs Nagy via Libc-alpha June 28, 2021, 12:50 p.m. | #2
On 6/21/2021 8:00 AM, Andreas Roeseler wrote:
> 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

bump
Szabolcs Nagy via Libc-alpha June 29, 2021, 6:17 p.m. | #3
On 03/06/2021 11:26, Andreas Roeseler via Libc-alpha 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>


LGTM, thanks. The values match the referred kernel commits.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>


> ---

> 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

>  /*

>
Szabolcs Nagy via Libc-alpha July 11, 2021, 3:39 p.m. | #4
On 6/29/2021 1:17 PM, Adhemerval Zanella wrote:
> 

> 

> On 03/06/2021 11:26, Andreas Roeseler via Libc-alpha 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>

> 

> LGTM, thanks. The values match the referred kernel commits.

> 

> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> 


Bump

>> ---

>> 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

>>  /*

>>
Szabolcs Nagy via Libc-alpha July 12, 2021, 6 a.m. | #5
* Andreas Roeseler:

> On 6/29/2021 1:17 PM, Adhemerval Zanella wrote:

>> 

>> 

>> On 03/06/2021 11:26, Andreas Roeseler via Libc-alpha 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>

>> 

>> LGTM, thanks. The values match the referred kernel commits.

>> 

>> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

>> 

>

> Bump


I think Adhemerval pushed it for you:

  <https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9dc7dc5708c5c35aeb2>

Thanks,
Florian

Patch

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
 /*