| Wireshark 4.7.3 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
Classes | Macros | Functions
in_cksum.h File Reference
`#include "ws_symbol_export.h"`

Go to the source code of this file.

## Classes
struct | vec_t
| Represents a contiguous buffer fragment used as input to checksum computation routines. More...

## Macros
#define | SET_CKSUM_VEC_PTR(vecelem, data, length)
| Initializes a vec_t element directly from a raw pointer and length.
#define | SET_CKSUM_VEC_TVB(vecelem, tvb, offset, length)
| Initializes a vec_t element from a tvbuff by obtaining a pointer to the specified region.

## Functions
WS_DLL_PUBLIC uint16_t | ip_checksum (const uint8_t *ptr, int len)
| Calculate the IP checksum for a given buffer.
WS_DLL_PUBLIC uint16_t | ip_checksum_tvb (tvbuff_t *tvb, int offset, int len)
| Calculate the IP checksum for a given TVB.
WS_DLL_PUBLIC int | in_cksum_ret_partial (const vec_t *vec, int veclen, uint16_t *partial)
| Calculates a partial checksum for a vector of data.
WS_DLL_PUBLIC int | in_cksum (const vec_t *vec, int veclen)
| Calculate the IP checksum for a given vector of data.
WS_DLL_PUBLIC uint16_t | in_cksum_shouldbe (uint16_t sum, uint16_t computed_sum)
| Calculate the expected checksum value based on the computed checksum and the checksum field value.

## Detailed Description

Declaration of Internet checksum routine.

Copyright (c) 1988, 1992, 1993 The Regents of the University of California. All rights reserved.

SPDX-License-Identifier: BSD-3-Clause

## Macro Definition Documentation

## ◆ SET_CKSUM_VEC_PTR

#define SET_CKSUM_VEC_PTR | ( |  | vecelem,
|  |  | data,
|  |  | length )

Value:
G_STMT_START { \
vecelem.ptr = (data); \
vecelem.len = (length); \
} G_STMT_END

Initializes a vec_t element directly from a raw pointer and length.

Parameters

  vecelem | The vec_t variable to initialize.
  data | Pointer to the raw data buffer.
  length | Length in bytes of the data buffer.

## ◆ SET_CKSUM_VEC_TVB

#define SET_CKSUM_VEC_TVB | ( |  | vecelem,
|  |  | tvb,
|  |  | offset,
|  |  | length )

Value:
G_STMT_START { \
vecelem.len = (length); \
vecelem.ptr = tvb_get_ptr((tvb), (offset), vecelem.len); \
} G_STMT_END
tvb_get_ptr
const uint8_t * tvb_get_ptr(tvbuff_t *tvb, const unsigned offset, const unsigned length)
Returns a raw pointer to tvbuff data. Use with extreme caution.
Definition tvbuff.c:1122

Initializes a vec_t element from a tvbuff by obtaining a pointer to the specified region.

Parameters

  vecelem | The vec_t variable to initialize.
  tvb | The tvbuff from which to obtain the data pointer.
  offset | Byte offset within the tvbuff at which the region starts.
  length | Length in bytes of the region to reference.

## Function Documentation

## ◆ in_cksum()

WS_DLL_PUBLIC int in_cksum | ( | const vec_t * | vec,
|  | int | veclen )

Calculate the IP checksum for a given vector of data.

This function computes the IP checksum for a given vector of data.

Parameters

  vec | Pointer to the vector containing the data to be checksummed.
  veclen | Number of elements in the vector.

Returns
  The calculated IP checksum.

## ◆ in_cksum_ret_partial()

WS_DLL_PUBLIC int in_cksum_ret_partial | ( | const vec_t * | vec,
|  | int | veclen,
|  | uint16_t * | partial )

Calculates a partial checksum for a vector of data.

This function computes a partial checksum for a given vector of data, storing the intermediate result in the provided partial pointer if it is not null.

Parameters

  vec | Pointer to the vector containing the data to be checksummed.
  veclen | Number of elements in the vector.
  partial | Pointer to store the partial checksum result, can be null.

Returns
  The final checksum value.

## ◆ in_cksum_shouldbe()

WS_DLL_PUBLIC uint16_t in_cksum_shouldbe | ( | uint16_t | sum,
|  | uint16_t | computed_sum )

Calculate the expected checksum value based on the computed checksum and the checksum field value.

This function computes the expected checksum value that should be present in the checksum field of a packet, given the computed checksum of the packet's data and the value of the checksum field itself.

Parameters

  sum | The value of the checksum field from the packet header.
  computed_sum | The computed checksum of the packet's data (excluding the checksum field).

Returns
  The expected checksum value that should be in the packet's header for it to be considered valid.

## ◆ ip_checksum()

WS_DLL_PUBLIC uint16_t ip_checksum | ( | const uint8_t * | ptr,
|  | int | len )

Calculate the IP checksum for a given buffer.

Parameters

  ptr | Pointer to the data buffer.
  len | Length of the data buffer.

Returns
  uint16_t The calculated IP checksum.

## ◆ ip_checksum_tvb()

WS_DLL_PUBLIC uint16_t ip_checksum_tvb | ( | tvbuff_t * | tvb,
|  | int | offset,
|  | int | len )

Calculate the IP checksum for a given TVB.

Parameters

  tvb | The TVB containing the data to be checksummed.
  offset | The starting offset within the TVB.
  len | The length of the data to be checksummed.

Returns
  The calculated IP checksum.