|
| struct | __attribute__ ((packed)) hicn_pcs_shared_s |
| | Structure representing a face. It containes the fields shared among all the types of faces as well it leaves some space for storing additional information specific to each type. More...
|
| |
|
int | hicn_pit_create (hicn_pit_cs_t *p, u32 num_elems) |
| |
|
always_inline void | hicn_pit_to_cs (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *pcs_entry, hicn_hash_entry_t *hash_entry, hicn_hash_node_t *node, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id, hicn_face_id_t inface_id, u8 is_appface) |
| |
|
always_inline void | hicn_pcs_cs_update (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *old_entry, hicn_pcs_entry_t *entry, hicn_hash_node_t *node) |
| |
|
always_inline void | hicn_pcs_cs_delete (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entry, hicn_hash_node_t **node, hicn_hash_entry_t *hash_entry, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id) |
| |
|
always_inline int | hicn_pcs_cs_insert (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *entry, hicn_hash_node_t *node, hicn_hash_entry_t **hash_entry, u64 hashval, u32 *node_id, index_t *dpo_ctx_id, u8 *vft_id, u8 *is_cs, u8 *hash_entry_id, u32 *bucket_id, u8 *bucket_is_overflow) |
| |
|
always_inline int | hicn_pcs_cs_insert_update (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *entry, hicn_hash_node_t *node, hicn_hash_entry_t **hash_entry, u64 hashval, u32 *node_id, index_t *dpo_ctx_id, u8 *vft_id, u8 *is_cs, u8 *hash_entry_id, u32 *bucket_id, u8 *bucket_is_overflow, hicn_face_id_t inface) |
| |
|
always_inline int | hicn_pcs_pit_insert (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *entry, hicn_hash_node_t *node, hicn_hash_entry_t **hash_entry, u64 hashval, u32 *node_id, index_t *dpo_ctx_id, u8 *vft_id, u8 *is_cs, u8 *hash_entry_id, u32 *bucket_id, u8 *bucket_is_overflow) |
| |
|
always_inline void | hicn_pcs_pit_delete (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entryp, hicn_hash_node_t **node, vlib_main_t *vm, hicn_hash_entry_t *hash_entry, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id) |
| |
|
always_inline int | hicn_pcs_insert (vlib_main_t *vm, hicn_pit_cs_t *pitcs, hicn_pcs_entry_t *entry, hicn_hash_node_t *node, hicn_hash_entry_t **hash_entry, u64 hashval, u32 *node_id, index_t *dpo_ctx_id, u8 *vft_id, u8 *is_cs, u8 *hash_entry_id, u32 *bucket_id, u8 *bucket_is_overflow) |
| |
|
always_inline void | hicn_pcs_delete (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entryp, hicn_hash_node_t **node, vlib_main_t *vm, hicn_hash_entry_t *hash_entry, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id) |
| |
|
always_inline void | hicn_pcs_remove_lock (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entryp, hicn_hash_node_t **node, vlib_main_t *vm, hicn_hash_entry_t *hash_entry, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id) |
| |
|
always_inline void | hicn_cs_delete_trimmed (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entryp, hicn_hash_entry_t *hash_entry, hicn_hash_node_t **node, vlib_main_t *vm) |
| |
|
always_inline void | hicn_pcs_delete_internal (hicn_pit_cs_t *pitcs, hicn_pcs_entry_t **pcs_entryp, hicn_hash_entry_t *hash_entry, hicn_hash_node_t **node, vlib_main_t *vm, const hicn_dpo_vft_t *dpo_vft, dpo_id_t *hicn_dpo_id) |
| |
|
always_inline u16 | hicn_infra_seq16_sum (u16 addend1, u16 addend2) |
| |
|
always_inline int | hicn_infra_seq16_cmp (u16 a, u16 b) |
| |
|
always_inline int | hicn_infra_seq16_lt (u16 a, u16 b) |
| |
|
always_inline int | hicn_infra_seq16_le (u16 a, u16 b) |
| |
|
always_inline int | hicn_infra_seq16_gt (u16 a, u16 b) |
| |
|
always_inline int | hicn_infra_seq16_ge (u16 a, u16 b) |
| |
|
always_inline u16 | hicn_infra_ms2clicks (u64 time_ms, u64 ms_per_click) |
| |
|
always_inline u16 | hicn_infra_get_fast_exp_time (u64 lifetime_ms) |
| |
|
always_inline u16 | hicn_infra_get_slow_exp_time (u64 lifetime_ms) |
| |
This file implement the PIT and CS which are collapsed in the same structure, thereore an entry is either a PIT entry of a CS entry. The implementation consist of a hash table where each entry of the hash table contains a PIT or CS entry, some counters to maintain the status of the PIT/CS and the reference to the eviction policy for the CS. The default eviction policy id FIFO.