|
version 1.1.1.2, 2012/10/09 09:22:28
|
version 1.1.1.3, 2016/11/02 10:09:10
|
|
Line 25
|
Line 25
|
| |
|
| #define ISISD_VERSION "0.0.7" |
#define ISISD_VERSION "0.0.7" |
| |
|
| |
#include "isisd/isis_redist.h" |
| |
|
| /* uncomment if you are a developer in bug hunt */ |
/* uncomment if you are a developer in bug hunt */ |
| /* #define EXTREME_DEBUG */ |
/* #define EXTREME_DEBUG */ |
| /* #define EXTREME_TLV_DEBUG */ |
/* #define EXTREME_TLV_DEBUG */ |
| |
|
| struct rmap |
|
| { |
|
| char *name; |
|
| struct route_map *map; |
|
| }; |
|
| |
|
| struct isis |
struct isis |
| { |
{ |
| u_long process_id; |
u_long process_id; |
|
Line 53 struct isis
|
Line 49 struct isis
|
| time_t uptime; /* when did we start */ |
time_t uptime; /* when did we start */ |
| struct thread *t_dync_clean; /* dynamic hostname cache cleanup thread */ |
struct thread *t_dync_clean; /* dynamic hostname cache cleanup thread */ |
| |
|
| /* Redistributed external information. */ | struct route_table *ext_info[REDIST_PROTOCOL_COUNT]; |
| struct route_table *external_info[ZEBRA_ROUTE_MAX + 1]; | |
| /* Redistribute metric info. */ | |
| struct | |
| { | |
| int type; /* Internal or External */ | |
| int value; /* metric value */ | |
| } dmetric[ZEBRA_ROUTE_MAX + 1]; | |
| |
| struct | |
| { | |
| char *name; | |
| struct route_map *map; | |
| } rmap[ZEBRA_ROUTE_MAX + 1]; | |
| #ifdef HAVE_IPV6 | |
| struct | |
| { | |
| struct | |
| { | |
| char *name; | |
| struct route_map *map; | |
| } rmap[ZEBRA_ROUTE_MAX + 1]; | |
| } inet6_afmode; | |
| #endif | |
| }; |
}; |
| |
|
| extern struct isis *isis; |
extern struct isis *isis; |
|
Line 91 struct isis_area
|
Line 64 struct isis_area
|
| struct isis_spftree *spftree6[ISIS_LEVELS]; /* The v6 SPTs */ |
struct isis_spftree *spftree6[ISIS_LEVELS]; /* The v6 SPTs */ |
| struct route_table *route_table6[ISIS_LEVELS]; /* IPv6 routes */ |
struct route_table *route_table6[ISIS_LEVELS]; /* IPv6 routes */ |
| #endif |
#endif |
| unsigned int min_bcast_mtu; | #define DEFAULT_LSP_MTU 1497 |
| | unsigned int lsp_mtu; /* Size of LSPs to generate */ |
| struct list *circuit_list; /* IS-IS circuits */ |
struct list *circuit_list; /* IS-IS circuits */ |
| struct flags flags; |
struct flags flags; |
| struct thread *t_tick; /* LSP walker */ |
struct thread *t_tick; /* LSP walker */ |
| struct thread *t_lsp_refresh[ISIS_LEVELS]; |
struct thread *t_lsp_refresh[ISIS_LEVELS]; |
| |
/* t_lsp_refresh is used in two ways: |
| |
* a) regular refresh of LSPs |
| |
* b) (possibly throttled) updates to LSPs |
| |
* |
| |
* The lsp_regenerate_pending flag tracks whether the timer is active |
| |
* for the a) or the b) case. |
| |
* |
| |
* It is of utmost importance to clear this flag when the timer is |
| |
* rescheduled for normal refresh, because otherwise, updates will |
| |
* be delayed until the next regular refresh. |
| |
*/ |
| int lsp_regenerate_pending[ISIS_LEVELS]; |
int lsp_regenerate_pending[ISIS_LEVELS]; |
| |
|
| /* |
/* |
|
Line 116 struct isis_area
|
Line 101 struct isis_area
|
| char is_type; /* level-1 level-1-2 or level-2-only */ |
char is_type; /* level-1 level-1-2 or level-2-only */ |
| /* are we overloaded? */ |
/* are we overloaded? */ |
| char overload_bit; |
char overload_bit; |
| |
/* L1/L2 router identifier for inter-area traffic */ |
| |
char attached_bit; |
| u_int16_t lsp_refresh[ISIS_LEVELS]; |
u_int16_t lsp_refresh[ISIS_LEVELS]; |
| /* minimum time allowed before lsp retransmission */ |
/* minimum time allowed before lsp retransmission */ |
| u_int16_t lsp_gen_interval[ISIS_LEVELS]; |
u_int16_t lsp_gen_interval[ISIS_LEVELS]; |
|
Line 131 struct isis_area
|
Line 118 struct isis_area
|
| #endif /* HAVE_IPV6 */ |
#endif /* HAVE_IPV6 */ |
| /* Counters */ |
/* Counters */ |
| u_int32_t circuit_state_changes; |
u_int32_t circuit_state_changes; |
| |
struct isis_redist redist_settings[REDIST_PROTOCOL_COUNT] |
| |
[ZEBRA_ROUTE_MAX + 1][ISIS_LEVELS]; |
| |
struct route_table *ext_reach[REDIST_PROTOCOL_COUNT][ISIS_LEVELS]; |
| |
|
| #ifdef TOPOLOGY_GENERATE |
#ifdef TOPOLOGY_GENERATE |
| struct list *topology; |
struct list *topology; |
|
Line 163 extern struct thread_master *master;
|
Line 153 extern struct thread_master *master;
|
| #define DEBUG_EVENTS (1<<10) |
#define DEBUG_EVENTS (1<<10) |
| #define DEBUG_ZEBRA (1<<11) |
#define DEBUG_ZEBRA (1<<11) |
| #define DEBUG_PACKET_DUMP (1<<12) |
#define DEBUG_PACKET_DUMP (1<<12) |
| |
#define DEBUG_LSP_GEN (1<<13) |
| |
#define DEBUG_LSP_SCHED (1<<14) |
| |
|
| |
#define lsp_debug(...) \ |
| |
do \ |
| |
{ \ |
| |
if (isis->debugs & DEBUG_LSP_GEN) \ |
| |
zlog_debug(__VA_ARGS__); \ |
| |
} \ |
| |
while (0) |
| |
|
| |
#define sched_debug(...) \ |
| |
do \ |
| |
{ \ |
| |
if (isis->debugs & DEBUG_LSP_SCHED) \ |
| |
zlog_debug(__VA_ARGS__); \ |
| |
} \ |
| |
while (0) |
| |
|
| #endif /* ISISD_H */ |
#endif /* ISISD_H */ |