1/* AF_RXRPC parameters
2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#ifndef _LINUX_RXRPC_H
13#define _LINUX_RXRPC_H
14
15#include <linux/in.h>
16#include <linux/in6.h>
17
18/*
19 * RxRPC socket address
20 */
21struct sockaddr_rxrpc {
22	sa_family_t	srx_family;	/* address family */
23	u16		srx_service;	/* service desired */
24	u16		transport_type;	/* type of transport socket (SOCK_DGRAM) */
25	u16		transport_len;	/* length of transport address */
26	union {
27		sa_family_t family;		/* transport address family */
28		struct sockaddr_in sin;		/* IPv4 transport address */
29		struct sockaddr_in6 sin6;	/* IPv6 transport address */
30	} transport;
31};
32
33/*
34 * RxRPC socket options
35 */
36#define RXRPC_SECURITY_KEY		1	/* [clnt] set client security key */
37#define RXRPC_SECURITY_KEYRING		2	/* [srvr] set ring of server security keys */
38#define RXRPC_EXCLUSIVE_CONNECTION	3	/* [clnt] use exclusive RxRPC connection */
39#define RXRPC_MIN_SECURITY_LEVEL	4	/* minimum security level */
40
41/*
42 * RxRPC control messages
43 * - terminal messages mean that a user call ID tag can be recycled
44 */
45#define RXRPC_USER_CALL_ID	1	/* user call ID specifier */
46#define RXRPC_ABORT		2	/* abort request / notification [terminal] */
47#define RXRPC_ACK		3	/* [Server] RPC op final ACK received [terminal] */
48#define RXRPC_NET_ERROR		5	/* network error received [terminal] */
49#define RXRPC_BUSY		6	/* server busy received [terminal] */
50#define RXRPC_LOCAL_ERROR	7	/* local error generated [terminal] */
51#define RXRPC_NEW_CALL		8	/* [Server] new incoming call notification */
52#define RXRPC_ACCEPT		9	/* [Server] accept request */
53
54/*
55 * RxRPC security levels
56 */
57#define RXRPC_SECURITY_PLAIN	0	/* plain secure-checksummed packets only */
58#define RXRPC_SECURITY_AUTH	1	/* authenticated packets */
59#define RXRPC_SECURITY_ENCRYPT	2	/* encrypted packets */
60
61
62#endif /* _LINUX_RXRPC_H */
63