SUNRPC: Provide functions for managing universal addresses
authorChuck Lever <chuck.lever@oracle.com>
Sun, 9 Aug 2009 19:09:34 +0000 (15:09 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 9 Aug 2009 19:09:34 +0000 (15:09 -0400)
commita02d692611348f11ee1bc37431a883c3ff2de23e
tree5a2ad4862784b4337846b44ddd816e495484086f
parent0b10bf5e14d856d1d27a2117d07af2bebee81b75
SUNRPC: Provide functions for managing universal addresses

Introduce a set of functions in the kernel's RPC implementation for
converting between a socket address and either a standard
presentation address string or an RPC universal address.

The universal address functions will be used to encode and decode
RPCB_FOO and NFSv4 SETCLIENTID arguments.  The other functions are
part of a previous promise to deliver shared functions that can be
used by upper-layer protocols to display and manipulate IP
addresses.

The kernel's current address printf formatters were designed
specifically for kernel to user-space APIs that require a particular
string format for socket addresses, thus are somewhat limited for the
purposes of sunrpc.ko.  The formatter for IPv6 addresses, %pI6, does
not support short-handing or scope IDs.  Also, these printf formatters
are unique per address family, so a separate formatter string is
required for printing AF_INET and AF_INET6 addresses.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/internal.h
include/linux/sunrpc/clnt.h
net/sunrpc/Makefile
net/sunrpc/addr.c [new file with mode: 0644]