ROHC decompression context for the IP-only profile.  
More...
Go to the source code of this file.
 | 
| rohc_packet_t  | ip_detect_packet_type (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_packet, const size_t rohc_length, const size_t large_cid_len) | 
|   | Detect the type of ROHC packet for IP-based non-RTP profiles.  More...
  | 
|   | 
| int  | ip_parse_dynamic_ip (const struct rohc_decomp_ctxt *const context, const uint8_t *packet, const size_t length, struct rohc_extr_bits *const bits) | 
|   | Parse the IP dynamic part of the ROHC packet.  More...
  | 
|   | 
| int  | ip_parse_ext3 (const struct rohc_decomp_ctxt *const context, const uint8_t *const rohc_data, const size_t rohc_data_len, const rohc_packet_t packet_type, struct rohc_extr_bits *const bits) | 
|   | Parse the extension 3 of the UOR-2 packet.  More...
  | 
|   | 
| int  | parse_outer_header_flags (const struct rohc_decomp_ctxt *const context, const uint8_t *const flags, const uint8_t *fields, const size_t length, struct rohc_extr_ip_bits *const bits) | 
|   | Parse the outer IP header flags and fields.  More...
  | 
|   | 
| int  | parse_inner_header_flags (const struct rohc_decomp_ctxt *const context, const uint8_t *const flags, const uint8_t *fields, const size_t length, struct rohc_extr_ip_bits *const bits) | 
|   | Parse the inner IP header flags and fields.  More...
  | 
|   | 
◆ ip_detect_packet_type()
      
        
          | rohc_packet_t ip_detect_packet_type  | 
          ( | 
          const struct rohc_decomp_ctxt *const  | 
          context,  | 
        
        
           | 
           | 
          const uint8_t *const  | 
          rohc_packet,  | 
        
        
           | 
           | 
          const size_t  | 
          rohc_length,  | 
        
        
           | 
           | 
          const size_t  | 
          large_cid_len  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Detect the type of ROHC packet for IP-based non-RTP profiles. 
- Parameters
 - 
  
    | context | The decompression context  | 
    | rohc_packet | The ROHC packet  | 
    | rohc_length | The length of the ROHC packet  | 
    | large_cid_len | The length of the optional large CID field  | 
  
   
- Returns
 - The packet type 
 
 
 
◆ ip_parse_dynamic_ip()
      
        
          | int ip_parse_dynamic_ip  | 
          ( | 
          const struct rohc_decomp_ctxt *const  | 
          context,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          packet,  | 
        
        
           | 
           | 
          const size_t  | 
          length,  | 
        
        
           | 
           | 
          struct rohc_extr_bits *const  | 
          bits  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Parse the IP dynamic part of the ROHC packet. 
- Parameters
 - 
  
    | context | The decompression context  | 
    | packet | The ROHC packet to parse  | 
    | length | The length of the ROHC packet  | 
    | bits | OUT: The bits extracted from the ROHC header  | 
  
   
- Returns
 - The number of bytes read in the ROHC packet, -1 in case of failure 
 
 
 
◆ ip_parse_ext3()
Parse the extension 3 of the UOR-2 packet. 
 Extension 3 for non-RTP profiles (5.7.5 & 5.11.4):
       0     1     2     3     4     5     6     7
    +-----+-----+-----+-----+-----+-----+-----+-----+
 1  |  1     1  |  S  |   Mode    |  I  | ip  | ip2 |
    +-----+-----+-----+-----+-----+-----+-----+-----+
 2  |            Inner IP header flags        |     |  if ip = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+
 3  |            Outer IP header flags              |  if ip2 = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+
 4  |                      SN                       |  if S = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+
    |                                               |
 5  /            Inner IP header fields             /  variable,
    |                                               |  if ip = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+
 6  |                     IP-ID                     |  2 octets, if I = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+
    |                                               |
 7  /            Outer IP header fields             /  variable,
    |                                               |  if ip2 = 1
    +-----+-----+-----+-----+-----+-----+-----+-----+- Parameters
 - 
  
    | context | The decompression context  | 
    | rohc_data | The ROHC data to parse  | 
    | rohc_data_len | The length of the ROHC data to parse  | 
    | packet_type | The type of ROHC packet to parse  | 
    | bits | IN: the bits already found in base header OUT: the bits found in the extension header 3  | 
  
   
- Returns
 - The data length read from the ROHC packet, -1 in case of error 
 
 
 
◆ parse_inner_header_flags()
      
        
          | int parse_inner_header_flags  | 
          ( | 
          const struct rohc_decomp_ctxt *const  | 
          context,  | 
        
        
           | 
           | 
          const uint8_t *const  | 
          flags,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          fields,  | 
        
        
           | 
           | 
          const size_t  | 
          length,  | 
        
        
           | 
           | 
          struct rohc_extr_ip_bits *const  | 
          bits  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Parse the inner IP header flags and fields. 
Store the values in an IP header info structure.
  Inner IP header flags (5.7.5):
       0     1     2     3     4     5     6     7
     ..... ..... ..... ..... ..... ..... ..... .....
    | TOS | TTL | DF  | PR  | IPX | NBO | RND | ip2 |  if ip = 1
     ..... ..... ..... ..... ..... ..... ..... .....
  Inner IP header fields (5.7.5):
    ..... ..... ..... ..... ..... ..... ..... .....
   |         Type of Service/Traffic Class         |  if TOS = 1
    ..... ..... ..... ..... ..... ..... ..... .....
   |         Time to Live/Hop Limit                |  if TTL = 1
    ..... ..... ..... ..... ..... ..... ..... .....
   |         Protocol/Next Header                  |  if PR = 1
    ..... ..... ..... ..... ..... ..... ..... .....
   /         IP extension headers                  /  variable,
    ..... ..... ..... ..... ..... ..... ..... .....   if IPX = 1- Parameters
 - 
  
    | context | The decompression context  | 
    | flags | The ROHC flags that indicate which IP fields are present in the packet  | 
    | fields | The ROHC packet part that contains some IP header fields  | 
    | length | The length of the ROHC packet part that contains some IP header fields  | 
    | bits | OUT: The bits extracted from extension 3  | 
  
   
- Returns
 - The data length read from the ROHC packet, -1 in case of error 
 
 
 
◆ parse_outer_header_flags()
      
        
          | int parse_outer_header_flags  | 
          ( | 
          const struct rohc_decomp_ctxt *const  | 
          context,  | 
        
        
           | 
           | 
          const uint8_t *const  | 
          flags,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          fields,  | 
        
        
           | 
           | 
          const size_t  | 
          length,  | 
        
        
           | 
           | 
          struct rohc_extr_ip_bits *const  | 
          bits  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Parse the outer IP header flags and fields. 
Store the values in an IP header info structure.
  Outer IP header flags (5.7.5):
       0     1     2     3     4     5     6     7
     ..... ..... ..... ..... ..... ..... ..... .....
    | TOS2| TTL2| DF2 | PR2 |IPX2 |NBO2 |RND2 |  I2 |  if ip2 = 1
     ..... ..... ..... ..... ..... ..... ..... .....
  Outer IP header fields
     ..... ..... ..... ..... ..... ..... ..... .....
    |      Type of Service/Traffic Class            |  if TOS2 = 1
     ..... ..... ..... ..... ..... ..... ..... .....
    |         Time to Live/Hop Limit                |  if TTL2 = 1
     ..... ..... ..... ..... ..... ..... ..... .....
    |         Protocol/Next Header                  |  if PR2 = 1
     ..... ..... ..... ..... ..... ..... ..... .....
    /         IP extension header(s)                /  variable,
     ..... ..... ..... ..... ..... ..... ..... .....    if IPX2 = 1
    |                  IP-ID                        |  2 octets,
     ..... ..... ..... ..... ..... ..... ..... .....    if I2 = 1- Parameters
 - 
  
    | context | The decompression context  | 
    | flags | The ROHC flags that indicate which IP fields are present in the packet  | 
    | fields | The ROHC packet part that contain some IP header fields  | 
    | length | The length of the ROHC packet part that contains some IP header fields  | 
    | bits | OUT: The bits extracted from extension 3  | 
  
   
- Returns
 - The data length read from the ROHC packet, -1 in case of error