linux/include/linux/rxrpc.h
<<
>>
Prefs
   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 * RxRPC security indices
  63 */
  64#define RXRPC_SECURITY_NONE     0       /* no security protocol */
  65#define RXRPC_SECURITY_RXKAD    2       /* kaserver or kerberos 4 */
  66#define RXRPC_SECURITY_RXGK     4       /* gssapi-based */
  67#define RXRPC_SECURITY_RXK5     5       /* kerberos 5 */
  68
  69#endif /* _LINUX_RXRPC_H */
  70