Add documentation clarifying that ARP and routing UAPI structures are constrained to IPv4-only usage, making them safe for the coming fixed-size sockaddr conversion (with the 14-byte struct sockaddr::sa_data). These are fine as-is, but their use was non-obvious to me, so I figured they could use a little more documentation: - struct arpreq: ARP protocol is IPv4-only by design - struct rtentry: Legacy IPv4 routing API, IPv6 uses different structures Signed-off-by: Kees Cook --- Cc: "David S. Miller" Cc: Eric Dumazet Cc: Jakub Kicinski Cc: Paolo Abeni Cc: Simon Horman Cc: --- include/uapi/linux/if_arp.h | 3 ++- include/uapi/linux/route.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/if_arp.h b/include/uapi/linux/if_arp.h index 4783af9fe520..4164cc6e8aa5 100644 --- a/include/uapi/linux/if_arp.h +++ b/include/uapi/linux/if_arp.h @@ -113,7 +113,7 @@ #define ARPOP_NAK 10 /* (ATM)ARP NAK */ -/* ARP ioctl request. */ +/* ARP ioctl request; IPv4-only protocol. */ struct arpreq { struct sockaddr arp_pa; /* protocol address */ struct sockaddr arp_ha; /* hardware address */ @@ -122,6 +122,7 @@ struct arpreq { char arp_dev[IFNAMSIZ]; }; +/* Legacy ARP ioctl request; IPv4-only protocol. */ struct arpreq_old { struct sockaddr arp_pa; /* protocol address */ struct sockaddr arp_ha; /* hardware address */ diff --git a/include/uapi/linux/route.h b/include/uapi/linux/route.h index a0de9a7331a2..a2955e25d7ee 100644 --- a/include/uapi/linux/route.h +++ b/include/uapi/linux/route.h @@ -27,7 +27,7 @@ #include #include -/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ +/* This IPv4-only structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ struct rtentry { unsigned long rt_pad1; struct sockaddr rt_dst; /* target address */ -- 2.34.1