X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=lib%2Fagg_table.h;h=af1e6b6af1cc0d8b66427643350d076a52a16ce7;hb=12906cb1c84b4de54874365d4a02a040ed9632d1;hp=40ffe8c7552873e4a0f17f0b9b943d2162e3ee88;hpb=b57442d701e05cf70b83281e652785f091e89c07;p=mirror_frr.git diff --git a/lib/agg_table.h b/lib/agg_table.h index 40ffe8c75..af1e6b6af 100644 --- a/lib/agg_table.h +++ b/lib/agg_table.h @@ -1,21 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * agg_table - Aggregate Table Header * Copyright (C) 2018 Cumulus Networks, Inc. * Donald Sharp - * - * FRR is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2, or (at your option) any - * later version. - * - * FRR is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; see the file COPYING; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __AGG_TABLE_H__ #define __AGG_TABLE_H__ @@ -86,13 +73,13 @@ static inline struct agg_node *agg_route_next(struct agg_node *node) } static inline struct agg_node *agg_node_get(struct agg_table *table, - struct prefix *p) + const struct prefix *p) { return agg_node_from_rnode(route_node_get(table->route_table, p)); } static inline struct agg_node * -agg_node_lookup(const struct agg_table *const table, struct prefix *p) +agg_node_lookup(const struct agg_table *const table, const struct prefix *p) { return agg_node_from_rnode(route_node_lookup(table->route_table, p)); } @@ -109,7 +96,7 @@ static inline struct agg_node *agg_route_next_until(struct agg_node *node, } static inline struct agg_node *agg_node_match(struct agg_table *table, - struct prefix *p) + const struct prefix *p) { return agg_node_from_rnode(route_node_match(table->route_table, p)); } @@ -155,6 +142,21 @@ static inline struct agg_table *agg_get_table(struct agg_node *node) return (struct agg_table *)route_table_get_info(node->table); } +static inline const struct prefix * +agg_node_get_prefix(const struct agg_node *node) +{ + return &node->p; +} + +static inline unsigned int agg_node_get_lock_count(const struct agg_node *node) +{ + return node->lock; +} + +#ifdef _FRR_ATTRIBUTE_PRINTFRR +#pragma FRR printfrr_ext "%pRN" (struct agg_node *) +#endif + #ifdef __cplusplus } #endif