[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070209.221453.16393835.yoshfuji@linux-ipv6.org>
Date: Fri, 09 Feb 2007 22:14:53 +0900 (JST)
From: YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@...ux-ipv6.org>
To: dhowells@...hat.com
Cc: davem@...emloft.net, netdev@...r.kernel.org, herbert.xu@...hat.com,
hch@...radead.org, arjan@...radead.org
Subject: Re: [PATCH 0/5] [RFC] AF_RXRPC socket family implementation
In article <10385.1171024283@...hat.com> (at Fri, 09 Feb 2007 12:31:23 +0000), David Howells <dhowells@...hat.com> says:
> YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org> wrote:
>
> > and make it sure to align on 64-bit word.
>
> The first part of sockaddr_rxrpc is exactly 64 bits; then comes the transport
> address, so that's okay.
>
> > This sockaddr_rxrpc{} should NOT include sockaddr_in{} directly.
> > Please use sockaddr_storage{} (or sockaddr{}, maybe),
>
> Why can't I include sockaddr_in and sockaddr_in6 in sockaddr_rxrpc, btw?
Because it is protocol (such as ipv4 or ipv6) dependent.
You cannot use different sturcture for one address family.
You could use union, maybe.
> > > That won't work. That would then make the address larger than the maximum
> > > size (ie: sizeof(struct sockaddr_storage)).
> >
> > sockaddr{}, then...
>
> But that's not big enough to hold a sockaddr_in6...
struct sockaddr_rxrpc {
...
union {
struct sockaddr rxrpc_sa;
struct sockaddr_in rxrpc_sin;
struct sockaddr_in6 rxrpc_sin6;
} __attribute__((__aligned(8)__));
};
Another option would be to introduce new transport protocol such as
dccp or sctp, no?
--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists