diff options
Diffstat (limited to 'hicn-plugin/src/strategy_dpo_manager.h')
-rw-r--r-- | hicn-plugin/src/strategy_dpo_manager.h | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/hicn-plugin/src/strategy_dpo_manager.h b/hicn-plugin/src/strategy_dpo_manager.h index eaec252b7..e96e050d9 100644 --- a/hicn-plugin/src/strategy_dpo_manager.h +++ b/hicn-plugin/src/strategy_dpo_manager.h @@ -20,10 +20,26 @@ #include "strategy.h" /** + * @file strategy_dpo_manager.h + * + * This file implements structs and helper functions to manipulate hICN dpo. + * An hICN DPO is a combination of: + * - a hICN DPO ctx (context) that holds the structure containing the + * information to choose the next hop, + * - a dpo vft that specify how to update the hICN DPO ctx when a next hop is + * added, deleted or updated, + * - a strategy containing (see strategy.h): (i) the vpp node that processes Interest packets + * subjected to such strategy, (ii) the definition of the vft that defines + * the hICN strategy functions + * An hICN DPO is places as the sole next hop in the vpp loadbalancer, and it containes + * a list of next hops that will be used by the associated strategy when forwarding + * interest packets. + */ + +/** * @brief Definition of the virtual function table for a hICN DPO. * - * An hICN dpo is a combination of a dpo context (hicn_dpo_ctx or struct that - * extends a hicn_dpo_ctx) and a strategy node. The following virtual function table + * The following virtual function table * template that glues together the fuction to interact with the context and the * creating the dpo */ @@ -48,37 +64,18 @@ typedef struct hicn_dpo_vft_s */ extern hicn_dpo_vft_t default_dpo; -const static char *const hicn_ip6_nodes[] = { - "hicn6-iface-input", // this is the name you give your node in VLIB_REGISTER_NODE - NULL, -}; - -const static char *const hicn_ip4_nodes[] = { - "hicn4-iface-input", // this is the name you give your node in VLIB_REGISTER_NODE - NULL, -}; - -const static char *const *const hicn_nodes_strategy[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = hicn_ip6_nodes, - [DPO_PROTO_IP4] = hicn_ip4_nodes, -}; - /** * @brief Register a new hICN dpo to the manager. * - * An hICN DPO is a combination of: - * - a hICN DPO ctx (context) that holds the structure containing the - * information to choose the next hop, - * - a strategy containing: (i) the vpp node that processes Interest packets - * subjected to such strategy, (ii) the definition of the vft that defines - * the hICN strategy functions - * Registering a hICN DPO allows the plugin to be aware of the new dpo an be - * able to apply it to the FIB entries. + * Registering a hICN DPO allows the plugin to be aware of the new dpo an be + * able to apply it to the FIB entries. * * @param hicn_nodes A list of vpp to which pass an interest that matches with * the FIB entry to which the hICN DPO is applied. This list must contain the * name of the strategy node (or nodes in case of differentiation between IPv4 - * and IPv6). + * and IPv6). Unless really needed otherwise (i.e., different implementation of + * iface input), the list of node to use should be one provided in the strategy.h + * (hicn_nodes_strategy) * @param hicn_dpo_vft The structure holding the virtual function table to * interact with the hICN dpo and its context. * @param hicn_strategy_vft The structure holding the virtual function table |