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 | ip_parse_inner_hdr_flags_fields (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
◆ ip_parse_inner_hdr_flags_fields()
int ip_parse_inner_hdr_flags_fields |
( |
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.
- 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 |
[out] | bits | The bits extracted from extension 3 |
- Returns
- The data length read from the ROHC packet, -1 in case of error