34 #ifndef GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_H
35 #define GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_H
37 #include <grpc/support/port_platform.h>
38 #include <grpc/support/slice.h>
44 GRPC_CHTTP2_STREAM_ERROR,
45 GRPC_CHTTP2_CONNECTION_ERROR
46 } grpc_chttp2_parse_error;
49 gpr_uint8 end_of_stream;
50 gpr_uint8 need_flush_reads;
51 gpr_uint8 metadata_boundary;
52 gpr_uint8 ack_settings;
53 gpr_uint8 send_ping_ack;
54 gpr_uint8 process_ping_reply;
57 gpr_int64 initial_window_update;
58 gpr_uint32 window_update;
59 gpr_uint32 goaway_last_stream_index;
60 gpr_uint32 goaway_error;
64 #define GRPC_CHTTP2_FRAME_DATA 0
65 #define GRPC_CHTTP2_FRAME_HEADER 1
66 #define GRPC_CHTTP2_FRAME_CONTINUATION 9
67 #define GRPC_CHTTP2_FRAME_RST_STREAM 3
68 #define GRPC_CHTTP2_FRAME_SETTINGS 4
69 #define GRPC_CHTTP2_FRAME_PING 6
70 #define GRPC_CHTTP2_FRAME_GOAWAY 7
71 #define GRPC_CHTTP2_FRAME_WINDOW_UPDATE 8
73 #define GRPC_CHTTP2_MAX_PAYLOAD_LENGTH ((1 << 14) - 1)
75 #define GRPC_CHTTP2_DATA_FLAG_END_STREAM 1
76 #define GRPC_CHTTP2_FLAG_ACK 1
77 #define GRPC_CHTTP2_DATA_FLAG_END_HEADERS 4
78 #define GRPC_CHTTP2_DATA_FLAG_PADDED 8
79 #define GRPC_CHTTP2_FLAG_HAS_PRIORITY 0x20