Re: [RFC Patch net-next 3/5] inetpeer: use generic union inet_addr

From: Eric Dumazet
Date: Thu Jun 27 2013 - 04:01:30 EST


On Thu, 2013-06-27 at 14:43 +0800, Cong Wang wrote:
> Signed-off-by: Cong Wang <amwang@xxxxxxxxxx>
> ---
> include/net/inetpeer.h | 29 +++++----------
> net/ipv4/inetpeer.c | 35 +++++++++++-------
> net/ipv4/tcp_metrics.c | 92 ++++++++++++++++++++----------------------------
> 3 files changed, 68 insertions(+), 88 deletions(-)
>
> diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
> index 53f464d..7ec33fb 100644
> --- a/include/net/inetpeer.h
> +++ b/include/net/inetpeer.h
> @@ -13,24 +13,13 @@
> #include <linux/spinlock.h>
> #include <linux/rtnetlink.h>
> #include <net/ipv6.h>
> +#include <net/inet_addr.h>
> #include <linux/atomic.h>
>
> -struct inetpeer_addr_base {
> - union {
> - __be32 a4;
> - __be32 a6[4];
> - };
> -};
> -
> -struct inetpeer_addr {
> - struct inetpeer_addr_base addr;
> - __u16 family;
> -};
> -
> struct inet_peer {
> /* group together avl_left,avl_right,v4daddr to speedup lookups */
> struct inet_peer __rcu *avl_left, *avl_right;
> - struct inetpeer_addr daddr;
> + union inet_addr daddr;

Please compare sizeof(struct inetpeer_addr) and sizeof(union inet_addr)

If I am not mistaken, its 20 bytes instead of 28

Yes, sockaddr_in6 is a bit bloated...


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/