summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/fib/fib_path_list.h
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2016-12-19 23:05:39 +0100
committerDamjan Marion <damarion@cisco.com>2016-12-28 12:25:14 +0100
commit7cd468a3d7dee7d6c92f69a0bb7061ae208ec727 (patch)
tree5de62f8dbd3a752f5a676ca600e43d2652d1ff1a /vnet/vnet/fib/fib_path_list.h
parent696f1adec0df3b8f161862566dd9c86174302658 (diff)
Reorganize source tree to use single autotools instance
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'vnet/vnet/fib/fib_path_list.h')
-rw-r--r--vnet/vnet/fib/fib_path_list.h158
1 files changed, 0 insertions, 158 deletions
diff --git a/vnet/vnet/fib/fib_path_list.h b/vnet/vnet/fib/fib_path_list.h
deleted file mode 100644
index 8bc1b20b6bf..00000000000
--- a/vnet/vnet/fib/fib_path_list.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2016 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.
- */
-
-#ifndef __FIB_PATH_LIST_H__
-#define __FIB_PATH_LIST_H__
-
-#include <vlib/vlib.h>
-#include <vnet/adj/adj.h>
-
-#include "fib_node.h"
-#include "fib_path.h"
-
-/**
- * Enumeration of path-list flags.
- */
-typedef enum fib_path_list_attribute_t_ {
- /**
- * Marker. Add new flags after this one.
- */
- FIB_PATH_LIST_ATTRIBUTE_FIRST = 0,
- /**
- * This path list is shareable. Shareable path-lists
- * are inserted into the path-list data-base.
- * All path-list are inherently shareable, the reason we share some and
- * not others is to limit the size of the path-list database. This DB must
- * be searched for each route update.
- */
- FIB_PATH_LIST_ATTRIBUTE_SHARED = FIB_PATH_LIST_ATTRIBUTE_FIRST,
- /**
- * explicit drop path-list. Used when the entry source needs to
- * force a drop, despite the fact the path info is present.
- */
- FIB_PATH_LIST_ATTRIBUTE_DROP,
- /**
- * explicit local path-list.
- */
- FIB_PATH_LIST_ATTRIBUTE_LOCAL,
- /**
- * exclusive path-list. Exclusive means the path will resolve via the
- * exclusive (user provided) adj.
- */
- FIB_PATH_LIST_ATTRIBUTE_EXCLUSIVE,
- /**
- * resolved path-list
- */
- FIB_PATH_LIST_ATTRIBUTE_RESOLVED,
- /**
- * looped path-list. one path looped implies the whole list is
- */
- FIB_PATH_LIST_ATTRIBUTE_LOOPED,
- /**
- * Marher. Add new flags before this one, and then update it.
- */
- FIB_PATH_LIST_ATTRIBUTE_LAST = FIB_PATH_LIST_ATTRIBUTE_LOOPED,
-} fib_path_list_attribute_t;
-
-typedef enum fib_path_list_flags_t_ {
- FIB_PATH_LIST_FLAG_NONE = 0,
- FIB_PATH_LIST_FLAG_SHARED = (1 << FIB_PATH_LIST_ATTRIBUTE_SHARED),
- FIB_PATH_LIST_FLAG_DROP = (1 << FIB_PATH_LIST_ATTRIBUTE_DROP),
- FIB_PATH_LIST_FLAG_LOCAL = (1 << FIB_PATH_LIST_ATTRIBUTE_LOCAL),
- FIB_PATH_LIST_FLAG_EXCLUSIVE = (1 << FIB_PATH_LIST_ATTRIBUTE_EXCLUSIVE),
- FIB_PATH_LIST_FLAG_RESOLVED = (1 << FIB_PATH_LIST_ATTRIBUTE_RESOLVED),
- FIB_PATH_LIST_FLAG_LOOPED = (1 << FIB_PATH_LIST_ATTRIBUTE_LOOPED),
-} fib_path_list_flags_t;
-
-#define FIB_PATH_LIST_ATTRIBUTES { \
- [FIB_PATH_LIST_ATTRIBUTE_SHARED] = "shared", \
- [FIB_PATH_LIST_ATTRIBUTE_RESOLVED] = "resolved", \
- [FIB_PATH_LIST_ATTRIBUTE_DROP] = "drop", \
- [FIB_PATH_LIST_ATTRIBUTE_EXCLUSIVE] = "exclusive", \
- [FIB_PATH_LIST_ATTRIBUTE_LOCAL] = "local", \
- [FIB_PATH_LIST_ATTRIBUTE_LOOPED] = "looped", \
-}
-
-#define FOR_EACH_PATH_LIST_ATTRIBUTE(_item) \
- for (_item = FIB_PATH_LIST_ATTRIBUTE_FIRST; \
- _item <= FIB_PATH_LIST_ATTRIBUTE_LAST; \
- _item++)
-
-extern fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags,
- const fib_route_path_t *paths);
-extern fib_node_index_t fib_path_list_create_special(fib_protocol_t nh_proto,
- fib_path_list_flags_t flags,
- const dpo_id_t *dpo);
-
-extern fib_node_index_t fib_path_list_copy_and_path_add(
- fib_node_index_t pl_index,
- fib_path_list_flags_t flags,
- const fib_route_path_t *path);
-extern fib_node_index_t fib_path_list_copy_and_path_remove(
- fib_node_index_t pl_index,
- fib_path_list_flags_t flags,
- const fib_route_path_t *path);
-extern void fib_path_list_contribute_forwarding(fib_node_index_t path_list_index,
- fib_forward_chain_type_t type,
- dpo_id_t *dpo);
-extern void fib_path_list_contribute_urpf(fib_node_index_t path_index,
- index_t urpf);
-extern index_t fib_path_list_get_urpf(fib_node_index_t path_list_index);
-extern index_t fib_path_list_get_adj(fib_node_index_t path_list_index,
- fib_forward_chain_type_t type);
-
-extern u32 fib_path_list_child_add(fib_node_index_t pl_index,
- fib_node_type_t type,
- fib_node_index_t child_index);
-extern void fib_path_list_child_remove(fib_node_index_t pl_index,
- fib_node_index_t sibling_index);
-extern void fib_path_list_back_walk(fib_node_index_t pl_index,
- fib_node_back_walk_ctx_t *ctx);
-extern void fib_path_list_lock(fib_node_index_t pl_index);
-extern void fib_path_list_unlock(fib_node_index_t pl_index);
-extern int fib_path_list_recursive_loop_detect(fib_node_index_t path_list_index,
- fib_node_index_t **entry_indicies);
-extern u32 fib_path_list_get_resolving_interface(fib_node_index_t path_list_index);
-extern int fib_path_list_is_looped(fib_node_index_t path_list_index);
-extern fib_protocol_t fib_path_list_get_proto(fib_node_index_t path_list_index);
-extern u8 * fib_path_list_format(fib_node_index_t pl_index,
- u8 * s);
-extern u8 * fib_path_list_adjs_format(fib_node_index_t pl_index,
- u32 indent,
- u8 * s);
-extern index_t fib_path_list_lb_map_add_or_lock(fib_node_index_t pl_index,
- const fib_node_index_t *pis);
-/**
- * A callback function type for walking a path-list's paths
- */
-typedef int (*fib_path_list_walk_fn_t)(fib_node_index_t pl_index,
- fib_node_index_t path_index,
- void *ctx);
-
-extern void fib_path_list_walk(fib_node_index_t pl_index,
- fib_path_list_walk_fn_t func,
- void *ctx);
-
-extern void fib_path_list_module_init(void);
-
-extern void fib_path_list_module_init(void);
-
-/*
- * functions for testing.
- */
-u32 fib_path_list_pool_size(void);
-u32 fib_path_list_db_size(void);
-
-#endif