diff options
author | Luca Muscariello <lumuscar@cisco.com> | 2022-06-30 13:58:25 +0200 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2022-07-01 12:11:33 +0200 |
commit | 012843b1c0bc0838e69085ed83a79ec8b6f97360 (patch) | |
tree | 4fa320673884488e4a1bf879ec144e99f134a3fb /hicn-plugin/src/strategies | |
parent | 6b94663b2455e212009a544ae23bb6a8c55407f8 (diff) |
Revision and refactor of the VPP plugin with fixes for the
packet generator. Hash table for the packet cache has been
changed with the bihash.
Co-authored-by: Mauro Sardara <msardara@cisco.com>
Signed-off-by: Luca Muscariello <muscariello@ieee.org>
Change-Id: I0e0191a9f109d37081d32cc55d577ea43533f8c0
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'hicn-plugin/src/strategies')
-rw-r--r-- | hicn-plugin/src/strategies/strategy_mw.c | 18 | ||||
-rw-r--r-- | hicn-plugin/src/strategies/strategy_rp.c | 12 | ||||
-rw-r--r-- | hicn-plugin/src/strategies/strategy_rr.c | 18 |
3 files changed, 15 insertions, 33 deletions
diff --git a/hicn-plugin/src/strategies/strategy_mw.c b/hicn-plugin/src/strategies/strategy_mw.c index 990e64a5d..81c757f70 100644 --- a/hicn-plugin/src/strategies/strategy_mw.c +++ b/hicn-plugin/src/strategies/strategy_mw.c @@ -16,16 +16,15 @@ #include "../strategy.h" #include "../strategy_dpo_ctx.h" #include "../faces/face.h" -#include "../hashtb.h" #include "../strategy_dpo_manager.h" /* Simple strategy that chooses the next hop with the maximum weight */ /* It does not require to exend the hicn_dpo */ void hicn_receive_data_mw (index_t dpo_idx, int nh_idx); -void hicn_add_interest_mw (index_t dpo_idx, hicn_hash_entry_t *pit_entry); +void hicn_add_interest_mw (index_t dpo_idx); void hicn_on_interest_timeout_mw (index_t dpo_idx); -u32 hicn_select_next_hop_mw (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len); +u32 hicn_select_next_hop_mw (index_t dpo_idx, hicn_face_id_t *outfaces, + u16 *len); u32 get_strategy_node_index_mw (void); u8 *hicn_strategy_format_trace_mw (u8 *s, hicn_strategy_trace_t *t); u8 *hicn_strategy_format_mw (u8 *s, va_list *ap); @@ -51,8 +50,7 @@ hicn_mw_strategy_get_vft (void) /* DPO should be give in input as it containes all the information to calculate * the next hops*/ u32 -hicn_select_next_hop_mw (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len) +hicn_select_next_hop_mw (index_t dpo_idx, hicn_face_id_t *outfaces, u16 *len) { hicn_dpo_ctx_t *dpo_ctx = hicn_strategy_dpo_ctx_get (dpo_idx); @@ -82,14 +80,8 @@ hicn_select_next_hop_mw (index_t dpo_idx, int *nh_idx, } void -hicn_add_interest_mw (index_t dpo_ctx_idx, hicn_hash_entry_t *hash_entry) +hicn_add_interest_mw (index_t dpo_ctx_idx) { - hash_entry->dpo_ctx_id = dpo_ctx_idx; - dpo_id_t hicn_dpo_id = { .dpoi_type = hicn_dpo_strategy_mw_get_type (), - .dpoi_proto = 0, - .dpoi_next_node = 0, - .dpoi_index = dpo_ctx_idx }; - hash_entry->vft_id = hicn_dpo_get_vft_id (&hicn_dpo_id); } void diff --git a/hicn-plugin/src/strategies/strategy_rp.c b/hicn-plugin/src/strategies/strategy_rp.c index 748cd69b1..eb495ff91 100644 --- a/hicn-plugin/src/strategies/strategy_rp.c +++ b/hicn-plugin/src/strategies/strategy_rp.c @@ -17,16 +17,15 @@ #include "../strategy.h" #include "../strategy_dpo_ctx.h" #include "../faces/face.h" -#include "../hashtb.h" #include "../strategy_dpo_manager.h" /* Simple strategy that forwards intertests to all next hops */ /* It does not require to exend the hicn_dpo */ void hicn_receive_data_rp (index_t dpo_idx, int nh_idx); -void hicn_add_interest_rp (index_t dpo_idx, hicn_hash_entry_t *pit_entry); +void hicn_add_interest_rp (index_t dpo_idx); void hicn_on_interest_timeout_rp (index_t dpo_idx); -u32 hicn_select_next_hop_rp (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len); +u32 hicn_select_next_hop_rp (index_t dpo_idx, hicn_face_id_t *outfaces, + u16 *len); u8 *hicn_strategy_format_trace_rp (u8 *s, hicn_strategy_trace_t *t); u8 *hicn_strategy_format_rp (u8 *s, va_list *ap); @@ -51,8 +50,7 @@ hicn_rp_strategy_get_vft (void) /* DPO should be give in input as it containes all the information to calculate * the next hops*/ u32 -hicn_select_next_hop_rp (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len) +hicn_select_next_hop_rp (index_t dpo_idx, hicn_face_id_t *outfaces, u16 *len) { hicn_dpo_ctx_t *dpo_ctx = hicn_strategy_dpo_ctx_get (dpo_idx); @@ -74,7 +72,7 @@ hicn_select_next_hop_rp (index_t dpo_idx, int *nh_idx, } void -hicn_add_interest_rp (index_t dpo_ctx_idx, hicn_hash_entry_t *hash_entry) +hicn_add_interest_rp (index_t dpo_ctx_idx) { /* Nothing to do */ } diff --git a/hicn-plugin/src/strategies/strategy_rr.c b/hicn-plugin/src/strategies/strategy_rr.c index 192cf5fc3..ef5dc3fc1 100644 --- a/hicn-plugin/src/strategies/strategy_rr.c +++ b/hicn-plugin/src/strategies/strategy_rr.c @@ -17,16 +17,15 @@ #include "../strategy.h" #include "../strategy_dpo_ctx.h" #include "../faces/face.h" -#include "../hashtb.h" #include "../strategy_dpo_manager.h" /* Simple strategy that chooses the next hop with the maximum weight */ /* It does not require to exend the hicn_dpo */ void hicn_receive_data_rr (index_t dpo_idx, int nh_idx); -void hicn_add_interest_rr (index_t dpo_idx, hicn_hash_entry_t *pit_entry); +void hicn_add_interest_rr (index_t dpo_idx); void hicn_on_interest_timeout_rr (index_t dpo_idx); -u32 hicn_select_next_hop_rr (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len); +u32 hicn_select_next_hop_rr (index_t dpo_idx, hicn_face_id_t *outfaces, + u16 *len); u8 *hicn_strategy_format_trace_rr (u8 *s, hicn_strategy_trace_t *t); u8 *hicn_strategy_format_rr (u8 *s, va_list *ap); @@ -51,8 +50,7 @@ hicn_rr_strategy_get_vft (void) /* DPO should be give in input as it containes all the information to calculate * the next hops*/ u32 -hicn_select_next_hop_rr (index_t dpo_idx, int *nh_idx, - hicn_face_id_t *outfaces, uint32_t *len) +hicn_select_next_hop_rr (index_t dpo_idx, hicn_face_id_t *outfaces, u16 *len) { hicn_dpo_ctx_t *dpo_ctx = hicn_strategy_dpo_ctx_get (dpo_idx); @@ -75,14 +73,8 @@ hicn_select_next_hop_rr (index_t dpo_idx, int *nh_idx, } void -hicn_add_interest_rr (index_t dpo_ctx_idx, hicn_hash_entry_t *hash_entry) +hicn_add_interest_rr (index_t dpo_ctx_idx) { - hash_entry->dpo_ctx_id = dpo_ctx_idx; - dpo_id_t hicn_dpo_id = { .dpoi_type = hicn_dpo_strategy_rr_get_type (), - .dpoi_proto = 0, - .dpoi_next_node = 0, - .dpoi_index = dpo_ctx_idx }; - hash_entry->vft_id = hicn_dpo_get_vft_id (&hicn_dpo_id); } void |