rxrpc: Add IPv6 support
Add IPv6 support to AF_RXRPC. With this, AF_RXRPC sockets can be created: service = socket(AF_RXRPC, SOCK_DGRAM, PF_INET6); instead of: service = socket(AF_RXRPC, SOCK_DGRAM, PF_INET); The AFS filesystem doesn't support IPv6 at the moment, though, since that requires upgrades to some of the RPC calls. Note that a good portion of this patch is replacing "%pI4:%u" in print statements with "%pISpc" which is able to handle both protocols and print the port. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -258,6 +258,22 @@ send_fragmentable:
|
||||
(char *)&opt, sizeof(opt));
|
||||
}
|
||||
break;
|
||||
|
||||
case AF_INET6:
|
||||
opt = IPV6_PMTUDISC_DONT;
|
||||
ret = kernel_setsockopt(conn->params.local->socket,
|
||||
SOL_IPV6, IPV6_MTU_DISCOVER,
|
||||
(char *)&opt, sizeof(opt));
|
||||
if (ret == 0) {
|
||||
ret = kernel_sendmsg(conn->params.local->socket, &msg,
|
||||
iov, 1, iov[0].iov_len);
|
||||
|
||||
opt = IPV6_PMTUDISC_DO;
|
||||
kernel_setsockopt(conn->params.local->socket,
|
||||
SOL_IPV6, IPV6_MTU_DISCOVER,
|
||||
(char *)&opt, sizeof(opt));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
up_write(&conn->params.local->defrag_sem);
|
||||
|
||||
Reference in New Issue
Block a user