@struct The frame header.
Invalid argument passed.
Out of buffer space.
The specified protocol version is not supported.
Used as a return value from :type:
General protocol error
The frame is invalid.
The peer performed a shutdown on the connection.
Used as a return value from
Stream ID has reached the maximum value. Therefore no stream ID is available.
The stream is already closed; or the stream ID is invalid.
RST_STREAM has been added to the outbound queue. The stream is in closing state.
The transmission is not allowed for this stream (e.g., a frame with END_STREAM flag set has already sent).
The stream ID is invalid.
The state of the stream is not valid (e.g., DATA cannot be sent to the stream if response HEADERS has not been sent).
Another DATA frame has already been deferred.
Starting new stream is not allowed (e.g., GOAWAY has been sent and/or received).
GOAWAY has already been sent.
The received frame contains the invalid header block (e.g., There are duplicate header names; or the header names are not encoded in US-ASCII character set and not lower cased; or the header name is zero-length string; or the header value contains multiple in-sequence NUL bytes).
Indicates that the context is not suitable to perform the requested operation.
The user callback function failed due to the temporal error.
The length of the frame is invalid, either too large or too small.
Header block inflate/deflate error.
Flow control error
Insufficient buffer size given to function.
Callback was paused by the application
There are too many in-flight SETTING frame and no more transmission of SETTINGS is allowed.
The server push is disabled.
DATA or HEADERS frame for a given stream has been already submitted and has not been fully processed yet. Application should wait for the transmission of the previously submitted frame before submitting another.
The current session is closing due to a connection error or
Invalid HTTP header field was received and stream is going to be closed.
Violation in HTTP messaging rule.
Stream was refused.
Unexpected internal error, but recovered.
Indicates that a processing was canceled.
When a local endpoint expects to receive SETTINGS frame, it receives an other type of frame.
The errors < :enum:
Out of memory. This is a fatal error.
The user callback function failed. This is a fatal error.
Invalid client magic (see :macro:
Possible flooding by peer was detected in this HTTP/2 session. Flooding is measured by how many PING and SETTINGS frames with ACK flag set are queued for transmission. These frames are response for the peer initiated frames, and peer can cause memory exhaustion on server side to send these frames forever and does not read network.
No flag set.
Indicates that this name/value pair must not be indexed ("Literal Header Field never Indexed" representation must be used in HPACK encoding). Other implementation calls this bit as "sensitive".
This flag is set solely by application. If this flag is set, the library does not make a copy of header field name. This could improve performance.
This flag is set solely by application. If this flag is set, the library does not make a copy of header field value. This could improve performance.
The DATA frame.
The HEADERS frame.
The PRIORITY frame.
The RST_STREAM frame.
The SETTINGS frame.
The PUSH_PROMISE frame.
The PING frame.
The GOAWAY frame.
The WINDOW_UPDATE frame.
The CONTINUATION frame. This frame type won't be passed to any callbacks because the library processes this frame type and its preceding HEADERS/PUSH_PROMISE as a single frame.
The ALTSVC frame, which is defined in
The ORIGIN frame, which is defined by
No flag set.
The END_STREAM flag.
The END_HEADERS flag.
The ACK flag.
The PADDED flag.
The PRIORITY flag.
No flag set.
Indicates EOF was sensed.
Indicates that END_STREAM flag must not be set even if
NGHTTP2_DATA_FLAG_EOF is set. Usually this flag is used to send
trailer fields with
Indicates that application will send complete DATA frame in
The HEADERS frame is opening new stream, which is analogous to SYN_STREAM in SPDY.
The HEADERS frame is the first response headers, which is analogous to SYN_REPLY in SPDY.
The HEADERS frame is the first headers sent against reserved stream.
The HEADERS frame which does not apply for the above categories, which is analogous to HEADERS in SPDY. If non-final response (e.g., status 1xx) is used, final response HEADERS frame will be categorized here.
No flag set.
Indicates all headers were inflated.
Indicates a header was emitted.
reserved (local) state.
reserved (remote) state.
half closed (local) state.
half closed (remote) state.