diff options
| author | Stephen Worley <sworley@cumulusnetworks.com> | 2019-06-24 14:04:13 -0400 | 
|---|---|---|
| committer | Stephen Worley <sworley@cumulusnetworks.com> | 2019-06-25 22:58:48 -0400 | 
| commit | 50d8965075cf59744dde685ae01400d9b7ee08a2 (patch) | |
| tree | 576f96ef1806522cfc2e8d7af5f2b61605daecc1 /lib/nexthop_group_private.h | |
| parent | 504d0a409627e21167233e538dbc49af59fbdd99 (diff) | |
lib: Private api for nexthop_group manipulation
Add a file that exposes functions which modify nexthop groups.
Nexthop groups are techincally immutable but there are a
few special cases where we need direct access to add/remove
nexthops after the group has been made. This file provides a
way to expose those functions in a way that makes it clear
this is a private/hidden api.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
Diffstat (limited to 'lib/nexthop_group_private.h')
| -rw-r--r-- | lib/nexthop_group_private.h | 45 | 
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/nexthop_group_private.h b/lib/nexthop_group_private.h new file mode 100644 index 0000000000..cdd0df0ab3 --- /dev/null +++ b/lib/nexthop_group_private.h @@ -0,0 +1,45 @@ +/* + * Nexthop Group Private Functions. + * Copyright (C) 2019 Cumulus Networks, Inc. + *                    Stephen Worley + * + * This program 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 of the License, or (at your option) + * any later version. + * + * This program 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 + */ + +/** + * These functions should only be used internally for nexthop groups + * and in certain special cases. Please use `lib/nexthop_group.h` for + * any general nexthop_group api needs. + */ + +#ifndef __NEXTHOP_GROUP_PRIVATE__ +#define __NEXTHOP_GROUP_PRIVATE__ + +#include <nexthop_group.h> + +#ifdef __cplusplus +extern "C" { +#endif + +void _nexthop_add(struct nexthop **target, struct nexthop *nexthop); +void _nexthop_del(struct nexthop_group *nhg, struct nexthop *nexthop); +void _nexthop_group_add_sorted(struct nexthop_group *nhg, +			       struct nexthop *nexthop); + +#ifdef __cplusplus +} +#endif + +#endif /* __NEXTHOP_GROUP_PRIVATE__ */  | 
