11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* packet.h: Rx packet layout and definitions
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
363b6be55e8b51cb718468794d343058e96c7462cDavid Howells * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Written by David Howells (dhowells@redhat.com)
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * modify it under the terms of the GNU General Public License
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * as published by the Free Software Foundation; either version
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2 of the License, or (at your option) any later version.
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _LINUX_RXRPC_PACKET_H
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _LINUX_RXRPC_PACKET_H
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1563b6be55e8b51cb718468794d343058e96c7462cDavid Howellstypedef u32	rxrpc_seq_t;	/* Rx message sequence number */
1663b6be55e8b51cb718468794d343058e96c7462cDavid Howellstypedef u32	rxrpc_serial_t;	/* Rx message serial number */
1763b6be55e8b51cb718468794d343058e96c7462cDavid Howellstypedef __be32	rxrpc_seq_net_t; /* on-the-wire Rx message sequence number */
1863b6be55e8b51cb718468794d343058e96c7462cDavid Howellstypedef __be32	rxrpc_serial_net_t; /* on-the-wire Rx message serial number */
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*****************************************************************************/
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * on-the-wire Rx packet header
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * - all multibyte fields should be in network byte order
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
2563b6be55e8b51cb718468794d343058e96c7462cDavid Howellsstruct rxrpc_header {
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		epoch;		/* client boot timestamp */
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		cid;		/* connection and channel ID */
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_MAXCALLS		4			/* max active calls per conn */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_CHANNELMASK	(RXRPC_MAXCALLS-1)	/* mask for channel ID */
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_CIDMASK		(~RXRPC_CHANNELMASK)	/* mask for connection ID */
3217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXRPC_CIDSHIFT		ilog2(RXRPC_MAXCALLS)	/* shift for connection ID */
3317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXRPC_CID_INC		(1 << RXRPC_CIDSHIFT)	/* connection ID increment */
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		callNumber;	/* call ID (0 for connection-level packets) */
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PROCESS_MAXCALLS	(1<<2)	/* maximum number of active calls per conn (power of 2) */
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		seq;		/* sequence number of pkt in call stream */
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		serial;		/* serial number of pkt sent to network */
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		type;		/* packet type */
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_DATA		1	/* data */
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_ACK		2	/* ACK */
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_BUSY		3	/* call reject */
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_ABORT		4	/* call/connection abort */
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_ACKALL	5	/* ACK all outstanding packets on call */
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_CHALLENGE	6	/* connection security challenge (SRVR->CLNT) */
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_RESPONSE	7	/* connection secutity response (CLNT->SRVR) */
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_PACKET_TYPE_DEBUG		8	/* debug info request */
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_N_PACKET_TYPES		9	/* number of packet types (incl type 0) */
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		flags;		/* packet flags */
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_CLIENT_INITIATED	0x01		/* signifies a packet generated by a client */
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_REQUEST_ACK	0x02		/* request an unconditional ACK of this packet */
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_LAST_PACKET	0x04		/* the last packet from this side for this call */
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_MORE_PACKETS	0x08		/* more packets to come */
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_JUMBO_PACKET	0x20		/* [DATA] this is a jumbo packet */
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_SLOW_START_OK	0x20		/* [ACK] slow start supported */
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		userStatus;	/* app-layer defined status */
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		securityIndex;	/* security protocol ID */
6217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	union {
6317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be16	_rsvd;		/* reserved */
6417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be16	cksum;		/* kerberos security checksum */
6517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	};
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be16		serviceId;	/* service ID */
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
68bc10502dba37d3b210efd9f3867212298f13b78eEric Dumazet} __packed;
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __rxrpc_header_off(X) offsetof(struct rxrpc_header,X)
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern const char *rxrpc_pkts[];
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*****************************************************************************/
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * jumbo packet secondary header
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * - can be mapped to read header by:
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *   - new_serial = serial + 1
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *   - new_seq = seq + 1
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *   - new_flags = j_flags
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *   - new__rsvd = j__rsvd
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *   - duplicating all other fields
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
8463b6be55e8b51cb718468794d343058e96c7462cDavid Howellsstruct rxrpc_jumbo_header {
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		flags;		/* packet flags (as per rxrpc_header) */
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		pad;
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be16		_rsvd;		/* reserved (used by kerberos security as cksum) */
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_JUMBO_DATALEN	1412	/* non-terminal jumbo packet data length */
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*****************************************************************************/
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * on-the-wire Rx ACK packet data payload
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * - all multibyte fields should be in network byte order
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
9763b6be55e8b51cb718468794d343058e96c7462cDavid Howellsstruct rxrpc_ackpacket {
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be16		bufferSpace;	/* number of packet buffers available */
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be16		maxSkew;	/* diff between serno being ACK'd and highest serial no
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds					 * received */
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		firstPacket;	/* sequence no of first ACK'd packet in attached list */
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		previousPacket;	/* sequence no of previous packet received */
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__be32		serial;		/* serial no of packet that prompted this ACK */
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		reason;		/* reason for ACK */
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_REQUESTED		1	/* ACK was requested on packet */
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_DUPLICATE		2	/* duplicate packet received */
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_OUT_OF_SEQUENCE	3	/* out of sequence packet received */
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_EXCEEDS_WINDOW	4	/* packet received beyond end of ACK window */
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_NOSPACE		5	/* packet discarded due to lack of buffer space */
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_PING			6	/* keep alive ACK */
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_PING_RESPONSE		7	/* response to RXRPC_ACK_PING */
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_DELAY			8	/* nothing happened since received packet */
1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_IDLE			9	/* ACK due to fully received ACK window */
1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		nAcks;		/* number of ACKs */
1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_MAXACKS	255
1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	uint8_t		acks[0];	/* list of ACK/NAKs */
1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_TYPE_NACK		0
1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RXRPC_ACK_TYPE_ACK		1
1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
123bc10502dba37d3b210efd9f3867212298f13b78eEric Dumazet} __packed;
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
12517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*
12617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * ACK packets can have a further piece of information tagged on the end
12717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells */
12817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howellsstruct rxrpc_ackinfo {
12917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		rxMTU;		/* maximum Rx MTU size (bytes) [AFS 3.3] */
13017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		maxMTU;		/* maximum interface MTU size (bytes) [AFS 3.3] */
13117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		rwind;		/* Rx window size (packets) [AFS 3.4] */
13217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		jumbo_max;	/* max packets to stick into a jumbo packet [AFS 3.5] */
13317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells};
13417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
13517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*****************************************************************************/
13617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*
13717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * Kerberos security type-2 challenge packet
13817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells */
13917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howellsstruct rxkad_challenge {
14017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		version;	/* version of this challenge type */
14117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		nonce;		/* encrypted random number */
14217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		min_level;	/* minimum security level */
14317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		__padding;	/* padding to 8-byte boundary */
144bc10502dba37d3b210efd9f3867212298f13b78eEric Dumazet} __packed;
14517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
14617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*****************************************************************************/
14717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*
14817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * Kerberos security type-2 response packet
14917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells */
15017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howellsstruct rxkad_response {
15125985edcedea6396277003854657b5f3cb31a628Lucas De Marchi	__be32		version;	/* version of this response type */
15217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		__pad;
15317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
15417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	/* encrypted bit of the response */
15517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	struct {
15617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		epoch;		/* current epoch */
15717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		cid;		/* parent connection ID */
15817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		checksum;	/* checksum */
15917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		securityIndex;	/* security type */
16017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		call_id[4];	/* encrypted call IDs */
16117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		inc_nonce;	/* challenge nonce + 1 */
16217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells		__be32		level;		/* desired level */
16317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	} encrypted;
16417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
16517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		kvno;		/* Kerberos key version number */
16617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells	__be32		ticket_len;	/* Kerberos ticket length  */
167bc10502dba37d3b210efd9f3867212298f13b78eEric Dumazet} __packed;
16817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
16917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*****************************************************************************/
17017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*
17117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * RxRPC-level abort codes
17217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells */
17317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_CALL_DEAD		-1	/* call/conn has been inactive and is shut down */
17417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_INVALID_OPERATION	-2	/* invalid operation requested / attempted */
17517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_CALL_TIMEOUT		-3	/* call timeout exceeded */
17617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_EOF			-4	/* unexpected end of data on read op */
17717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_PROTOCOL_ERROR	-5	/* low-level protocol error */
17817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_USER_ABORT		-6	/* generic user abort */
17917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_ADDRINUSE		-7	/* UDP port in use */
18017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RX_DEBUGI_BADTYPE	-8	/* bad debugging packet type */
18117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
18217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells/*
183651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells * (un)marshalling abort codes (rxgen)
184651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells */
185651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_CC_MARSHAL    -450
186651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_CC_UNMARSHAL  -451
187651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_SS_MARSHAL    -452
188651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_SS_UNMARSHAL  -453
189651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_DECODE	    -454
190651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_OPCODE	    -455
191651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_SS_XDRFREE    -456
192651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells#define	RXGEN_CC_XDRFREE    -457
193651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells
194651350d10f93bed7003c9a66e24cf25e0f8eed3dDavid Howells/*
19517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * Rx kerberos security abort codes
19617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells * - unfortunately we have no generalised security abort codes to say things
19717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells *   like "unsupported security", so we have to use these instead and hope the
19817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells *   other side understands
19917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells */
20017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADINCONSISTENCY	19270400	/* security module structure inconsistent */
20117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADPACKETSHORT	19270401	/* packet too short for security challenge */
20217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADLEVELFAIL		19270402	/* security level negotiation failed */
20317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADTICKETLEN		19270403	/* ticket length too short or too long */
20417926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADOUTOFSEQUENCE	19270404	/* packet had bad sequence number */
20517926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADNOAUTH		19270405	/* caller not authorised */
20617926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADBADKEY		19270406	/* illegal key: bad parity or weak */
20717926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADBADTICKET		19270407	/* security object was passed a bad ticket */
20817926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADUNKNOWNKEY		19270408	/* ticket contained unknown key version number */
20917926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADEXPIRED		19270409	/* authentication expired */
21017926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADSEALEDINCON	19270410	/* sealed data inconsistent */
21117926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADDATALEN		19270411	/* user data too long */
21217926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells#define RXKADILLEGALLEVEL	19270412	/* caller not authorised to use encrypted conns */
21317926a79320afa9b95df6b977b40cca6d8713ceaDavid Howells
2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* _LINUX_RXRPC_PACKET_H */
215