[PATCH 02/12] net: add function to pretty print IPv4
Morten Brørup
mb at smartsharesystems.com
Tue Dec 14 18:31:15 CET 2021
> From: Ronan Randles [mailto:ronan.randles at intel.com]
> Sent: Tuesday, 14 December 2021 15.13
>
> This function accepts an uint32_t representation of an IP address and
> produces a string representation stored in a char * buffer. Realavent
> unit tests also included.
>
> Signed-off-by: Ronan Randles <ronan.randles at intel.com>
[snip]
> diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h
> index 188054fda4..e46f0b41ba 100644
> --- a/lib/net/rte_ip.h
> +++ b/lib/net/rte_ip.h
> @@ -444,6 +444,26 @@ __rte_experimental
> int32_t
> rte_ip_parse_addr(const char *src_ip, uint32_t *output_addr);
>
> +
> +/**
> + * Print IP address from 32 bit int into char * buffer.
> + *
> + * @param ip_addr
> + * ip address to be printed.
> + * @param buffer
> + * The buffer the string will be saved into.
> + * @param buffer_size
> + * size of buffer to be used.
> + *
> + * @retval 0
> + * Success.
> + * @retval -1
> + * Failure due to invalid input arguments.
> + */
> +__rte_experimental
> +int32_t
> +rte_ip_print_addr(uint32_t ip_addr, char *buffer, uint32_t
> buffer_size);
> +
In continuation of my email reply about the IPv4 parse function...
I have a few suggestions to the IPv4 print function too:
The return value should be the number of characters written to the output string, and still -1 on error. With this modification, you could use the return type ssize_t instead of int32_t.
Furthermore, I would prefer having the parameters in the same order as snprintf(): char *str, size_t size, const uint32_t ip_addr. Please also notice the suggested changed type for the size, and the const added to the ip_addr.
-Morten
More information about the dev
mailing list