Message ID | 2f3de06143c4191c53be4b96d98759afb5f09a5e.1612393368.git.andreas.a.roeseler@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | add support for RFC 8335 PROBE | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 1 maintainers not CCed: willemb@google.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 73 this patch: 73 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 34 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 71 this patch: 71 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
On Wed, Feb 3, 2021 at 6:25 PM Andreas Roeseler <andreas.a.roeseler@gmail.com> wrote: > > Add definitions for PROBE ICMP types and codes. > > Add AFI definitions for IP and IPV6 as specified by IANA > > Add a struct to represent the additional header when probing by IP > address (ctype == 3) for use in parsing incoming PROBE messages. > > Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com> > --- > Changes since v1: > - Add AFI_IP and AFI_IP6 definitions > --- > include/uapi/linux/icmp.h | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h > index fb169a50895e..e70bfcc06247 100644 > --- a/include/uapi/linux/icmp.h > +++ b/include/uapi/linux/icmp.h > @@ -66,6 +66,23 @@ > #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 > +#define ICMP_EXT_MAL_QUERY 1 /* Malformed Query */ > +#define ICMP_EXT_NO_IF 2 /* No such Interface */ > +#define ICMP_EXT_NO_TABLE_ENT 3 /* No such Table Entry */ > +#define ICMP_EXT_MULT_IFS 4 /* Multiple Interfaces Satisfy Query */ > + > +/* constants for EXT_ECHO (PROBE) */ > +#define EXT_ECHOREPLY_ACTIVE (1 << 2)/* position of active flag in reply */ > +#define EXT_ECHOREPLY_IPV4 (1 << 1)/* position of ipv4 flag in reply */ > +#define EXT_ECHOREPLY_IPV6 1 /* position of ipv6 flag in reply */ > +#define CTYPE_NAME 1 > +#define CTYPE_INDEX 2 > +#define CTYPE_ADDR 3 Please use a prefix. These definitions are too generic and may clash with others. Same for the two below. Does all this need to be defined UAPI? > +#define AFI_IP 1 /* Address Family Identifier for IPV4 */ > +#define AFI_IP6 2 /* Address Family Identifier for IPV6 */ > > struct icmphdr { > __u8 type; > @@ -118,4 +135,11 @@ struct icmp_extobj_hdr { > __u8 class_type; > }; > > +/* RFC 8335: 2.1 Header for C-type 3 payload */ > +struct icmp_ext_ctype3_hdr { > + __u16 afi; > + __u8 addrlen; > + __u8 reserved; > +}; > + > #endif /* _UAPI_LINUX_ICMP_H */ > -- > 2.25.1 >
diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h index fb169a50895e..e70bfcc06247 100644 --- a/include/uapi/linux/icmp.h +++ b/include/uapi/linux/icmp.h @@ -66,6 +66,23 @@ #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 +#define ICMP_EXT_MAL_QUERY 1 /* Malformed Query */ +#define ICMP_EXT_NO_IF 2 /* No such Interface */ +#define ICMP_EXT_NO_TABLE_ENT 3 /* No such Table Entry */ +#define ICMP_EXT_MULT_IFS 4 /* Multiple Interfaces Satisfy Query */ + +/* constants for EXT_ECHO (PROBE) */ +#define EXT_ECHOREPLY_ACTIVE (1 << 2)/* position of active flag in reply */ +#define EXT_ECHOREPLY_IPV4 (1 << 1)/* position of ipv4 flag in reply */ +#define EXT_ECHOREPLY_IPV6 1 /* position of ipv6 flag in reply */ +#define CTYPE_NAME 1 +#define CTYPE_INDEX 2 +#define CTYPE_ADDR 3 +#define AFI_IP 1 /* Address Family Identifier for IPV4 */ +#define AFI_IP6 2 /* Address Family Identifier for IPV6 */ struct icmphdr { __u8 type; @@ -118,4 +135,11 @@ struct icmp_extobj_hdr { __u8 class_type; }; +/* RFC 8335: 2.1 Header for C-type 3 payload */ +struct icmp_ext_ctype3_hdr { + __u16 afi; + __u8 addrlen; + __u8 reserved; +}; + #endif /* _UAPI_LINUX_ICMP_H */
Add definitions for PROBE ICMP types and codes. Add AFI definitions for IP and IPV6 as specified by IANA Add a struct to represent the additional header when probing by IP address (ctype == 3) for use in parsing incoming PROBE messages. Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com> --- Changes since v1: - Add AFI_IP and AFI_IP6 definitions --- include/uapi/linux/icmp.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)