1/* BGP nexthop scan 2 Copyright (C) 2000 Kunihiro Ishiguro 3 4This file is part of GNU Zebra. 5 6GNU Zebra is free software; you can redistribute it and/or modify it 7under the terms of the GNU General Public License as published by the 8Free Software Foundation; either version 2, or (at your option) any 9later version. 10 11GNU Zebra is distributed in the hope that it will be useful, but 12WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14General Public License for more details. 15 16You should have received a copy of the GNU General Public License 17along with GNU Zebra; see the file COPYING. If not, write to the Free 18Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 1902111-1307, USA. */ 20 21#ifndef _QUAGGA_BGP_NEXTHOP_H 22#define _QUAGGA_BGP_NEXTHOP_H 23 24#include "if.h" 25 26#define BGP_SCAN_INTERVAL_DEFAULT 60 27#define BGP_IMPORT_INTERVAL_DEFAULT 15 28 29/* BGP nexthop cache value structure. */ 30struct bgp_nexthop_cache 31{ 32 /* This nexthop exists in IGP. */ 33 u_char valid; 34 35 /* Nexthop is changed. */ 36 u_char changed; 37 38 /* Nexthop is changed. */ 39 u_char metricchanged; 40 41 /* IGP route's metric. */ 42 u_int32_t metric; 43 44 /* Nexthop number and nexthop linked list.*/ 45 u_char nexthop_num; 46 struct nexthop *nexthop; 47}; 48 49extern void bgp_scan_init (void); 50extern void bgp_scan_finish (void); 51extern int bgp_nexthop_lookup (afi_t, struct peer *peer, struct bgp_info *, 52 int *, int *); 53extern void bgp_connected_add (struct connected *c); 54extern void bgp_connected_delete (struct connected *c); 55extern int bgp_multiaccess_check_v4 (struct in_addr, char *); 56extern int bgp_config_write_scan_time (struct vty *); 57extern int bgp_nexthop_onlink (afi_t, struct attr *); 58extern int bgp_nexthop_self (struct attr *); 59extern void bgp_address_init (void); 60 61#endif /* _QUAGGA_BGP_NEXTHOP_H */ 62