Virtual reassembly buffer.  
More...
Virtual reassembly buffer. 
|  | 
| file | vrb.h | 
|  | Virtual reassembly buffer definitions. 
 | 
|  | 
|  | 
| gnrc_sixlowpan_frag_vrb_t * | gnrc_sixlowpan_frag_vrb_add (const gnrc_sixlowpan_frag_rb_base_t *base, gnrc_netif_t *out_netif, const uint8_t *out_dst, size_t out_dst_len) | 
|  | Adds a new reassembly buffer entry. 
 | 
|  | 
| gnrc_sixlowpan_frag_vrb_t * | gnrc_sixlowpan_frag_vrb_from_route (const gnrc_sixlowpan_frag_rb_base_t *base, gnrc_netif_t *netif, const gnrc_pktsnip_t *hdr) | 
|  | Generate reassembly buffer from a header's forwarding information. 
 | 
|  | 
| void | gnrc_sixlowpan_frag_vrb_gc (void) | 
|  | Checks timeouts and removes entries if necessary. 
 | 
|  | 
| gnrc_sixlowpan_frag_vrb_t * | gnrc_sixlowpan_frag_vrb_get (const uint8_t *src, size_t src_len, unsigned src_tag) | 
|  | Gets a VRB entry. 
 | 
|  | 
| gnrc_sixlowpan_frag_vrb_t * | gnrc_sixlowpan_frag_vrb_reverse (const gnrc_netif_t *netif, const uint8_t *src, size_t src_len, unsigned tag) | 
|  | Reverse VRB lookup. 
 | 
|  | 
| static void | gnrc_sixlowpan_frag_vrb_rm (gnrc_sixlowpan_frag_vrb_t *vrb) | 
|  | Removes an entry from the VRB. 
 | 
|  | 
| static bool | gnrc_sixlowpan_frag_vrb_entry_empty (gnrc_sixlowpan_frag_vrb_t *vrb) | 
|  | Determines if a VRB entry is empty. 
 | 
|  | 
| void | gnrc_sixlowpan_frag_vrb_reset (void) | 
|  | Resets the VRB to a clean state. 
 | 
|  | 
◆ gnrc_sixlowpan_frag_vrb_add()
Adds a new reassembly buffer entry. 
- Parameters
- 
  
    | [in] | base | Base data of the datagram. Must not be NULL. |  | [in] | out_netif | Network interface that is out-going to out_dst. |  | [in] | out_dst | Link-layer destination address to which to forward fragments identified by base. Must not beNULL. |  | [in] | out_dst_len | Length of out_dst. Must be greater than 0. |  
 
- Precondition
- base != NULL
- 
out_dst != NULL
- 
out_dst_len > 0
- Returns
- A new VRB entry. 
- 
NULL, if VRB is full. 
 
 
◆ gnrc_sixlowpan_frag_vrb_entry_empty()
Determines if a VRB entry is empty. 
- Parameters
- 
  
  
- Returns
- true, if vrbentry is empty.
- 
false, if vrbentry is not empty.
Definition at line 165 of file vrb.h.
 
 
◆ gnrc_sixlowpan_frag_vrb_from_route()
Generate reassembly buffer from a header's forwarding information. 
- Parameters
- 
  
    | [in] | base | Base data of the datagram. Must not be NULL. |  | [in] | netif | Restrict route to this interface. May be NULLfor any interface. |  | [in] | hdr | Header from which to take the forwarding information from (e.g. IPv6 header implies hdr->type == GNRC_NETTYPE_IPV6). |  
 
- Precondition
- base != NULL
- 
(hdr != NULL) && (hdr->data != NULL) && (hdr->size > 0)
- Returns
- The VRB entry pointing to the next hop based on the forwarding information provided in hdrand present in the respective forwarding information base forhdr->type.
- 
NULL, if VRB is full or if there is no route to destination in hdr.
 
 
◆ gnrc_sixlowpan_frag_vrb_get()
Gets a VRB entry. 
- Parameters
- 
  
    | [in] | src | Link-layer source address of the original fragment. |  | [in] | src_len | Length of src. |  | [in] | src_tag | Tag of the original fragment. |  
 
- Returns
- The VRB entry identified by the given parameters. 
- 
NULL, if there is no entry in the VRB that could be identified by the given parameters. 
 
 
◆ gnrc_sixlowpan_frag_vrb_reset()
      
        
          | void gnrc_sixlowpan_frag_vrb_reset | ( | void |  | ) |  | 
      
 
Resets the VRB to a clean state. 
- Note
- Only available when TEST_SUITES is defined 
 
 
◆ gnrc_sixlowpan_frag_vrb_reverse()
Reverse VRB lookup. 
- Parameters
- 
  
    | [in] | netif | Network interface the reverse label-switched packet came over |  | [in] | src | Link-layer source address of reverse label-switched packet. |  | [in] | src_len | Length of src. |  | [in] | tag | Tag of the reverse label-switched packet. |  
 
- Returns
- The VRB entry with vrb->super.dst == srcandvrb->out_tag == tag.
- 
NULL, if there is no entry in the VRB that has these values. 
 
 
◆ gnrc_sixlowpan_frag_vrb_rm()
Removes an entry from the VRB. 
- Parameters
- 
  
  
Definition at line 149 of file vrb.h.