From: David Howells <dhowells@cambridge.redhat.com>
To: trond.myklebust@fys.uio.no
Cc: David Howells <dhowells@cambridge.redhat.com>,
Jan Harkes <jaharkes@cs.cmu.edu>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] AFS filesystem for Linux (2/2)
Date: Fri, 04 Oct 2002 17:17:35 +0100 [thread overview]
Message-ID: <27452.1033748255@warthog.cambridge.redhat.com> (raw)
In-Reply-To: Message from Trond Myklebust <trond.myklebust@fys.uio.no> of "Fri, 04 Oct 2002 18:03:15 +0200." <15773.48067.804268.678391@charged.uio.no>
> > I would if I could, but RxRPC is a sufficiently different
> > protocol to make that impractical:-/
>
> How badly does it differ? If you are talking only about a couple of
> differences in the RPC headers, then that is something that can easily
> be overcome...
There appears to be more to it than that. RxRPC has sequencing and ACKing
windows and things that I don't think SUNRPC has (basically it tries to do
some of TCP itself). I've attached the struct definitions for the RxRPC header
and the ACK packet body from my RxRPC implementation for your reference.
Furthermore, RxRPC allows for big binary blobs to be interpolated in the
middle of packets (though if I understand it correctly it effectively encodes
them as an XDR octet array of sorts).
David
struct rxrpc_header
{
u32 epoch; /* client boot timestamp */
u32 cid; /* connection and channel ID */
#define RXRPC_MAXCALLS 4 /* max active calls per conn */
#define RXRPC_CHANNELMASK (RXRPC_MAXCALLS-1) /* mask for channel ID */
#define RXRPC_CIDMASK (~RXRPC_CHANNELMASK) /* mask for connection ID */
#define RXRPC_CIDSHIFT 2 /* shift for connection ID */
u32 callNumber; /* call ID (0 for connection-level packets) */
#define RXRPC_PROCESS_MAXCALLS (1<<2) /* maximum number of active calls per conn (power of 2) */
u32 seq; /* sequence number of pkt in call stream */
u32 serial; /* serial number of pkt sent to network */
u8 type; /* packet type */
#define RXRPC_PACKET_TYPE_DATA 1 /* data */
#define RXRPC_PACKET_TYPE_ACK 2 /* ACK */
#define RXRPC_PACKET_TYPE_BUSY 3 /* call reject */
#define RXRPC_PACKET_TYPE_ABORT 4 /* call/connection abort */
#define RXRPC_PACKET_TYPE_ACKALL 5 /* ACK all outstanding packets on call */
#define RXRPC_PACKET_TYPE_CHALLENGE 6 /* connection security challenge (SRVR->CLNT) */
#define RXRPC_PACKET_TYPE_RESPONSE 7 /* connection secutity response (CLNT->SRVR) */
#define RXRPC_PACKET_TYPE_DEBUG 8 /* debug info request */
#define RXRPC_N_PACKET_TYPES 9 /* number of packet types (incl type 0) */
u8 flags; /* packet flags */
#define RXRPC_CLIENT_INITIATED 0x01 /* signifies a packet generated by a client */
#define RXRPC_REQUEST_ACK 0x02 /* request an unconditional ACK of this packet */
#define RXRPC_LAST_PACKET 0x04 /* the last packet from this side for this call */
#define RXRPC_MORE_PACKETS 0x08 /* more packets to come */
#define RXRPC_JUMBO_PACKET 0x20 /* [DATA] this is a jumbo packet */
#define RXRPC_SLOW_START_OK 0x20 /* [ACK] slow start supported */
u8 userStatus; /* app-layer defined status */
u8 securityIndex; /* security protocol ID */
u16 _rsvd; /* reserved (used by kerberos security as cksum) */
u16 serviceId; /* service ID */
} __attribute__((packed));
struct rxrpc_ackpacket
{
u16 bufferSpace; /* number of packet buffers available */
u16 maxSkew; /* diff between serno being ACK'd and highest serial no received */
u32 firstPacket; /* sequence no of first ACK'd packet in attached list */
u32 previousPacket; /* sequence no of previous packet received */
u32 serial; /* serial no of packet that prompted this ACK */
u8 reason; /* reason for ACK */
#define RXRPC_ACK_REQUESTED 1 /* ACK was requested on packet */
#define RXRPC_ACK_DUPLICATE 2 /* duplicate packet received */
#define RXRPC_ACK_OUT_OF_SEQUENCE 3 /* out of sequence packet received */
#define RXRPC_ACK_EXCEEDS_WINDOW 4 /* packet received beyond end of ACK window */
#define RXRPC_ACK_NOSPACE 5 /* packet discarded due to lack of buffer space */
#define RXRPC_ACK_PING 6 /* keep alive ACK */
#define RXRPC_ACK_PING_RESPONSE 7 /* response to RXRPC_ACK_PING */
#define RXRPC_ACK_DELAY 8 /* nothing happened since received packet */
#define RXRPC_ACK_IDLE 9 /* ACK due to fully received ACK window */
u8 nAcks; /* number of ACKs */
#define RXRPC_MAXACKS 255
u8 acks[0]; /* list of ACK/NAKs */
#define RXRPC_ACK_TYPE_NACK 0
#define RXRPC_ACK_TYPE_ACK 1
} __attribute__((packed));
next prev parent reply other threads:[~2002-10-04 16:12 UTC|newest]
Thread overview: 316+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <7146.1033580256@warthog.cambridge.redhat.com>
2002-10-03 0:36 ` [PATCH] AFS filesystem for Linux (2/2) Linus Torvalds
2002-10-03 9:05 ` David Howells
2002-10-03 16:53 ` Jan Harkes
2002-10-03 17:45 ` Jan Harkes
2002-10-03 21:46 ` David Howells
2002-10-04 8:13 ` David Howells
[not found] ` <15381.1033681790@warthog.cambridge.redhat.com>
2002-10-04 14:02 ` Jan Harkes
2002-10-04 14:40 ` Trond Myklebust
2002-10-04 15:35 ` David Howells
2002-10-04 15:53 ` Trond Myklebust
2002-10-04 15:56 ` David Howells
2002-10-04 16:03 ` Trond Myklebust
2002-10-04 16:17 ` David Howells [this message]
2002-10-04 17:04 ` Trond Myklebust
2002-10-04 17:29 ` David Howells
2002-10-07 14:14 ` David Howells
2002-10-07 14:54 ` Trond Myklebust
2002-10-07 15:36 ` David Howells
2002-10-04 16:30 ` Andreas Dilger
2002-10-04 15:34 ` David Howells
2002-10-04 16:07 ` Jan Harkes
2002-10-04 16:56 ` David Howells
2002-10-04 17:36 ` Jan Harkes
2002-10-07 9:14 ` David Howells
2002-10-06 16:49 ` Troy Benjegerdes
2002-10-07 9:16 ` David Howells
2002-10-04 14:11 ` [patch] [kkern] " Patrick Audley
2001-05-14 19:19 LANANA: To Pending Device Number Registrants H. Peter Anvin
2001-05-14 19:36 ` Jeff Garzik
2001-05-14 19:57 ` H. Peter Anvin
2001-05-14 20:04 ` Jeff Garzik
2001-05-14 20:09 ` Alan Cox
2001-05-14 20:24 ` Jeff Garzik
2001-05-14 20:27 ` H. Peter Anvin
2001-05-14 22:21 ` Alan Cox
2001-05-14 23:43 ` Jan Niehusmann
2001-05-14 23:48 ` Alan Cox
2001-05-14 20:29 ` Linus Torvalds
2001-05-14 20:55 ` Neil Brown
2001-05-14 21:20 ` Alan Cox
2001-05-14 21:37 ` Neil Brown
2001-05-14 21:24 ` Jeff Garzik
2001-05-14 21:33 ` Neil Brown
2001-05-15 6:41 ` Linus Torvalds
2001-05-15 8:57 ` Alan Cox
2001-05-15 9:08 ` Linus Torvalds
2001-05-15 9:26 ` Alan Cox
2001-05-15 9:49 ` Alexander Viro
2001-05-15 9:51 ` Alan Cox
2001-05-15 10:12 ` Alexander Viro
2001-05-15 10:36 ` Alan Cox
2001-05-15 15:16 ` Linus Torvalds
2001-05-15 20:55 ` Alan Cox
2001-05-15 15:10 ` Linus Torvalds
2001-05-15 15:29 ` Alexander Viro
2001-05-15 17:21 ` James Simmons
2001-05-15 17:25 ` Alexander Viro
2001-05-15 17:29 ` James Simmons
2001-05-15 17:32 ` Alexander Viro
2001-05-15 17:44 ` James Simmons
2001-05-15 18:18 ` Ingo Oeser
2001-05-15 18:36 ` James Simmons
2001-05-15 18:42 ` Alexander Viro
2001-05-16 8:29 ` Helge Hafting
2001-05-16 17:16 ` James Simmons
2001-05-15 21:46 ` Chip Salzenberg
2001-05-15 21:50 ` James Simmons
2001-05-15 18:04 ` Linus Torvalds
2001-05-15 18:58 ` Johannes Erdfelt
2001-05-15 19:17 ` Linus Torvalds
2001-05-15 19:23 ` H. Peter Anvin
2001-05-15 19:43 ` Johannes Erdfelt
2001-05-15 21:58 ` Chip Salzenberg
2001-05-16 8:51 ` Helge Hafting
2001-05-17 10:20 ` Pavel Machek
2001-05-18 17:32 ` Johannes Erdfelt
2001-05-19 10:21 ` Pavel Machek
2001-05-17 20:40 ` Kai Henningsen
2001-05-17 22:46 ` Johannes Erdfelt
2001-05-19 8:18 ` Kai Henningsen
2001-05-15 20:03 ` James Simmons
2001-05-15 20:06 ` H. Peter Anvin
2001-05-15 20:28 ` James Simmons
2001-05-15 21:20 ` Nicolas Pitre
2001-05-15 21:28 ` James Simmons
2001-05-15 21:31 ` H. Peter Anvin
2001-05-16 7:11 ` Kai Henningsen
2001-05-16 7:43 ` Alexander Viro
2001-05-16 9:45 ` Malcolm Beattie
2001-05-15 21:43 ` Johannes Erdfelt
2001-05-15 21:49 ` James Simmons
2001-05-16 7:05 ` Kai Henningsen
2001-05-15 22:07 ` Alan Cox
2001-05-16 0:59 ` Daniel Phillips
2001-05-16 1:34 ` Nicolas Pitre
2001-05-16 1:51 ` Jonathan Lundell
2001-05-16 7:17 ` Kai Henningsen
2001-05-16 11:34 ` Erik Mouw
2001-05-17 17:07 ` Eric W. Biederman
2001-05-17 19:30 ` Jeff Randall
2001-05-15 20:14 ` Alexander Viro
2001-05-15 20:30 ` H. Peter Anvin
2001-05-15 20:41 ` Alexander Viro
2001-05-15 20:51 ` Linus Torvalds
2001-05-16 1:01 ` Daniel Phillips
2001-05-16 1:04 ` H. Peter Anvin
2001-05-15 20:37 ` Linus Torvalds
2001-05-15 20:56 ` Jeff Garzik
2001-05-15 21:22 ` James Simmons
2001-05-17 10:42 ` Pavel Machek
2001-05-18 18:32 ` James Simmons
2001-05-19 10:23 ` no ioctls for serial ports? [was Re: LANANA: To Pending Device Number Registrants] Pavel Machek
2001-05-19 19:00 ` Linus Torvalds
2001-05-19 19:17 ` Pavel Machek
2001-05-19 19:35 ` Linus Torvalds
2001-05-19 19:43 ` Pavel Machek
2001-05-19 20:31 ` Tim Jansen
2001-05-19 23:57 ` Alexander Viro
2001-05-20 7:18 ` no ioctls for serial ports? [was Re: LANANA: To Pending DeviceNumber Registrants] Abramo Bagnara
2001-05-20 7:41 ` Alexander Viro
2001-05-20 8:30 ` no ioctls for serial ports? [was Re: LANANA: To Pending DeviceNumberRegistrants] Abramo Bagnara
2001-05-20 10:09 ` Alexander Viro
2001-05-20 9:53 ` no ioctls for serial ports? [was Re: LANANA: To Pending Device Num Kai Henningsen
2001-05-20 13:40 ` Alexander Viro
2001-05-20 14:27 ` Tim Jansen
2001-05-20 14:30 ` no ioctls for serial ports? [was Re: LANANA: To Pending DeviceNum Abramo Bagnara
2001-05-20 14:45 ` Alexander Viro
2001-05-20 15:00 ` Abramo Bagnara
2001-05-20 15:18 ` Alexander Viro
2001-05-20 15:40 ` Abramo Bagnara
2001-05-20 16:01 ` Alexander Viro
2001-05-20 15:26 ` Jakob Østergaard
2001-05-20 15:42 ` Alexander Viro
2001-05-21 17:45 ` Oliver Xymoron
2001-05-21 18:14 ` Alexander Viro
2001-05-21 18:37 ` Oliver Xymoron
2001-05-21 18:49 ` Alexander Viro
2001-05-21 19:08 ` Oliver Xymoron
2001-05-22 5:56 ` no ioctls for serial ports? [was Re: LANANA: To Pending Device Num Pavel Machek
2001-05-20 0:01 ` no ioctls for serial ports? [was Re: LANANA: To Pending Device Number Registrants] Alexander Viro
2001-05-20 11:17 ` handling network using filesystem [was Re: no ioctls for serial ports?] Pavel Machek
2001-05-19 20:11 ` no ioctls for serial ports? [was Re: LANANA: To Pending DeviceNumber Registrants] Abramo Bagnara
2001-05-17 20:33 ` LANANA: To Pending Device Number Registrants Kai Henningsen
2001-05-15 20:57 ` James Simmons
2001-05-15 20:17 ` H. Peter Anvin
2001-05-15 21:59 ` Chip Salzenberg
2001-05-15 22:51 ` James Simmons
2001-05-15 21:22 ` Jan Harkes
2001-05-15 21:39 ` Martin Dalecki
2001-05-15 18:02 ` Ingo Oeser
2001-05-15 19:31 ` Richard Gooch
2001-05-15 19:37 ` H. Peter Anvin
2001-05-15 20:10 ` Alan Cox
2001-05-15 21:41 ` Richard Gooch
2001-05-15 21:47 ` Alexander Viro
2001-05-15 22:24 ` Richard Gooch
2001-05-15 22:27 ` H. Peter Anvin
2001-05-15 22:38 ` Alexander Viro
2001-05-15 22:14 ` Alan Cox
2001-05-15 22:28 ` Richard Gooch
2001-05-15 22:32 ` H. Peter Anvin
2001-05-15 22:33 ` Alan Cox
2001-05-16 7:21 ` Geert Uytterhoeven
2001-05-16 18:22 ` Richard Gooch
2001-05-16 19:36 ` H. Peter Anvin
2001-05-16 20:01 ` Richard Gooch
2001-05-16 20:05 ` H. Peter Anvin
2001-05-16 20:54 ` Richard Gooch
2001-05-16 21:36 ` H. Peter Anvin
2001-05-16 22:11 ` Ingo Oeser
2001-05-16 22:13 ` H. Peter Anvin
2001-05-16 22:21 ` Jens Axboe
2001-05-16 23:03 ` Richard Gooch
2001-05-16 23:25 ` H. Peter Anvin
2001-05-16 23:37 ` Richard Gooch
2001-05-16 23:38 ` H. Peter Anvin
2001-05-16 23:41 ` Richard Gooch
2001-05-16 23:43 ` H. Peter Anvin
2001-05-16 23:49 ` Richard Gooch
2001-05-16 23:55 ` H. Peter Anvin
2001-05-17 21:12 ` Kai Henningsen
2001-05-17 21:06 ` Kai Henningsen
2001-05-16 20:18 ` Linus Torvalds
2001-05-16 20:44 ` Richard Gooch
2001-05-16 23:51 ` Alan Cox
2001-05-16 23:58 ` Richard Gooch
2001-05-17 0:12 ` H. Peter Anvin
2001-05-17 0:24 ` Alan Cox
2001-05-17 1:35 ` Jeff Garzik
2001-05-17 9:33 ` Guest section DW
2001-05-15 20:58 ` Alan Cox
2001-05-15 21:42 ` Chip Salzenberg
2001-05-15 21:46 ` Alexander Viro
2001-05-15 21:57 ` H. Peter Anvin
2001-05-15 22:07 ` Chip Salzenberg
2001-05-15 22:11 ` H. Peter Anvin
2001-05-15 22:18 ` Alan Cox
2001-05-15 21:40 ` Chip Salzenberg
2001-05-15 22:12 ` Alan Cox
2001-05-15 22:19 ` H. Peter Anvin
2001-05-15 22:28 ` Alan Cox
2001-05-15 22:34 ` H. Peter Anvin
2001-05-15 23:39 ` Chip Salzenberg
2001-05-16 20:37 ` Alan Cox
2001-05-15 22:49 ` James Simmons
2001-05-15 23:22 ` Kenneth Johansson
2001-05-15 9:28 ` Alan Cox
2001-05-15 15:15 ` Linus Torvalds
2001-05-15 15:19 ` Jeff Garzik
2001-05-15 15:45 ` Linus Torvalds
2001-05-15 17:27 ` James Simmons
2001-05-15 17:43 ` Linus Torvalds
2001-05-15 18:04 ` Jeff Garzik
2001-05-15 18:15 ` Linus Torvalds
2001-05-15 19:33 ` Kai Henningsen
2001-05-15 19:36 ` Jonathan Lundell
2001-05-15 20:18 ` Linus Torvalds
2001-05-15 20:26 ` Dan Hollis
2001-05-15 22:14 ` Miles Lane
2001-05-15 21:29 ` Alex Bligh - linux-kernel
2001-05-15 21:36 ` Linus Torvalds
2001-05-15 22:03 ` Jeff Mahoney
2001-05-15 22:42 ` Andreas Dilger
2001-05-15 21:51 ` Mark Frazer
2001-05-15 22:35 ` Bob Glamm
2001-05-16 0:56 ` Jonathan Lundell
2001-05-16 2:31 ` Andrew Morton
2001-05-16 6:56 ` Jonathan Lundell
2001-05-16 8:02 ` Vojtech Pavlik
2001-05-16 14:37 ` Jonathan Lundell
2001-05-16 14:57 ` Vojtech Pavlik
2001-05-16 15:24 ` Jonathan Lundell
2001-05-16 12:20 ` Bogdan Costescu
2001-05-16 7:24 ` Geert Uytterhoeven
2001-05-16 23:26 ` Alan Cox
2001-05-16 23:31 ` H. Peter Anvin
2001-05-16 23:53 ` Linus Torvalds
2001-05-17 0:21 ` Alan Cox
2001-05-17 7:57 ` Geert Uytterhoeven
2001-05-17 16:26 ` James Simmons
2001-05-17 6:43 ` Thomas Sailer
2001-05-17 16:58 ` Tim Jansen
2001-05-17 17:18 ` James Simmons
2001-05-17 17:29 ` Geert Uytterhoeven
2001-05-17 17:41 ` Tim Jansen
2001-05-17 22:03 ` Oliver Neukum
2001-05-16 23:52 ` Linus Torvalds
2001-05-17 1:26 ` Joel Becker
2001-05-16 16:04 ` Michael Meissner
2001-05-16 21:36 ` Andreas Dilger
2001-05-17 21:23 ` Kai Henningsen
2001-05-18 2:18 ` Jonathan Lundell
2001-05-19 8:42 ` Kai Henningsen
2001-05-19 17:36 ` Jonathan Lundell
2001-05-20 9:37 ` Eric W. Biederman
2001-05-20 15:54 ` Jonathan Lundell
2001-05-20 14:16 ` Chris Wedgwood
2001-05-20 15:57 ` Jonathan Lundell
2001-05-19 17:45 ` Jonathan Lundell
2001-05-16 7:25 ` Geert Uytterhoeven
2001-05-15 18:19 ` James Simmons
2001-05-15 20:23 ` Alan Cox
2001-05-15 20:28 ` H. Peter Anvin
2001-05-15 21:52 ` Andreas Dilger
2001-05-15 20:02 ` Dan Hollis
2001-05-15 11:44 ` Neil Brown
2001-05-15 15:34 ` Linus Torvalds
2001-05-16 1:00 ` Daniel Phillips
2001-05-16 12:58 ` Jens Axboe
2001-05-16 3:25 ` Neil Brown
2001-05-15 15:51 ` John Fremlin
2001-05-14 21:09 ` Andi Kleen
2001-05-14 23:34 ` Richard Gooch
2001-05-14 21:11 ` Rik van Riel
2001-05-14 21:23 ` Alan Cox
2001-05-15 0:33 ` Rik van Riel
2001-05-16 9:04 ` Ingo Oeser
2001-05-14 21:16 ` Alan Cox
2001-05-14 22:05 ` Alexander Viro
2001-05-14 22:30 ` Alan Cox
2001-05-14 22:48 ` Alexander Viro
2001-05-14 22:46 ` Alan Cox
2001-05-14 22:53 ` Alexander Viro
2001-05-14 22:54 ` H. Peter Anvin
2001-05-14 23:00 ` Alexander Viro
2001-05-14 22:58 ` Alan Cox
2001-05-14 23:29 ` Alexander Viro
2001-05-14 23:39 ` Richard Gooch
2001-05-15 4:20 ` God
2001-05-15 7:48 ` 2.4 " bert hubert
2001-05-15 8:54 ` Alan Cox
2001-05-15 9:09 ` bert hubert
2001-05-14 23:18 ` LANANA: " Arjan van de Ven
2001-05-14 23:20 ` Alan Cox
2001-05-15 18:57 ` Kai Henningsen
2001-05-15 5:56 ` Oliver Neukum
2001-05-15 5:59 ` H. Peter Anvin
2001-05-14 22:55 ` Alan Cox
2001-05-14 23:11 ` Dan Hollis
2001-05-14 23:19 ` Alan Cox
2001-05-14 23:23 ` Alexander Viro
2001-05-15 1:10 ` Keith Owens
2001-05-15 4:12 ` LANANA: Getting out of hand? God
2001-05-15 4:30 ` Linus Torvalds
2001-05-15 5:17 ` Linus Torvalds
2001-05-15 8:24 ` Geert Uytterhoeven
2001-05-15 8:48 ` Alan Cox
2001-05-15 21:16 ` Martin Dalecki
2001-05-14 23:01 ` Interrupted sound with 2.4.4-ac6 Hermann Himmelbauer
2001-05-14 21:18 ` LANANA: To Pending Device Number Registrants Alan Cox
2001-05-14 23:32 ` Richard Gooch
2001-05-14 20:09 ` Richard Gooch
2001-05-14 20:14 ` Jeff Garzik
2001-05-15 17:37 ` Pavel Machek
2001-05-17 11:32 ` Alan Cox
2001-05-16 15:58 ` Kurt Garloff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=27452.1033748255@warthog.cambridge.redhat.com \
--to=dhowells@cambridge.redhat.com \
--cc=jaharkes@cs.cmu.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=trond.myklebust@fys.uio.no \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox