Code change:
6.8. <del> A General Termination of Future Operations (GTFO) frame (type=0x7) informs the remote peer to stop creating streams on this connection. GTFO can be sent by either client or server.  Once sent, the sender will ignore frames sent on new streams for the remainder of the connection.  Receivers of a GTFO frame MUST NOT open additional streams on the connection, although a new connection can be established for new streams.  The purpose of this frame is to allow an endpoint to gracefully stop accepting new streams (perhaps for a reboot or maintenance), while still finishing processing of previously established streams. </del> <ins> The GOAWAY frame (type=0x7) informs the remote peer to stop creating streams on this connection.  It can be sent from the client or the server.  Once sent, the sender will ignore frames sent on new streams for the remainder of the connection.  Receivers of a GOAWAY frame MUST NOT open additional streams on the connection, although a new connection can be established for new streams.  The purpose of this frame is to allow an endpoint to gracefully stop accepting new streams (perhaps for a reboot or maintenance), while still finishing processing of previously established streams. </ins> There is an inherent race condition between an endpoint starting new <del> streams and the remote sending a GTFO frame.  To deal with this case, the GTFO frame contains the stream identifier of the last stream </del> <ins> streams and the remote sending a GOAWAY frame.  To deal with this case, the GOAWAY contains the stream identifier of the last stream </ins> which was processed on the sending endpoint in this connection.  If <del> the receiver of the GTFO frame used streams that are newer than the </del> <ins> the receiver of the GOAWAY used streams that are newer than the </ins> indicated stream identifier, they were not processed by the sender and the receiver may treat the streams as though they had never been created at all (hence the receiver may want to re-create the streams later on a new connection). <del> Endpoints SHOULD always send a GTFO frame before closing a connection so that the remote can know whether a stream has been partially processed or not.  For example, if an HTTP client sends a POST at the same time that a server closes a connection, the client cannot know if the server started to process that POST request if the server does not send a GTFO frame to indicate where it stopped working.  An endpoint might choose to close a connection without sending GTFO for misbehaving peers. </del> <ins> Endpoints SHOULD always send a GOAWAY frame before closing a connection so that the remote can know whether a stream has been partially processed or not.  For example, if an HTTP client sends a POST at the same time that a server closes a connection, the client cannot know if the server started to process that POST request if the server does not send a GOAWAY frame to indicate where it stopped working.  An endpoint might choose to close a connection without sending GOAWAY for misbehaving peers. </ins> <del> After sending a GTFO frame, the sender can discard frames for new </del> <ins> After sending a GOAWAY frame, the sender can discard frames for new </ins> streams.  However, any frames that alter connection state cannot be completely ignored.  For instance,

Related discussion:
text: It is more fitting than GOAWAY, but once you have read GTFO your mind is sort of made up, since you spelled GTFO in full in your head, as soon as reading the acronym. My suggestion on this one is: Simply get rid of "General" / "G" and add "of" to the acronym! TOFO still has a nice ring to it, is quick and easy to pronounce and "Termination Of Future Operations" would be sufficiant descriptive. regards (yes, that's my real lastname :P ) On Jan 29, 2014 8:31 AM, "Eugene Ciurana" EMAIL wrote: