File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / bgpd / bgp_nexthop.h
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 10:09:10 2016 UTC (7 years, 8 months ago) by misho
Branches: quagga, MAIN
CVS tags: v1_0_20160315, HEAD
quagga 1.0.20160315

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>