LCOV - code coverage report
Current view: top level - zephyr/net/http - frame.h Coverage Total Hit
Test: new.info Lines: 100.0 % 6 6
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2023, Emna Rekik
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief HTTP2 frame information.
      10              :  */
      11              : 
      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
      18              : extern "C" {
      19              : #endif
      20              : 
      21              : /** HTTP2 frame types */
      22            1 : enum http2_frame_type {
      23              :         /** Data frame */
      24              :         HTTP2_DATA_FRAME = 0x00,
      25              :         /** Headers frame */
      26              :         HTTP2_HEADERS_FRAME = 0x01,
      27              :         /** Priority frame */
      28              :         HTTP2_PRIORITY_FRAME = 0x02,
      29              :         /** Reset stream frame */
      30              :         HTTP2_RST_STREAM_FRAME = 0x03,
      31              :         /** Settings frame */
      32              :         HTTP2_SETTINGS_FRAME = 0x04,
      33              :         /** Push promise frame */
      34              :         HTTP2_PUSH_PROMISE_FRAME = 0x05,
      35              :         /** Ping frame */
      36              :         HTTP2_PING_FRAME = 0x06,
      37              :         /** Goaway frame */
      38              :         HTTP2_GOAWAY_FRAME = 0x07,
      39              :         /** Window update frame */
      40              :         HTTP2_WINDOW_UPDATE_FRAME = 0x08,
      41              :         /** Continuation frame */
      42              :         HTTP2_CONTINUATION_FRAME = 0x09
      43              : };
      44              : 
      45              : /** @cond INTERNAL_HIDDEN */
      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              : 
      64              : /** @endcond */
      65              : 
      66              : /** HTTP2 settings field */
      67            1 : struct http2_settings_field {
      68            1 :         uint16_t id;    /**< Field id */
      69            1 :         uint32_t value; /**< Field value */
      70              : } __packed;
      71              : 
      72              : /** @brief HTTP2 settings */
      73            1 : enum http2_settings {
      74              :         /** Header table size */
      75              :         HTTP2_SETTINGS_HEADER_TABLE_SIZE = 1,
      76              :         /** Enable push */
      77              :         HTTP2_SETTINGS_ENABLE_PUSH = 2,
      78              :         /** Maximum number of concurrent streams */
      79              :         HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS = 3,
      80              :         /** Initial window size */
      81              :         HTTP2_SETTINGS_INITIAL_WINDOW_SIZE = 4,
      82              :         /** Max frame size */
      83              :         HTTP2_SETTINGS_MAX_FRAME_SIZE = 5,
      84              :         /** Max header list size */
      85              :         HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE = 6,
      86              : };
      87              : 
      88              : #ifdef __cplusplus
      89              : }
      90              : #endif
      91              : 
      92              : #endif
        

Generated by: LCOV version 2.0-1