LCOV - code coverage report
Current view: top level - zephyr/net - udp.h Coverage Total Hit
Test: new.info Lines: 100.0 % 1 1
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            1 : /** @file
       2              :  @brief UDP utility functions
       3              :  */
       4              : 
       5              : /*
       6              :  * Copyright (c) 2017 Intel Corporation
       7              :  *
       8              :  * SPDX-License-Identifier: Apache-2.0
       9              :  */
      10              : 
      11              : #ifndef ZEPHYR_INCLUDE_NET_UDP_H_
      12              : #define ZEPHYR_INCLUDE_NET_UDP_H_
      13              : 
      14              : #include <zephyr/types.h>
      15              : 
      16              : #include <zephyr/net/net_core.h>
      17              : #include <zephyr/net/net_ip.h>
      18              : #include <zephyr/net/net_pkt.h>
      19              : 
      20              : #ifdef __cplusplus
      21              : extern "C" {
      22              : #endif
      23              : 
      24              : /* These APIs are mostly meant for Zephyr internal use so do not generate
      25              :  * documentation for them.
      26              :  */
      27              : /** @cond INTERNAL_HIDDEN */
      28              : 
      29              : /**
      30              :  * @brief UDP library
      31              :  * @defgroup udp UDP Library
      32              :  * @ingroup networking
      33              :  * @{
      34              :  */
      35              : 
      36              : /**
      37              :  * @brief Get UDP packet header data from net_pkt.
      38              :  *
      39              :  * @details The values in the returned header are in network byte order.
      40              :  * Note that you must access the UDP header values by the returned pointer,
      41              :  * the hdr parameter is just a placeholder for the header data and it might
      42              :  * not contain anything if the header fits properly in the first fragment of
      43              :  * the network packet.
      44              :  *
      45              :  * @param pkt Network packet
      46              :  * @param hdr Where to place the header if it does not fit in first fragment
      47              :  * of the network packet. This might not be populated if UDP header fits in
      48              :  * net_buf fragment.
      49              :  *
      50              :  * @return Return pointer to header or NULL if something went wrong.
      51              :  *         Always use the returned pointer to access the UDP header.
      52              :  */
      53              : #if defined(CONFIG_NET_UDP)
      54              : struct net_udp_hdr *net_udp_get_hdr(struct net_pkt *pkt,
      55              :                                     struct net_udp_hdr *hdr);
      56              : #else
      57              : static inline struct net_udp_hdr *net_udp_get_hdr(struct net_pkt *pkt,
      58              :                                                   struct net_udp_hdr *hdr)
      59              : {
      60              :         return NULL;
      61              : }
      62              : #endif /* CONFIG_NET_UDP */
      63              : 
      64              : /**
      65              :  * @brief Set UDP packet header data in net_pkt.
      66              :  *
      67              :  * @details The values in the header must be in network byte order.
      68              :  * This function is normally called after a call to net_udp_get_hdr().
      69              :  * The hdr parameter value should be the same that is returned by function
      70              :  * net_udp_get_hdr() call. Note that if the UDP header fits in first net_pkt
      71              :  * fragment, then this function will not do anything as your hdr parameter
      72              :  * was pointing directly to net_pkt.
      73              :  *
      74              :  * @param pkt Network packet
      75              :  * @param hdr Header data pointer that was returned by net_udp_get_hdr().
      76              :  *
      77              :  * @return Return pointer to header or NULL if something went wrong.
      78              :  */
      79              : #if defined(CONFIG_NET_UDP)
      80              : struct net_udp_hdr *net_udp_set_hdr(struct net_pkt *pkt,
      81              :                                     struct net_udp_hdr *hdr);
      82              : #else
      83              : static inline struct net_udp_hdr *net_udp_set_hdr(struct net_pkt *pkt,
      84              :                                                   struct net_udp_hdr *hdr)
      85              : {
      86              :         return NULL;
      87              : }
      88              : #endif /* CONFIG_NET_UDP */
      89              : 
      90              : /**
      91              :  * @}
      92              :  */
      93              : 
      94              : /** @endcond */
      95              : 
      96              : #ifdef __cplusplus
      97              : }
      98              : #endif
      99              : 
     100              : #endif /* ZEPHYR_INCLUDE_NET_UDP_H_ */
        

Generated by: LCOV version 2.0-1