summaryrefslogtreecommitdiffstats
path: root/hicn-plugin/src/strategy_dpo_manager.c
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2020-03-24 17:34:14 +0000
committerMauro Sardara <msardara@cisco.com>2020-09-14 17:31:15 +0000
commit88509fe353767cbde707c3e3b1f29392957819f3 (patch)
treecccd51bac7966cd3138c525e8075d90341184a66 /hicn-plugin/src/strategy_dpo_manager.c
parentd875ae92a7fa1eaab3bc2616aeeedfc64a81fea4 (diff)
[HICN-574] Host stack plugin for VPP.
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I8d8fdffef31a7013265d6529c5f52f3d5ec70d18 Signed-off-by: Mauro Sardara <msardara@cisco.com> Signed-off-by: Mauro <you@example.com> Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'hicn-plugin/src/strategy_dpo_manager.c')
-rw-r--r--hicn-plugin/src/strategy_dpo_manager.c160
1 files changed, 0 insertions, 160 deletions
diff --git a/hicn-plugin/src/strategy_dpo_manager.c b/hicn-plugin/src/strategy_dpo_manager.c
deleted file mode 100644
index f8d41a372..000000000
--- a/hicn-plugin/src/strategy_dpo_manager.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2017-2019 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vnet/dpo/dpo.h>
-
-#include "strategy_dpo_manager.h"
-#include "strategy_dpo_ctx.h"
-#include "strategies/dpo_mw.h"
-#include "strategies/dpo_rr.h"
-#include "strategy.h"
-#include "faces/face.h"
-
-static dpo_type_t *strategies_id;
-static const hicn_dpo_vft_t **hicn_dpo_vfts;
-
-static const hicn_strategy_vft_t **hicn_strategy_vfts;
-
-int hicn_strategies = 0;
-
-hicn_dpo_vft_t default_dpo;
-
-dpo_type_t
-hicn_dpo_register_new_type (const char *const *const *hicn_nodes,
- const hicn_dpo_vft_t * hicn_dpo_vft,
- const hicn_strategy_vft_t * hicn_strategy_vft,
- const dpo_vft_t * dpo_ctx_vft)
-{
- dpo_type_t dpo_type = dpo_register_new_type (dpo_ctx_vft, hicn_nodes);
- vec_validate (hicn_dpo_vfts, dpo_type);
- hicn_dpo_vfts[dpo_type] = hicn_dpo_vft;
-
- vec_validate (hicn_strategy_vfts, dpo_type);
- hicn_strategy_vfts[dpo_type] = hicn_strategy_vft;
-
- vec_validate (strategies_id, hicn_strategies);
- strategies_id[hicn_strategies] = dpo_type;
- hicn_strategies++;
-
- return dpo_type;
-}
-
-u32
-dpo_is_hicn (const dpo_id_t * dpo)
-{
- for (int i = 0; i < hicn_strategies; i++)
- {
- if (hicn_dpo_vfts[strategies_id[i]]->hicn_dpo_is_type (dpo))
- return 1;
- }
- return 0;
-}
-
-dpo_type_t
-hicn_dpo_get_vft_id (const dpo_id_t * dpo)
-{
- return dpo->dpoi_type;
-}
-
-const hicn_dpo_vft_t *
-hicn_dpo_get_vft (dpo_type_t vfts_id)
-{
- return hicn_dpo_vfts[vfts_id];
-}
-
-const hicn_dpo_vft_t *
-hicn_dpo_get_vft_from_id (u8 strategy_id)
-{
- return hicn_dpo_vfts[strategies_id[strategy_id]];
-}
-
-const hicn_strategy_vft_t *
-hicn_dpo_get_strategy_vft (dpo_type_t vfts_id)
-{
- return hicn_strategy_vfts[vfts_id];
-}
-
-const hicn_strategy_vft_t *
-hicn_dpo_get_strategy_vft_from_id (u8 vfts_id)
-{
- return hicn_strategy_vfts[strategies_id[vfts_id]];
-}
-
-void
-hicn_dpos_init (void)
-{
- hicn_strategy_init_dpo_ctx_pool ();
- hicn_dpo_strategy_mw_module_init ();
- hicn_dpo_strategy_rr_module_init ();
-
- default_dpo.hicn_dpo_is_type = &hicn_dpo_is_type_strategy_mw;
- default_dpo.hicn_dpo_get_type = &hicn_dpo_strategy_mw_get_type;
- default_dpo.hicn_dpo_module_init = &hicn_dpo_strategy_mw_module_init;
- default_dpo.hicn_dpo_create = &hicn_strategy_mw_ctx_create;
- default_dpo.hicn_dpo_add_update_nh = &hicn_strategy_mw_ctx_add_nh;
- default_dpo.hicn_dpo_del_nh = &hicn_strategy_mw_ctx_del_nh;
- default_dpo.hicn_dpo_format = &hicn_strategy_mw_format_ctx;
-}
-
-u8 *
-format_hicn_strategy_list (u8 * s, int n, ...)
-{
- va_list ap;
- va_start (ap, n);
- u32 indent = va_arg (ap, u32);
- va_end (ap);
-
- s = format (s, "%U Strategies:\n", format_white_space, indent);
- indent += 4;
- int i;
- vec_foreach_index (i, strategies_id)
- {
- s = format (s, "%U (%d) ", format_white_space, indent, i);
- s = hicn_strategy_vfts[strategies_id[i]]->hicn_format_strategy (s, &ap);
- }
-
- return (s);
-}
-
-u8
-hicn_dpo_strategy_id_is_valid (int strategy_id)
-{
- return vec_len (strategies_id) > strategy_id ?
- HICN_ERROR_NONE : HICN_ERROR_DPO_MGR_ID_NOT_VALID;
-}
-
-int
-hicn_strategy_get_all_available (void)
-{
- return hicn_strategies;
-}
-
-/**
- * @brief Registers a dpo by calling its module init function.
- *
- * This is typically called from the ctor for dpo's registered at compilation
- * time.
- */
-void
-hicn_dpo_register (const hicn_dpo_vft_t * hicn_dpo)
-{
- hicn_dpo->hicn_dpo_module_init ();
-}
-
-/*
- * fd.io coding-style-patch-verification: ON
- *
- * Local Variables: eval: (c-set-style "gnu") End:
- */