mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 04:01:59 +00:00

change processing etc.) that refer to the BGP instance, the correct BGP instance must be referenced and not the default BGP instance. The default BGP instance is the first instance on the instance list. In a scenario where one BGP instance is deleted (through operator action such as a "no router bgp" command) and another instance exists or is created, there may still be events in-flight that need to be processed against the deleted instance. Trying to process these against the default instance is erroneous. The calls to bgp_get_default() must be limited to the user interface (vtysh) context. Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
60 lines
2.0 KiB
C
60 lines
2.0 KiB
C
/* BGP Nexthop tracking
|
|
* Copyright (C) 2013 Cumulus Networks, Inc.
|
|
*
|
|
* This file is part of GNU Zebra.
|
|
*
|
|
* GNU Zebra 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.
|
|
*
|
|
* GNU Zebra 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 GNU Zebra; see the file COPYING. If not, write to the Free
|
|
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
* 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef _BGP_NHT_H
|
|
#define _BGP_NHT_H
|
|
|
|
/**
|
|
* bgp_parse_nexthop_update() - parse a nexthop update message from Zebra.
|
|
*/
|
|
extern void bgp_parse_nexthop_update();
|
|
|
|
/**
|
|
* bgp_find_nexthop() - lookup the nexthop cache table for the bnc object
|
|
* ARGUMENTS:
|
|
* p - path for which the nexthop object is being looked up
|
|
* connected - True if NH MUST be a connected route
|
|
*/
|
|
extern int bgp_find_nexthop(struct bgp_info *p, int connected);
|
|
|
|
/**
|
|
* bgp_find_or_add_nexthop() - lookup the nexthop cache table for the bnc
|
|
* object. If not found, create a new object and register with ZEBRA for
|
|
* nexthop notification.
|
|
* ARGUMENTS:
|
|
* bgp - BGP instance
|
|
* a - afi: AFI_IP or AF_IP6
|
|
* p - path for which the nexthop object is being looked up
|
|
* peer - The BGP peer associated with this NHT
|
|
* connected - True if NH MUST be a connected route
|
|
*/
|
|
extern int bgp_find_or_add_nexthop(struct bgp *bgp, afi_t a,
|
|
struct bgp_info *p, struct peer *peer, int connected);
|
|
|
|
/**
|
|
* bgp_unlink_nexthop() - Unlink the nexthop object from the path structure.
|
|
* ARGUMENTS:
|
|
* p - path structure.
|
|
*/
|
|
extern void bgp_unlink_nexthop(struct bgp_info *p);
|
|
|
|
#endif /* _BGP_NHT_H */
|