Network buffer descriptor for Netconn API. Based on Packet buffers (PBUF) internally to avoid copying data around.
Buffers must not be shared accross multiple threads, all functions except netbuf_new() and netbuf_delete() are not thread-safe. 
◆ netbuf_alloc()
      
        
          | void* netbuf_alloc | ( | struct netbuf * | buf, | 
        
          |  |  | u16_t | size | 
        
          |  | ) |  |  | 
      
 
Allocate memory for a packet buffer for a given netbuf.
- Parameters
- 
  
    | buf | the netbuf for which to allocate a packet buffer |  | size | the size of the packet buffer to allocate |  
 
- Returns
- pointer to the allocated memory NULL if no memory could be allocated 
 
 
◆ netbuf_chain()
      
        
          | void netbuf_chain | ( | struct netbuf * | head, | 
        
          |  |  | struct netbuf * | tail | 
        
          |  | ) |  |  | 
      
 
Chain one netbuf to another (
- See also
- pbuf_chain)
- Parameters
- 
  
    | head | the first netbuf |  | tail | netbuf to chain after head, freed by this function, may not be reference after returning |  
 
 
 
◆ netbuf_data()
      
        
          | err_t netbuf_data | ( | struct netbuf * | buf, | 
        
          |  |  | void ** | dataptr, | 
        
          |  |  | u16_t * | len | 
        
          |  | ) |  |  | 
      
 
Get the data pointer and length of the data inside a netbuf.
- Parameters
- 
  
    | buf | netbuf to get the data from |  | dataptr | pointer to a void pointer where to store the data pointer |  | len | pointer to an u16_t where the length of the data is stored |  
 
- Returns
- ERR_OK if the information was retrieved, ERR_BUF on error. 
 
 
◆ netbuf_delete()
      
        
          | void netbuf_delete | ( | struct netbuf * | buf | ) |  | 
      
 
 
◆ netbuf_first()
      
        
          | void netbuf_first | ( | struct netbuf * | buf | ) |  | 
      
 
Move the current data pointer of a packet buffer contained in a netbuf to the beginning of the packet. The packet buffer itself is not modified.
- Parameters
- 
  
  
 
 
◆ netbuf_free()
      
        
          | void netbuf_free | ( | struct netbuf * | buf | ) |  | 
      
 
Free the packet buffer included in a netbuf
- Parameters
- 
  
    | buf | pointer to the netbuf which contains the packet buffer to free |  
 
 
 
◆ netbuf_new()
      
        
          | struct netbuf* netbuf_new | ( | void |  | ) |  | 
      
 
Create (allocate) and initialize a new netbuf. The netbuf doesn't yet contain a packet buffer!
- Returns
- a pointer to a new netbuf NULL on lack of memory 
 
 
◆ netbuf_next()
      
        
          | s8_t netbuf_next | ( | struct netbuf * | buf | ) |  | 
      
 
Move the current data pointer of a packet buffer contained in a netbuf to the next part. The packet buffer itself is not modified.
- Parameters
- 
  
  
- Returns
- -1 if there is no next part 1 if moved to the next part but now there is no next part 0 if moved to the next part and there are still more parts 
 
 
◆ netbuf_ref()
      
        
          | err_t netbuf_ref | ( | struct netbuf * | buf, | 
        
          |  |  | const void * | dataptr, | 
        
          |  |  | u16_t | size | 
        
          |  | ) |  |  | 
      
 
Let a netbuf reference existing (non-volatile) data.
- Parameters
- 
  
    | buf | netbuf which should reference the data |  | dataptr | pointer to the data to reference |  | size | size of the data |  
 
- Returns
- ERR_OK if data is referenced ERR_MEM if data couldn't be referenced due to lack of memory