version 1.1.1.2, 2013/07/21 23:54:40
|
version 1.1.1.3, 2016/11/02 10:09:12
|
Line 24
|
Line 24
|
#define _ZEBRA_OSPFD_H |
#define _ZEBRA_OSPFD_H |
|
|
#include <zebra.h> |
#include <zebra.h> |
|
#include "libospf.h" |
|
|
#include "filter.h" |
#include "filter.h" |
#include "log.h" |
#include "log.h" |
|
|
#define OSPF_VERSION 2 |
#define OSPF_VERSION 2 |
|
|
/* Default protocol, port number. */ |
|
#ifndef IPPROTO_OSPFIGP |
|
#define IPPROTO_OSPFIGP 89 |
|
#endif /* IPPROTO_OSPFIGP */ |
|
|
|
/* IP precedence. */ |
|
#ifndef IPTOS_PREC_INTERNETCONTROL |
|
#define IPTOS_PREC_INTERNETCONTROL 0xC0 |
|
#endif /* IPTOS_PREC_INTERNETCONTROL */ |
|
|
|
/* VTY port number. */ |
/* VTY port number. */ |
#define OSPF_VTY_PORT 2604 |
#define OSPF_VTY_PORT 2604 |
|
|
Line 50
|
Line 41
|
/* Default configuration file name for ospfd. */ |
/* Default configuration file name for ospfd. */ |
#define OSPF_DEFAULT_CONFIG "ospfd.conf" |
#define OSPF_DEFAULT_CONFIG "ospfd.conf" |
|
|
/* Architectual Constants */ |
|
#ifdef DEBUG |
|
#define OSPF_LS_REFRESH_TIME 60 |
|
#else |
|
#define OSPF_LS_REFRESH_TIME 1800 |
|
#endif |
|
#define OSPF_MIN_LS_INTERVAL 5 |
|
#define OSPF_MIN_LS_ARRIVAL 1 |
|
#define OSPF_LSA_INITIAL_AGE 0 /* useful for debug */ |
|
#define OSPF_LSA_MAXAGE 3600 |
|
#define OSPF_CHECK_AGE 300 |
|
#define OSPF_LSA_MAXAGE_DIFF 900 |
|
#define OSPF_LS_INFINITY 0xffffff |
|
#define OSPF_DEFAULT_DESTINATION 0x00000000 /* 0.0.0.0 */ |
|
#define OSPF_INITIAL_SEQUENCE_NUMBER 0x80000001 |
|
#define OSPF_MAX_SEQUENCE_NUMBER 0x7fffffff |
|
|
|
#define OSPF_NSSA_TRANS_STABLE_DEFAULT 40 |
#define OSPF_NSSA_TRANS_STABLE_DEFAULT 40 |
|
|
#define OSPF_ALLSPFROUTERS 0xe0000005 /* 224.0.0.5 */ |
#define OSPF_ALLSPFROUTERS 0xe0000005 /* 224.0.0.5 */ |
#define OSPF_ALLDROUTERS 0xe0000006 /* 224.0.0.6 */ |
#define OSPF_ALLDROUTERS 0xe0000006 /* 224.0.0.6 */ |
|
|
#define OSPF_AREA_BACKBONE 0x00000000 /* 0.0.0.0 */ |
|
|
|
/* OSPF Authentication Type. */ |
/* OSPF Authentication Type. */ |
#define OSPF_AUTH_NULL 0 |
#define OSPF_AUTH_NULL 0 |
Line 85
|
Line 58
|
been given or not in VLink command handlers */ |
been given or not in VLink command handlers */ |
#define OSPF_AUTH_CMD_NOTSEEN -2 |
#define OSPF_AUTH_CMD_NOTSEEN -2 |
|
|
/* OSPF SPF timer values. */ |
|
#define OSPF_SPF_DELAY_DEFAULT 200 |
|
#define OSPF_SPF_HOLDTIME_DEFAULT 1000 |
|
#define OSPF_SPF_MAX_HOLDTIME_DEFAULT 10000 |
|
|
|
/* OSPF interface default values. */ |
|
#define OSPF_OUTPUT_COST_DEFAULT 10 |
|
#define OSPF_OUTPUT_COST_INFINITE UINT16_MAX |
|
#define OSPF_ROUTER_DEAD_INTERVAL_DEFAULT 40 |
|
#define OSPF_ROUTER_DEAD_INTERVAL_MINIMAL 1 |
|
#define OSPF_HELLO_INTERVAL_DEFAULT 10 |
|
#define OSPF_ROUTER_PRIORITY_DEFAULT 1 |
|
#define OSPF_RETRANSMIT_INTERVAL_DEFAULT 5 |
|
#define OSPF_TRANSMIT_DELAY_DEFAULT 1 |
|
#define OSPF_DEFAULT_BANDWIDTH 10000 /* Kbps */ |
|
|
|
#define OSPF_DEFAULT_REF_BANDWIDTH 100000 /* Kbps */ |
|
|
|
#define OSPF_POLL_INTERVAL_DEFAULT 60 |
|
#define OSPF_NEIGHBOR_PRIORITY_DEFAULT 0 |
|
|
|
#define OSPF_MTU_IGNORE_DEFAULT 0 |
|
#define OSPF_FAST_HELLO_DEFAULT 0 |
|
|
|
/* OSPF options. */ |
/* OSPF options. */ |
#define OSPF_OPTION_T 0x01 /* TOS. */ |
#define OSPF_OPTION_T 0x01 /* TOS. */ |
#define OSPF_OPTION_E 0x02 |
#define OSPF_OPTION_E 0x02 |
Line 182 struct ospf
|
Line 131 struct ospf
|
#define OSPF_LOG_ADJACENCY_CHANGES (1 << 3) |
#define OSPF_LOG_ADJACENCY_CHANGES (1 << 3) |
#define OSPF_LOG_ADJACENCY_DETAIL (1 << 4) |
#define OSPF_LOG_ADJACENCY_DETAIL (1 << 4) |
|
|
#ifdef HAVE_OPAQUE_LSA |
|
/* Opaque-LSA administrative flags. */ |
/* Opaque-LSA administrative flags. */ |
u_char opaque; |
u_char opaque; |
#define OPAQUE_OPERATION_READY_BIT (1 << 0) |
#define OPAQUE_OPERATION_READY_BIT (1 << 0) |
#define OPAQUE_BLOCK_TYPE_09_LSA_BIT (1 << 1) |
|
#define OPAQUE_BLOCK_TYPE_10_LSA_BIT (1 << 2) |
|
#define OPAQUE_BLOCK_TYPE_11_LSA_BIT (1 << 3) |
|
#endif /* HAVE_OPAQUE_LSA */ |
|
|
|
/* RFC3137 stub router. Configured time to stay stub / max-metric */ |
/* RFC3137 stub router. Configured time to stay stub / max-metric */ |
unsigned int stub_router_startup_time; /* seconds */ |
unsigned int stub_router_startup_time; /* seconds */ |
Line 201 struct ospf
|
Line 145 struct ospf
|
|
|
#define OSPF_STUB_MAX_METRIC_SUMMARY_COST 0x00ff0000 |
#define OSPF_STUB_MAX_METRIC_SUMMARY_COST 0x00ff0000 |
|
|
|
/* LSA timers */ |
|
unsigned int min_ls_interval; /* minimum delay between LSAs (in msec) */ |
|
unsigned int min_ls_arrival; /* minimum interarrival time between LSAs (in msec) */ |
|
|
/* SPF parameters */ |
/* SPF parameters */ |
unsigned int spf_delay; /* SPF delay time. */ |
unsigned int spf_delay; /* SPF delay time. */ |
unsigned int spf_holdtime; /* SPF hold time. */ |
unsigned int spf_holdtime; /* SPF hold time. */ |
Line 228 struct ospf
|
Line 176 struct ospf
|
int external_origin; /* AS-external-LSA origin flag. */ |
int external_origin; /* AS-external-LSA origin flag. */ |
int ase_calc; /* ASE calculation flag. */ |
int ase_calc; /* ASE calculation flag. */ |
|
|
#ifdef HAVE_OPAQUE_LSA |
|
struct list *opaque_lsa_self; /* Type-11 Opaque-LSAs */ |
struct list *opaque_lsa_self; /* Type-11 Opaque-LSAs */ |
#endif /* HAVE_OPAQUE_LSA */ |
|
|
|
/* Routing tables. */ |
/* Routing tables. */ |
struct route_table *old_table; /* Old routing table. */ |
struct route_table *old_table; /* Old routing table. */ |
Line 245 struct ospf
|
Line 191 struct ospf
|
struct route_table *external_lsas; /* Database of external LSAs, |
struct route_table *external_lsas; /* Database of external LSAs, |
prefix is LSA's adv. network*/ |
prefix is LSA's adv. network*/ |
|
|
/* Time stamps. */ | /* Time stamps */ |
struct timeval ts_spf; /* SPF calculation time stamp. */ |
struct timeval ts_spf; /* SPF calculation time stamp. */ |
|
struct timeval ts_spf_duration; /* Execution time of last SPF */ |
|
|
struct route_table *maxage_lsa; /* List of MaxAge LSA for deletion. */ |
struct route_table *maxage_lsa; /* List of MaxAge LSA for deletion. */ |
int redistribute; /* Num of redistributed protocols. */ |
int redistribute; /* Num of redistributed protocols. */ |
Line 258 struct ospf
|
Line 205 struct ospf
|
struct thread *t_spf_calc; /* SPF calculation timer. */ |
struct thread *t_spf_calc; /* SPF calculation timer. */ |
struct thread *t_ase_calc; /* ASE calculation timer. */ |
struct thread *t_ase_calc; /* ASE calculation timer. */ |
struct thread *t_external_lsa; /* AS-external-LSA origin timer. */ |
struct thread *t_external_lsa; /* AS-external-LSA origin timer. */ |
#ifdef HAVE_OPAQUE_LSA |
|
struct thread *t_opaque_lsa_self; /* Type-11 Opaque-LSAs origin event. */ |
struct thread *t_opaque_lsa_self; /* Type-11 Opaque-LSAs origin event. */ |
#endif /* HAVE_OPAQUE_LSA */ |
|
|
|
#define OSFP_LSA_MAXAGE_REMOVE_DELAY_DEFAULT 60 |
|
unsigned int maxage_delay; /* Delay on Maxage remover timer, sec */ |
unsigned int maxage_delay; /* Delay on Maxage remover timer, sec */ |
struct thread *t_maxage; /* MaxAge LSA remover timer. */ |
struct thread *t_maxage; /* MaxAge LSA remover timer. */ |
#define OSPF_LSA_MAXAGE_CHECK_INTERVAL 30 |
|
struct thread *t_maxage_walker; /* MaxAge LSA checking timer. */ |
struct thread *t_maxage_walker; /* MaxAge LSA checking timer. */ |
|
|
struct thread *t_deferred_shutdown; /* deferred/stub-router shutdown timer*/ |
struct thread *t_deferred_shutdown; /* deferred/stub-router shutdown timer*/ |
Line 395 struct ospf_area
|
Line 338 struct ospf_area
|
|
|
/* Self-originated LSAs. */ |
/* Self-originated LSAs. */ |
struct ospf_lsa *router_lsa_self; |
struct ospf_lsa *router_lsa_self; |
#ifdef HAVE_OPAQUE_LSA |
|
struct list *opaque_lsa_self; /* Type-10 Opaque-LSAs */ |
struct list *opaque_lsa_self; /* Type-10 Opaque-LSAs */ |
#endif /* HAVE_OPAQUE_LSA */ |
|
|
|
/* Area announce list. */ |
/* Area announce list. */ |
struct |
struct |
Line 439 struct ospf_area
|
Line 380 struct ospf_area
|
|
|
/* Threads. */ |
/* Threads. */ |
struct thread *t_stub_router; /* Stub-router timer */ |
struct thread *t_stub_router; /* Stub-router timer */ |
#ifdef HAVE_OPAQUE_LSA |
|
struct thread *t_opaque_lsa_self; /* Type-10 Opaque-LSAs origin. */ |
struct thread *t_opaque_lsa_self; /* Type-10 Opaque-LSAs origin. */ |
#endif /* HAVE_OPAQUE_LSA */ |
|
|
|
/* Statistics field. */ |
/* Statistics field. */ |
u_int32_t spf_calculation; /* SPF Calculation Count. */ |
u_int32_t spf_calculation; /* SPF Calculation Count. */ |
|
|
|
/* Time stamps. */ |
|
struct timeval ts_spf; /* SPF calculation time stamp. */ |
|
|
/* Router count. */ |
/* Router count. */ |
u_int32_t abr_count; /* ABR router in this area. */ |
u_int32_t abr_count; /* ABR router in this area. */ |
u_int32_t asbr_count; /* ASBR router in this area. */ |
u_int32_t asbr_count; /* ASBR router in this area. */ |
Line 610 extern struct ospf_area *ospf_area_lookup_by_area_id (
|
Line 552 extern struct ospf_area *ospf_area_lookup_by_area_id (
|
struct in_addr); |
struct in_addr); |
extern void ospf_area_add_if (struct ospf_area *, struct ospf_interface *); |
extern void ospf_area_add_if (struct ospf_area *, struct ospf_interface *); |
extern void ospf_area_del_if (struct ospf_area *, struct ospf_interface *); |
extern void ospf_area_del_if (struct ospf_area *, struct ospf_interface *); |
|
|
|
extern void ospf_interface_area_set (struct interface *); |
|
extern void ospf_interface_area_unset (struct interface *); |
|
|
extern void ospf_route_map_init (void); |
extern void ospf_route_map_init (void); |
extern void ospf_snmp_init (void); |
extern void ospf_snmp_init (void); |