diff options
Diffstat (limited to 'src/vnet/lisp-gpe/lisp_gpe_fwd_entry.h')
-rw-r--r-- | src/vnet/lisp-gpe/lisp_gpe_fwd_entry.h | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.h b/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.h deleted file mode 100644 index dfdb8b911ae..00000000000 --- a/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.h +++ /dev/null @@ -1,240 +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. - */ -/** - * @file - * @brief LISP-GPE definitions. - */ - -#ifndef __LISP_GPE_FWD_ENTRY_H__ -#define __LISP_GPE_FWD_ENTRY_H__ - -#include <vnet/lisp-gpe/lisp_gpe.h> - -/** - * @brief A path on which to forward lisp traffic - */ -typedef struct lisp_fwd_path_t_ -{ - /** - * The adjacency constructed for the locator pair - */ - index_t lisp_adj; - - /** - * Priority. Only the paths with the best priority will be installed in FIB - */ - u8 priority; - - /** - * [UE]CMP weigt for the path - */ - u8 weight; - -} lisp_fwd_path_t; - -/** - * @brief A Forwarding entry can be 'normal' or 'negative' - * Negative implies we deliberately want to add a FIB entry for an EID - * that results in 'special' behaviour determined by an 'action'. - * @normal means send it down some tunnels. - */ -typedef enum lisp_gpe_fwd_entry_type_t_ -{ - LISP_GPE_FWD_ENTRY_TYPE_NORMAL, - LISP_GPE_FWD_ENTRY_TYPE_NEGATIVE, -} lisp_gpe_fwd_entry_type_t; - - -/** - * LISP-GPE fwd entry key - */ -typedef struct lisp_gpe_fwd_entry_key_t_ -{ - dp_address_t rmt; - dp_address_t lcl; - u32 vni; -} lisp_gpe_fwd_entry_key_t; - -/** - * @brief A LISP Forwarding Entry - * - * A forwarding entry is from a locai EID to a remote EID over a set of rloc pairs - */ -typedef struct lisp_gpe_fwd_entry_t_ -{ - /** - * Follows src/dst or dst only forwarding policy - */ - u8 is_src_dst; - - /** - * This object joins the FIB control plane graph to receive updates to - * for changes to the graph. - */ - fib_node_t node; - - /** - * The Entry's key: {lEID,rEID,vni} - */ - lisp_gpe_fwd_entry_key_t *key; - - /** - * The forwarding entry type - */ - lisp_gpe_fwd_entry_type_t type; - - /** - * The tenant the entry belongs to - */ - u32 tenant; - - /** - * The VRF (in the case of L3) or Bridge-Domain (for L2) index - */ - union - { - /** - * Fields relevant to an L2 entry - */ - struct - { - /** - * The VRF ID - */ - u32 eid_table_id; - - /** - * The FIB index for the overlay, i.e. the FIB in which the EIDs - * are present - */ - u32 eid_fib_index; - /** - * The SRC-FIB index for created for anding source-route entries - */ - u32 src_fib_index; - }; - /** - * Fields relevant to an L2 entry - */ - struct - { - /** - * The Bridge-Domain (for L2) index - */ - u32 eid_bd_id; - - /** - * The Bridge-domain index for the overlay EIDs - */ - u32 eid_bd_index; - - /** - * The path-list created for the forwarding - */ - fib_node_index_t path_list_index; - - /** - * Child index of this entry on the path-list - */ - u32 child_index; - - /** - * The DPO used to forward - */ - dpo_id_t dpo; - } l2; - - /** - * Fields relevant to an NSH entry - */ - struct - { - /** - * The path-list created for the forwarding - */ - fib_node_index_t path_list_index; - - /** - * Child index of this entry on the path-list - */ - u32 child_index; - - /** - * The DPO contributed by NSH - */ - dpo_id_t dpo; - - /** - * The DPO used for forwarding. Obtained after stacking tx node - * onto lb choice - */ - dpo_id_t choice; - } nsh; - }; - - union - { - /** - * @brief When the type is 'normal' - * The RLOC pair that form the route's paths. i.e. where to send - * packets for this route. - */ - lisp_fwd_path_t *paths; - - /** - * @brief When the type is negative. The action to take. - */ - negative_fwd_actions_e action; - }; - - /** - * used for getting load balance statistics - */ - index_t dpoi_index; - -} lisp_gpe_fwd_entry_t; - -extern int -vnet_lisp_gpe_add_del_fwd_entry (vnet_lisp_gpe_add_del_fwd_entry_args_t * a, - u32 * hw_if_indexp); - -extern void vnet_lisp_gpe_fwd_entry_flush (void); - -extern u32 lisp_l2_fib_lookup (lisp_gpe_main_t * lgm, - u16 bd_index, u8 src_mac[8], u8 dst_mac[8]); - -extern const dpo_id_t *lisp_nsh_fib_lookup (lisp_gpe_main_t * lgm, - u32 spi_si); -extern void -vnet_lisp_gpe_del_fwd_counters (vnet_lisp_gpe_add_del_fwd_entry_args_t * a, - u32 fwd_entry_index); -extern void -vnet_lisp_gpe_add_fwd_counters (vnet_lisp_gpe_add_del_fwd_entry_args_t * a, - u32 fwd_entry_index); -extern u32 *vnet_lisp_gpe_get_fwd_entry_vnis (void); - -int -vnet_lisp_gpe_get_fwd_stats (vnet_lisp_gpe_add_del_fwd_entry_args_t * a, - vlib_counter_t * c); - -#endif - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "gnu") - * End: - */ |