Zephyr API
4.4.99
A Scalable Open Source RTOS
Toggle main menu visibility
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
11
12
#ifndef ZEPHYR_INCLUDE_NET_HTTP_FRAME_H_
13
#define ZEPHYR_INCLUDE_NET_HTTP_FRAME_H_
14
15
#include <
stdint.h
>
16
17
#ifdef __cplusplus
18
extern
"C"
{
19
#endif
20
22
enum
http2_frame_type
{
24
HTTP2_DATA_FRAME
= 0x00,
26
HTTP2_HEADERS_FRAME
= 0x01,
28
HTTP2_PRIORITY_FRAME
= 0x02,
30
HTTP2_RST_STREAM_FRAME
= 0x03,
32
HTTP2_SETTINGS_FRAME
= 0x04,
34
HTTP2_PUSH_PROMISE_FRAME
= 0x05,
36
HTTP2_PING_FRAME
= 0x06,
38
HTTP2_GOAWAY_FRAME
= 0x07,
40
HTTP2_WINDOW_UPDATE_FRAME
= 0x08,
42
HTTP2_CONTINUATION_FRAME
= 0x09
43
};
44
46
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
65
67
struct
http2_settings_field
{
68
uint16_t
id
;
69
uint32_t
value
;
70
} __packed;
71
73
enum
http2_settings
{
75
HTTP2_SETTINGS_HEADER_TABLE_SIZE
= 1,
77
HTTP2_SETTINGS_ENABLE_PUSH
= 2,
79
HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
= 3,
81
HTTP2_SETTINGS_INITIAL_WINDOW_SIZE
= 4,
83
HTTP2_SETTINGS_MAX_FRAME_SIZE
= 5,
85
HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
= 6,
86
};
87
88
#ifdef __cplusplus
89
}
90
#endif
91
92
#endif
/* ZEPHYR_INCLUDE_NET_HTTP_FRAME_H_ */
http2_frame_type
http2_frame_type
HTTP2 frame types.
Definition
frame.h:22
HTTP2_DATA_FRAME
@ HTTP2_DATA_FRAME
Data frame.
Definition
frame.h:24
HTTP2_PING_FRAME
@ HTTP2_PING_FRAME
Ping frame.
Definition
frame.h:36
HTTP2_CONTINUATION_FRAME
@ HTTP2_CONTINUATION_FRAME
Continuation frame.
Definition
frame.h:42
HTTP2_WINDOW_UPDATE_FRAME
@ HTTP2_WINDOW_UPDATE_FRAME
Window update frame.
Definition
frame.h:40
HTTP2_SETTINGS_FRAME
@ HTTP2_SETTINGS_FRAME
Settings frame.
Definition
frame.h:32
HTTP2_GOAWAY_FRAME
@ HTTP2_GOAWAY_FRAME
Goaway frame.
Definition
frame.h:38
HTTP2_PRIORITY_FRAME
@ HTTP2_PRIORITY_FRAME
Priority frame.
Definition
frame.h:28
HTTP2_HEADERS_FRAME
@ HTTP2_HEADERS_FRAME
Headers frame.
Definition
frame.h:26
HTTP2_PUSH_PROMISE_FRAME
@ HTTP2_PUSH_PROMISE_FRAME
Push promise frame.
Definition
frame.h:34
HTTP2_RST_STREAM_FRAME
@ HTTP2_RST_STREAM_FRAME
Reset stream frame.
Definition
frame.h:30
http2_settings
http2_settings
HTTP2 settings.
Definition
frame.h:73
HTTP2_SETTINGS_HEADER_TABLE_SIZE
@ HTTP2_SETTINGS_HEADER_TABLE_SIZE
Header table size.
Definition
frame.h:75
HTTP2_SETTINGS_INITIAL_WINDOW_SIZE
@ HTTP2_SETTINGS_INITIAL_WINDOW_SIZE
Initial window size.
Definition
frame.h:81
HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
@ HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
Max header list size.
Definition
frame.h:85
HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
@ HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
Maximum number of concurrent streams.
Definition
frame.h:79
HTTP2_SETTINGS_ENABLE_PUSH
@ HTTP2_SETTINGS_ENABLE_PUSH
Enable push.
Definition
frame.h:77
HTTP2_SETTINGS_MAX_FRAME_SIZE
@ HTTP2_SETTINGS_MAX_FRAME_SIZE
Max frame size.
Definition
frame.h:83
stdint.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
uint16_t
__UINT16_TYPE__ uint16_t
Definition
stdint.h:89
http2_settings_field
HTTP2 settings field.
Definition
frame.h:67
http2_settings_field::value
uint32_t value
Field value.
Definition
frame.h:69
http2_settings_field::id
uint16_t id
Field id.
Definition
frame.h:68
zephyr
net
http
frame.h
Generated on
for Zephyr API by
1.17.0