[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D496D39A-A657-42DC-A4E2-4020E0E54398@oracle.com>
Date: Wed, 19 Aug 2009 19:00:53 -0400
From: Chuck Lever <chuck.lever@...cle.com>
To: Joe Perches <joe@...ches.com>
Cc: jens@...one.net, brian.haley@...com,
David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [RFC PATCH V2] lib/vsprintf.c: Add struct sockaddr * "%pN<foo>" output
On Aug 19, 2009, at 6:36 PM, Joe Perches wrote:
> On Wed, 2009-08-19 at 18:20 -0400, Chuck Lever wrote:
>> On Aug 19, 2009, at 4:44 PM, Joe Perches wrote:
>>> I'm not too sure there's much value in ever more formatters for
>>> relatively simple things or in printing something like port or
>>> scope without the ip address.
>>>
>>> %hu ntohs(sa6->sin6_port)
>>> or
>>> %d or 0x%x ntohl(sa6->sin6_flowinfo)
>>>
>>> seem pretty straightforward to me.
>>
>> It's the same issue for port numbers as it is for addresses: though
>> the port field is the same size in each, it's at different offsets in
>> AF_INET and AF_INET6 addresses, so extra logic is still needed to
>> sort
>> that at each call site.
I should add that the scope ID and flowinfo tag are IPv6 only, so they
really don't have the same problem. If you have to print a scope ID,
you pretty much know you are dealing only with sockaddr_in6.
>> As an example, an rpcbind query cares about the port number result,
>> but usually not the address. A human-readable message could show the
>> returned port number, but leave out the address. Without a separate
>> formatter, you would still need extra logic around each debugging
>> message (for example) to choose how to print the port number.
>>
>> You could probably argue, though, that this is a less common need
>> than
>> printing addresses.
>
> I suppose an address exclude could be added to %pN
> if really needed. Maybe "%pNx(specifiers)"
>>> Here's another tentative patch that does both using square
>>> brackets around IPv6 addresses with a port number and
>>> allows selection of the port number style ":dddd" or ":hi.lo"
>>
>> The "hi.lo" form is always separated from the address by a dot, not
>> by
>> a colon, and square brackets are never used in that case. The hi.lo
>> format is probably enough of a special case that a separate specifier
>> for that one is unnecessary.
>
> Is the RPC code never used with a ipv6_addr_v4mapped address?
> ::192.168.0.1.1.1 would look pretty ugly
As I understand it, TI-RPC does not ever use mapped v4 addresses on
the wire (only pure IPv4 and IPv6). So they shouldn't actually appear
in the universal address format, in practice.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
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