123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- #ifndef _LINUX_RXRPC_PACKET_H
- #define _LINUX_RXRPC_PACKET_H
- typedef u32 rxrpc_seq_t;
- typedef u32 rxrpc_serial_t;
- typedef __be32 rxrpc_seq_net_t;
- typedef __be32 rxrpc_serial_net_t;
- struct rxrpc_wire_header {
- __be32 epoch;
- #define RXRPC_RANDOM_EPOCH 0x80000000
- __be32 cid;
- #define RXRPC_MAXCALLS 4
- #define RXRPC_CHANNELMASK (RXRPC_MAXCALLS-1)
- #define RXRPC_CIDMASK (~RXRPC_CHANNELMASK)
- #define RXRPC_CIDSHIFT ilog2(RXRPC_MAXCALLS)
- #define RXRPC_CID_INC (1 << RXRPC_CIDSHIFT)
- __be32 callNumber;
- __be32 seq;
- __be32 serial;
- uint8_t type;
- #define RXRPC_PACKET_TYPE_DATA 1
- #define RXRPC_PACKET_TYPE_ACK 2
- #define RXRPC_PACKET_TYPE_BUSY 3
- #define RXRPC_PACKET_TYPE_ABORT 4
- #define RXRPC_PACKET_TYPE_ACKALL 5
- #define RXRPC_PACKET_TYPE_CHALLENGE 6
- #define RXRPC_PACKET_TYPE_RESPONSE 7
- #define RXRPC_PACKET_TYPE_DEBUG 8
- #define RXRPC_PACKET_TYPE_VERSION 13
- #define RXRPC_N_PACKET_TYPES 14
- uint8_t flags;
- #define RXRPC_CLIENT_INITIATED 0x01
- #define RXRPC_REQUEST_ACK 0x02
- #define RXRPC_LAST_PACKET 0x04
- #define RXRPC_MORE_PACKETS 0x08
- #define RXRPC_JUMBO_PACKET 0x20
- #define RXRPC_SLOW_START_OK 0x20
- uint8_t userStatus;
- uint8_t securityIndex;
- union {
- __be16 _rsvd;
- __be16 cksum;
- };
- __be16 serviceId;
- } __packed;
- #define RXRPC_SUPPORTED_PACKET_TYPES ( \
- (1 << RXRPC_PACKET_TYPE_DATA) | \
- (1 << RXRPC_PACKET_TYPE_ACK) | \
- (1 << RXRPC_PACKET_TYPE_BUSY) | \
- (1 << RXRPC_PACKET_TYPE_ABORT) | \
- (1 << RXRPC_PACKET_TYPE_ACKALL) | \
- (1 << RXRPC_PACKET_TYPE_CHALLENGE) | \
- (1 << RXRPC_PACKET_TYPE_RESPONSE) | \
- \
- (1 << RXRPC_PACKET_TYPE_VERSION))
- struct rxrpc_jumbo_header {
- uint8_t flags;
- uint8_t pad;
- union {
- __be16 _rsvd;
- __be16 cksum;
- };
- };
- #define RXRPC_JUMBO_DATALEN 1412
- #define RXRPC_JUMBO_SUBPKTLEN (RXRPC_JUMBO_DATALEN + sizeof(struct rxrpc_jumbo_header))
- struct rxrpc_ackpacket {
- __be16 bufferSpace;
- __be16 maxSkew;
- __be32 firstPacket;
- __be32 previousPacket;
- __be32 serial;
- uint8_t reason;
- #define RXRPC_ACK_REQUESTED 1
- #define RXRPC_ACK_DUPLICATE 2
- #define RXRPC_ACK_OUT_OF_SEQUENCE 3
- #define RXRPC_ACK_EXCEEDS_WINDOW 4
- #define RXRPC_ACK_NOSPACE 5
- #define RXRPC_ACK_PING 6
- #define RXRPC_ACK_PING_RESPONSE 7
- #define RXRPC_ACK_DELAY 8
- #define RXRPC_ACK_IDLE 9
- #define RXRPC_ACK__INVALID 10
- uint8_t nAcks;
- #define RXRPC_MAXACKS 255
- uint8_t acks[0];
- #define RXRPC_ACK_TYPE_NACK 0
- #define RXRPC_ACK_TYPE_ACK 1
- } __packed;
- #define RXRPC_ACK_UPDATEABLE ((1 << RXRPC_ACK_REQUESTED) | \
- (1 << RXRPC_ACK_PING_RESPONSE) | \
- (1 << RXRPC_ACK_DELAY) | \
- (1 << RXRPC_ACK_IDLE))
- struct rxrpc_ackinfo {
- __be32 rxMTU;
- __be32 maxMTU;
- __be32 rwind;
- __be32 jumbo_max;
- };
- struct rxkad_challenge {
- __be32 version;
- __be32 nonce;
- __be32 min_level;
- __be32 __padding;
- } __packed;
- struct rxkad_response {
- __be32 version;
- __be32 __pad;
-
- struct {
- __be32 epoch;
- __be32 cid;
- __be32 checksum;
- __be32 securityIndex;
- __be32 call_id[4];
- __be32 inc_nonce;
- __be32 level;
- } encrypted;
- __be32 kvno;
- __be32 ticket_len;
- } __packed;
- #define RX_CALL_DEAD -1
- #define RX_INVALID_OPERATION -2
- #define RX_CALL_TIMEOUT -3
- #define RX_EOF -4
- #define RX_PROTOCOL_ERROR -5
- #define RX_USER_ABORT -6
- #define RX_ADDRINUSE -7
- #define RX_DEBUGI_BADTYPE -8
- #define RXGEN_CC_MARSHAL -450
- #define RXGEN_CC_UNMARSHAL -451
- #define RXGEN_SS_MARSHAL -452
- #define RXGEN_SS_UNMARSHAL -453
- #define RXGEN_DECODE -454
- #define RXGEN_OPCODE -455
- #define RXGEN_SS_XDRFREE -456
- #define RXGEN_CC_XDRFREE -457
- #define RXKADINCONSISTENCY 19270400
- #define RXKADPACKETSHORT 19270401
- #define RXKADLEVELFAIL 19270402
- #define RXKADTICKETLEN 19270403
- #define RXKADOUTOFSEQUENCE 19270404
- #define RXKADNOAUTH 19270405
- #define RXKADBADKEY 19270406
- #define RXKADBADTICKET 19270407
- #define RXKADUNKNOWNKEY 19270408
- #define RXKADEXPIRED 19270409
- #define RXKADSEALEDINCON 19270410
- #define RXKADDATALEN 19270411
- #define RXKADILLEGALLEVEL 19270412
- #endif
|