Functions to create ROHC feedback.  
More...
#include "feedback_create.h"
#include "crc.h"
#include "rohc_debug.h"
#include "rohc_bit_ops.h"
#include "sdvl.h"
#include <string.h>
#include <assert.h>
 | 
| static bool  | f_append_cid (struct d_feedback *const feedback, const uint16_t cid, const rohc_cid_type_t cid_type, size_t *const cid_len) | 
|   | Append the CID to the feedback packet.  More...
  | 
|   | 
| void  | f_feedback1 (const uint32_t sn_bits, struct d_feedback *const feedback) | 
|   | Build a FEEDBACK-1 packet.  More...
  | 
|   | 
| bool  | f_feedback2 (const rohc_profile_t profile_id, const enum rohc_feedback_ack_type ack_type, const rohc_mode_t mode, const uint32_t sn_bits, const size_t sn_bits_nr, struct d_feedback *const feedback) | 
|   | Build a FEEDBACK-2 packet.  More...
  | 
|   | 
| bool  | f_add_option (struct d_feedback *const feedback, const enum rohc_feedback_opt opt_type, const uint8_t *const data, const size_t data_len) | 
|   | Add an option data to the FEEDBACK-2 packet.  More...
  | 
|   | 
| uint8_t *  | f_wrap_feedback (struct d_feedback *const feedback, const uint16_t cid, const rohc_cid_type_t cid_type, const rohc_feedback_crc_t protect_with_crc, const uint8_t *const crc_table, size_t *const final_size) | 
|   | Wrap the feedback packet and add a CRC option if specified.  More...
  | 
|   | 
◆ f_add_option()
      
        
          | bool f_add_option  | 
          ( | 
          struct d_feedback *const  | 
          feedback,  | 
        
        
           | 
           | 
          const enum rohc_feedback_opt  | 
          opt_type,  | 
        
        
           | 
           | 
          const uint8_t *const  | 
          data,  | 
        
        
           | 
           | 
          const size_t  | 
          data_len  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Add an option data to the FEEDBACK-2 packet. 
- Parameters
 - 
  
    | feedback | The feedback packet to which the option must be added  | 
    | opt_type | The type of option to add  | 
    | data | The option data  | 
    | data_len | The length of option data (in bytes)  | 
  
   
- Returns
 - true if the option is successfully added, false otherwise 
 
 
 
◆ f_append_cid()
  
  
      
        
          | static bool f_append_cid  | 
          ( | 
          struct d_feedback *const  | 
          feedback,  | 
         
        
           | 
           | 
          const uint16_t  | 
          cid,  | 
         
        
           | 
           | 
          const rohc_cid_type_t  | 
          cid_type,  | 
         
        
           | 
           | 
          size_t *const  | 
          cid_len  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
static   | 
  
 
Append the CID to the feedback packet. 
- Parameters
 - 
  
     | feedback | The feedback packet to which the CID must be appended  | 
     | cid | The Context ID (CID) to append  | 
     | cid_type | The type of CID used for the feedback  | 
    | [out] | cid_len | The length of the add-CID or large CID field  | 
  
   
- Returns
 - Whether the CID is successfully appended or not 
 
 
 
◆ f_feedback1()
      
        
          | void f_feedback1  | 
          ( | 
          const uint32_t  | 
          sn_bits,  | 
        
        
           | 
           | 
          struct d_feedback *const  | 
          feedback  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Build a FEEDBACK-1 packet. 
- Parameters
 - 
  
    | sn_bits | The LSB of the Sequence Number (SN) the feedback packet is associated with  | 
    | feedback | The feedback packet to build  | 
  
   
 
 
◆ f_feedback2()
Build a FEEDBACK-2 packet. 
- Parameters
 - 
  
    | profile_id | The ID of the decompression profile that builds the feedback  | 
    | ack_type | The type of acknowledgement: 
 | 
    | mode | The mode in which ROHC operates: 
 | 
    | sn_bits | The LSB of the Sequence Number (SN) the feedback packet is associated with  | 
    | sn_bits_nr | The number of SN LSB  | 
    | feedback | The feedback packet to build  | 
  
   
- Returns
 - true if the packet is successfully built, false otherwise 
 
 
 
◆ f_wrap_feedback()
Wrap the feedback packet and add a CRC option if specified. 
- Warning
 - CID may be greater than MAX_CID if the context was not found and generated a No Context feedback; it must however respect CID type
 
- Parameters
 - 
  
    | feedback | The feedback packet to which the CID must be appended  | 
    | cid | The Context ID (CID) to append  | 
    | cid_type | The type of CID used for the feedback  | 
    | protect_with_crc | Whether the CRC option must be added or not  | 
    | crc_table | The pre-computed table for fast CRC computation  | 
    | final_size | OUT: The final size of the feedback packet  | 
  
   
- Returns
 - The feedback packet if successful, NULL otherwise