icmp: standardize naming of RFC 8335 PROBE constants
The current definitions of constants for PROBE, currently defined only in the net-next kernel branch, are inconsistent, with some beginning with ICMP and others with simply EXT. This patch attempts to standardize the naming conventions of the constants for PROBE before their release into a stable Kernel, and to update the relevant definitions in net/ipv4/icmp.c. Similarly, the definitions for the code field (previously ICMP_EXT_MAL_QUERY, etc) use the same prefixes as the type field. This patch adds _CODE_ to the prefix to clarify the distinction of these constants. Signed-off-by: Andreas Roeseler <andreas.a.roeseler@gmail.com> Acked-by: David Ahern <dsahern@kernel.org> Link: https://lore.kernel.org/r/20210427153635.2591-1-andreas.a.roeseler@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
f89271f09f
commit
e542d29ca8
@@ -1033,7 +1033,7 @@ static bool icmp_echo(struct sk_buff *skb)
|
||||
status = 0;
|
||||
dev = NULL;
|
||||
switch (iio->extobj_hdr.class_type) {
|
||||
case EXT_ECHO_CTYPE_NAME:
|
||||
case ICMP_EXT_ECHO_CTYPE_NAME:
|
||||
iio = skb_header_pointer(skb, sizeof(_ext_hdr), sizeof(_iio), &_iio);
|
||||
if (ident_len >= IFNAMSIZ)
|
||||
goto send_mal_query;
|
||||
@@ -1041,14 +1041,14 @@ static bool icmp_echo(struct sk_buff *skb)
|
||||
memcpy(buff, &iio->ident.name, ident_len);
|
||||
dev = dev_get_by_name(net, buff);
|
||||
break;
|
||||
case EXT_ECHO_CTYPE_INDEX:
|
||||
case ICMP_EXT_ECHO_CTYPE_INDEX:
|
||||
iio = skb_header_pointer(skb, sizeof(_ext_hdr), sizeof(iio->extobj_hdr) +
|
||||
sizeof(iio->ident.ifindex), &_iio);
|
||||
if (ident_len != sizeof(iio->ident.ifindex))
|
||||
goto send_mal_query;
|
||||
dev = dev_get_by_index(net, ntohl(iio->ident.ifindex));
|
||||
break;
|
||||
case EXT_ECHO_CTYPE_ADDR:
|
||||
case ICMP_EXT_ECHO_CTYPE_ADDR:
|
||||
if (ident_len != sizeof(iio->ident.addr.ctype3_hdr) +
|
||||
iio->ident.addr.ctype3_hdr.addrlen)
|
||||
goto send_mal_query;
|
||||
@@ -1080,23 +1080,23 @@ static bool icmp_echo(struct sk_buff *skb)
|
||||
goto send_mal_query;
|
||||
}
|
||||
if (!dev) {
|
||||
icmp_param.data.icmph.code = ICMP_EXT_NO_IF;
|
||||
icmp_param.data.icmph.code = ICMP_EXT_CODE_NO_IF;
|
||||
goto send_reply;
|
||||
}
|
||||
/* Fill bits in reply message */
|
||||
if (dev->flags & IFF_UP)
|
||||
status |= EXT_ECHOREPLY_ACTIVE;
|
||||
status |= ICMP_EXT_ECHOREPLY_ACTIVE;
|
||||
if (__in_dev_get_rcu(dev) && __in_dev_get_rcu(dev)->ifa_list)
|
||||
status |= EXT_ECHOREPLY_IPV4;
|
||||
status |= ICMP_EXT_ECHOREPLY_IPV4;
|
||||
if (!list_empty(&rcu_dereference(dev->ip6_ptr)->addr_list))
|
||||
status |= EXT_ECHOREPLY_IPV6;
|
||||
status |= ICMP_EXT_ECHOREPLY_IPV6;
|
||||
dev_put(dev);
|
||||
icmp_param.data.icmph.un.echo.sequence |= htons(status);
|
||||
send_reply:
|
||||
icmp_reply(&icmp_param, skb);
|
||||
return true;
|
||||
send_mal_query:
|
||||
icmp_param.data.icmph.code = ICMP_EXT_MAL_QUERY;
|
||||
icmp_param.data.icmph.code = ICMP_EXT_CODE_MAL_QUERY;
|
||||
goto send_reply;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user