Define list compression with its function.
More...
#include "protocols/ipv6.h"
#include "protocols/ip_numbers.h"
#include <stdlib.h>
#include "dllexport.h"
Go to the source code of this file.
Data Structures |
struct | rohc_list |
| Define a list for compression. More...
|
struct | rohc_list_item |
| A list item. More...
|
Defines |
#define | ROHC_LIST_MAX_ITEM 16U |
#define | ROHC_LIST_GEN_ID_MAX 0xffU |
#define | ROHC_LIST_GEN_ID_NONE (ROHC_LIST_GEN_ID_MAX + 1) |
#define | ROHC_LIST_GEN_ID_ANON (ROHC_LIST_GEN_ID_MAX + 2) |
#define | ROHC_LIST_ITEMS_MAX 15U |
#define | ROHC_LIST_ITEM_DATA_MAX 2048U |
| The maximum length (in bytes) of item data.
|
Typedefs |
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) |
Enumerations |
enum | ext_header_version { HBH = ROHC_IPPROTO_HOPOPTS,
RTHDR = ROHC_IPPROTO_ROUTING,
AH = ROHC_IPPROTO_AH,
DEST = ROHC_IPPROTO_DSTOPTS
} |
| Header version. More...
|
Functions |
void ROHC_EXPORT | rohc_list_reset (struct rohc_list *const list) |
| Reset the state of the given compressed list.
|
bool ROHC_EXPORT | rohc_list_equal (const struct rohc_list *const list1, const struct rohc_list *const list2) |
| Are the two given lists equal?
|
bool ROHC_EXPORT | rohc_list_supersede (const struct rohc_list *const large, const struct rohc_list *const small) |
| Does the first list contains the second list?
|
void ROHC_EXPORT | rohc_list_item_reset (struct rohc_list_item *const list_item) |
| Reset the given list item.
|
int ROHC_EXPORT | 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.
|
Detailed Description
Define list compression with its function.
- Author:
- Didier Barvaux <didier@barvaux.org>
Define Documentation
The maximum length (in bytes) of item data.
Sized for IPv6 extension headers that may reach: (0xff + 1) * 8 = 2048 bytes
The maximum number of items in a list (required by packet formats)
The maximum number of items in compressed lists
Typedef Documentation
The handler used to compare two items
Enumeration Type Documentation
Header version.
- Enumerator:
HBH |
Hop by hop header
|
RTHDR |
Routing header
|
AH |
AH header
|
DEST |
Destination header
|
Function Documentation
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 |
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
Reset the state of the given compressed list.
Functions prototypes
- Parameters:
-
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