Define list compression with its function.
More...
#include "protocols/ipv6.h"
#include "protocols/ip_numbers.h"
#include <stdlib.h>
Go to the source code of this file.
Define list compression with its function.
- Author
- Didier Barvaux didie.nosp@m.r@ba.nosp@m.rvaux.nosp@m..org
#define ROHC_LIST_GEN_ID_MAX 0xffU |
#define ROHC_LIST_ITEM_DATA_MAX 2048U |
The maximum length (in bytes) of item data.
Sized for IPv6 extension headers that may reach: (0xff + 1) * 8 = 2048 bytes
#define ROHC_LIST_ITEMS_MAX 15U |
The maximum number of items in a list (required by packet formats)
#define ROHC_LIST_MAX_ITEM 16U |
The maximum number of items in compressed lists
typedef bool(* rohc_list_item_cmp) (const struct rohc_list_item *const item, const uint8_t ext_type, const uint8_t *const ext_data, const size_t ext_len) |
The handler used to compare two items
Header version.
Enumerator |
---|
HBH |
Hop by hop header
|
RTHDR |
Routing header
|
AH |
AH header
|
DEST |
Destination header
|
bool rohc_list_equal |
( |
const struct rohc_list *const |
list1, |
|
|
const struct rohc_list *const |
list2 |
|
) |
| |
Are the two given lists equal?
We compare only the list structure, not the list content. Two lists with the same items in the same order, but with different content, are considered equals.
- Parameters
-
list1 | The first list to compare |
list2 | The other list to compare |
- Returns
- true if the two lists are equal, false if they aren't
Reset the given list item.
- Parameters
-
list_item | The item to reset |
int rohc_list_item_update_if_changed |
( |
rohc_list_item_cmp |
cmp_item, |
|
|
struct rohc_list_item *const |
list_item, |
|
|
const uint8_t |
item_type, |
|
|
const uint8_t *const |
item_data, |
|
|
const size_t |
item_len |
|
) |
| |
Update the content of the given compressed item if it changed.
- Parameters
-
cmp_item | The callback function to compare two items |
list_item | The item to update |
item_type | The type of the item to update |
item_data | The data to update item with |
item_len | The data length (in bytes) |
- Returns
- 0 if the item doesn't need to be updated, 1 if the update was successful, -1 if a problem occurred
void rohc_list_reset |
( |
struct rohc_list *const |
list | ) |
|
Reset the state of the given compressed list.
Functions prototypes
- Parameters
-
bool rohc_list_supersede |
( |
const struct rohc_list *const |
large, |
|
|
const struct rohc_list *const |
small |
|
) |
| |
Does the first list contains the second list?
We compare only the list structure, not the list content. A list supersedes another list if all the items of the second list are present in the first list in the same order.
- Parameters
-
large | The large list that should supersedes the small list |
small | The small list that should be superseded by the large list |
- Returns
- true if the large list supersedes the small list