Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
frame.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023, Emna Rekik
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_NET_HTTP_SERVER_FRAME_H_
13#define ZEPHYR_INCLUDE_NET_HTTP_SERVER_FRAME_H_
14
15#include <stdint.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
43};
44
47#define HTTP2_FLAG_SETTINGS_ACK 0x01
48#define HTTP2_FLAG_END_HEADERS 0x04
49#define HTTP2_FLAG_END_STREAM 0x01
50#define HTTP2_FLAG_PADDED 0x08
51#define HTTP2_FLAG_PRIORITY 0x20
52
53#define HTTP2_FRAME_HEADER_SIZE 9
54#define HTTP2_FRAME_LENGTH_OFFSET 0
55#define HTTP2_FRAME_TYPE_OFFSET 3
56#define HTTP2_FRAME_FLAGS_OFFSET 4
57#define HTTP2_FRAME_STREAM_ID_OFFSET 5
58#define HTTP2_FRAME_STREAM_ID_MASK 0x7FFFFFFF
59
60#define HTTP2_HEADERS_FRAME_PRIORITY_LEN 5
61#define HTTP2_PRIORITY_FRAME_LEN 5
62#define HTTP2_RST_STREAM_FRAME_LEN 4
63
70} __packed;
71
86};
87
88#ifdef __cplusplus
89}
90#endif
91
92#endif
http2_frame_type
HTTP2 frame types.
Definition: frame.h:22
@ HTTP2_DATA_FRAME
Data frame.
Definition: frame.h:24
@ HTTP2_PING_FRAME
Ping frame.
Definition: frame.h:36
@ HTTP2_CONTINUATION_FRAME
Continuation frame.
Definition: frame.h:42
@ HTTP2_WINDOW_UPDATE_FRAME
Window update frame.
Definition: frame.h:40
@ HTTP2_SETTINGS_FRAME
Settings frame.
Definition: frame.h:32
@ HTTP2_GOAWAY_FRAME
Goaway frame.
Definition: frame.h:38
@ HTTP2_PRIORITY_FRAME
Priority frame.
Definition: frame.h:28
@ HTTP2_HEADERS_FRAME
Headers frame.
Definition: frame.h:26
@ HTTP2_PUSH_PROMISE_FRAME
Push promise frame.
Definition: frame.h:34
@ HTTP2_RST_STREAM_FRAME
Reset stream frame.
Definition: frame.h:30
http2_settings
HTTP2 settings.
Definition: frame.h:73
@ HTTP2_SETTINGS_HEADER_TABLE_SIZE
Header table size.
Definition: frame.h:75
@ HTTP2_SETTINGS_INITIAL_WINDOW_SIZE
Initial window size.
Definition: frame.h:81
@ HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
Max header list size.
Definition: frame.h:85
@ HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
Maximum number of concurrent streams.
Definition: frame.h:79
@ HTTP2_SETTINGS_ENABLE_PUSH
Enable push.
Definition: frame.h:77
@ HTTP2_SETTINGS_MAX_FRAME_SIZE
Max frame size.
Definition: frame.h:83
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
HTTP2 settings field.
Definition: frame.h:67
uint32_t value
Field value.
Definition: frame.h:69
uint16_t id
Field id.
Definition: frame.h:68