| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
Public Attributes | List of all members
_http3_header_field Struct Reference

## Public Attributes
struct { |
unsigned len |
unsigned offset |
} | encoded |
struct { |
const char * bytes |
unsigned len |
} | decoded |

## Detailed Description

Header caching scheme

The HTTP/3 headers are sent on the wire in QPACK-encoded form. To dissect the headers, Wireshark needs to keep the decoded header names and values in memory.

To optimize dissection time, and to conserve memory the HTTP/3 dissector keeps all unique combinations of header-name, header-value in a cache.

The cached values are stored in the "pstr" format: name length (uint32_t) name value length (uint32_t) value HTTP3 header field.

The header field contains two sections:

- encoded points to the location of the encoded field in the original packet TVB.
- decoded points to the formatted header string, which is allocated in a cache map, to conserve memory. The decoded fields are used to create an auxiliary TVB which will be used for dissection of decoded header values.

## Member Data Documentation

## ◆ bytes

const char* _http3_header_field::bytes

Decoded header field bytes.

## ◆ len

unsigned _http3_header_field::len

Length of the encoded header field.

Length of the decoded header field.

## ◆ offset

unsigned _http3_header_field::offset

Offset of the encoded header field in the decrypted TVB.

The documentation for this struct was generated from the following file:

- /builds/wireshark/wireshark/epan/dissectors/packet-http3.c