LCOV - code coverage report
Current view: top level - zephyr/net - udp.h Hit Total Coverage
Test: new.info Lines: 1 1 100.0 %
Date: 2024-12-22 00:14:23

          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 1.14