📄 ospfd.h
字号:
time_t lsa_refresher_started;#define OSPF_LSA_REFRESH_INTERVAL_DEFAULT 10 u_int16_t lsa_refresh_interval; /* Distance parameter. */ u_char distance_all; u_char distance_intra; u_char distance_inter; u_char distance_external; /* Statistics for LSA origination. */ u_int32_t lsa_originate_count; /* Statistics for LSA used for new instantiation. */ u_int32_t rx_lsa_count; struct route_table *distance_table;};/* OSPF area structure. */struct ospf_area{ /* OSPF instance. */ struct ospf *ospf; /* Zebra interface list belonging to the area. */ list oiflist; /* Area ID. */ struct in_addr area_id; /* Area ID format. */ char format;#define OSPF_AREA_ID_FORMAT_ADDRESS 1#define OSPF_AREA_ID_FORMAT_DECIMAL 2 /* Address range. */ list address_range; /* Configured variables. */ int external_routing; /* ExternalRoutingCapability. */#define OSPF_AREA_DEFAULT 0#define OSPF_AREA_STUB 1#define OSPF_AREA_NSSA 2#define OSPF_AREA_TYPE_MAX 3 int no_summary; /* Don't inject summaries into stub.*/ int shortcut_configured; /* Area configured as shortcut. */#define OSPF_SHORTCUT_DEFAULT 0#define OSPF_SHORTCUT_ENABLE 1#define OSPF_SHORTCUT_DISABLE 2 int shortcut_capability; /* Other ABRs agree on S-bit */ u_int32_t default_cost; /* StubDefaultCost. */ int auth_type; /* Authentication type. */ u_char NSSATranslatorRole; /* NSSA Role during configuration */#define OSPF_NSSA_ROLE_NEVER 0#define OSPF_NSSA_ROLE_ALWAYS 1#define OSPF_NSSA_ROLE_CANDIDATE 2 u_char NSSATranslator; /* NSSA Role after election process */ u_char transit; /* TransitCapability. */#define OSPF_TRANSIT_FALSE 0#define OSPF_TRANSIT_TRUE 1 struct route_table *ranges; /* Configured Area Ranges. */ /* Area related LSDBs[Type1-4]. */ struct ospf_lsdb *lsdb; /* Self-originated LSAs. */ struct ospf_lsa *router_lsa_self;#ifdef HAVE_OPAQUE_LSA list opaque_lsa_self; /* Type-10 Opaque-LSAs */#endif /* HAVE_OPAQUE_LSA */ /* Area announce list. */ struct { char *name; struct access_list *list; } export;#define EXPORT_NAME(A) (A)->export.name#define EXPORT_LIST(A) (A)->export.list /* Area acceptance list. */ struct { char *name; struct access_list *list; } import;#define IMPORT_NAME(A) (A)->import.name#define IMPORT_LIST(A) (A)->import.list /* Type 3 LSA Area prefix-list. */ struct { char *name; struct prefix_list *list; } plist_in;#define PREFIX_LIST_IN(A) (A)->plist_in.list#define PREFIX_NAME_IN(A) (A)->plist_in.name struct { char *name; struct prefix_list *list; } plist_out;#define PREFIX_LIST_OUT(A) (A)->plist_out.list#define PREFIX_NAME_OUT(A) (A)->plist_out.name /* Shortest Path Tree. */ struct vertex *spf; /* Threads. */ struct thread *t_router_lsa_self;/* Self-originated router-LSA timer. */#ifdef HAVE_OPAQUE_LSA struct thread *t_opaque_lsa_self; /* Type-10 Opaque-LSAs origin. */#endif /* HAVE_OPAQUE_LSA */ /* Statistics field. */ u_int32_t spf_calculation; /* SPF Calculation Count. */ /* Router count. */ u_int32_t abr_count; /* ABR router in this area. */ u_int32_t asbr_count; /* ASBR router in this area. */ /* Counters. */ u_int32_t act_ints; /* Active interfaces. */ u_int32_t full_nbrs; /* Fully adjacent neighbors. */ u_int32_t full_vls; /* Fully adjacent virtual neighbors. */};/* OSPF config network structure. */struct ospf_network{ /* Area ID. */ struct in_addr area_id; int format;};/* OSPF NBMA neighbor structure. */struct ospf_nbr_nbma{ /* Neighbor IP address. */ struct in_addr addr; /* OSPF interface. */ struct ospf_interface *oi; /* OSPF neighbor structure. */ struct ospf_neighbor *nbr; /* Neighbor priority. */ u_char priority; /* Poll timer value. */ u_int32_t v_poll; /* Poll timer thread. */ struct thread *t_poll; /* State change. */ u_int32_t state_change;};/* Macro. */#define OSPF_AREA_SAME(X,Y) \ (memcmp ((X->area_id), (Y->area_id), IPV4_MAX_BYTELEN) == 0)#define IS_OSPF_ABR(O) ((O)->flags & OSPF_FLAG_ABR)#define IS_OSPF_ASBR(O) ((O)->flags & OSPF_FLAG_ASBR)#define OSPF_IS_AREA_ID_BACKBONE(I) ((I).s_addr == OSPF_AREA_BACKBONE)#define OSPF_IS_AREA_BACKBONE(A) OSPF_IS_AREA_ID_BACKBONE ((A)->area_id)#ifdef roundup# define ROUNDUP(val, gran) roundup(val, gran)#else /* roundup */# define ROUNDUP(val, gran) (((val) - 1 | (gran) - 1) + 1)#endif /* roundup */#define LSA_OPTIONS_GET(area) \ (((area)->external_routing == OSPF_AREA_DEFAULT) ? OSPF_OPTION_E : 0)#ifdef HAVE_NSSA#define LSA_NSSA_GET(area) \ (((area)->external_routing == OSPF_AREA_NSSA) ? \ (area)->NSSATranslator : 0)#endif /* HAVE_NSSA */#define OSPF_TIMER_ON(T,F,V) \ do { \ if (!(T)) \ (T) = thread_add_timer (master, (F), ospf, (V)); \ } while (0)#define OSPF_AREA_TIMER_ON(T,F,V) \ do { \ if (!(T)) \ (T) = thread_add_timer (master, (F), area, (V)); \ } while (0)#define OSPF_POLL_TIMER_ON(T,F,V) \ do { \ if (!(T)) \ (T) = thread_add_timer (master, (F), nbr_nbma, (V)); \ } while (0)#define OSPF_POLL_TIMER_OFF(X) OSPF_TIMER_OFF((X))#define OSPF_TIMER_OFF(X) \ do { \ if (X) \ { \ thread_cancel (X); \ (X) = NULL; \ } \ } while (0)/* Extern variables. */extern struct ospf_master *om;extern struct message ospf_ism_state_msg[];extern struct message ospf_nsm_state_msg[];extern struct message ospf_lsa_type_msg[];extern struct message ospf_link_state_id_type_msg[];extern struct message ospf_redistributed_proto[];extern struct message ospf_network_type_msg[];extern int ospf_ism_state_msg_max;extern int ospf_nsm_state_msg_max;extern int ospf_lsa_type_msg_max;extern int ospf_link_state_id_type_msg_max;extern int ospf_redistributed_proto_max;extern int ospf_network_type_msg_max;extern struct zclient *zclient;extern struct thread_master *master;extern int ospf_zlog;/* Prototypes. */struct ospf *ospf_lookup ();struct ospf *ospf_get ();void ospf_finish (struct ospf *);int ospf_router_id_update_timer (struct thread *);void ospf_router_id_update ();int ospf_network_set (struct ospf *, struct prefix_ipv4 *, struct in_addr);int ospf_network_unset (struct ospf *, struct prefix_ipv4 *, struct in_addr);int ospf_area_stub_set (struct ospf *, struct in_addr);int ospf_area_stub_unset (struct ospf *, struct in_addr);int ospf_area_no_summary_set (struct ospf *, struct in_addr);int ospf_area_no_summary_unset (struct ospf *, struct in_addr);int ospf_area_nssa_set (struct ospf *, struct in_addr);int ospf_area_nssa_unset (struct ospf *, struct in_addr);int ospf_area_nssa_translator_role_set (struct ospf *, struct in_addr, int);int ospf_area_export_list_set (struct ospf *, struct ospf_area *, char *);int ospf_area_export_list_unset (struct ospf *, struct ospf_area *);int ospf_area_import_list_set (struct ospf *, struct ospf_area *, char *);int ospf_area_import_list_unset (struct ospf *, struct ospf_area *);int ospf_area_shortcut_set (struct ospf *, struct ospf_area *, int);int ospf_area_shortcut_unset (struct ospf *, struct ospf_area *);int ospf_timers_spf_set (struct ospf *, u_int32_t, u_int32_t);int ospf_timers_spf_unset (struct ospf *);int ospf_timers_refresh_set (struct ospf *, int);int ospf_timers_refresh_unset (struct ospf *);int ospf_nbr_nbma_set (struct ospf *, struct in_addr);int ospf_nbr_nbma_unset (struct ospf *, struct in_addr);int ospf_nbr_nbma_priority_set (struct ospf *, struct in_addr, u_char);int ospf_nbr_nbma_priority_unset (struct ospf *, struct in_addr);int ospf_nbr_nbma_poll_interval_set (struct ospf *, struct in_addr, int);int ospf_nbr_nbma_poll_interval_unset (struct ospf *, struct in_addr);void ospf_prefix_list_update (struct prefix_list *);void ospf_init ();void ospf_if_update (struct ospf *);void ospf_ls_upd_queue_empty (struct ospf_interface *);void ospf_terminate ();void ospf_nbr_nbma_if_update (struct ospf *, struct ospf_interface *);struct ospf_nbr_nbma *ospf_nbr_nbma_lookup (struct ospf *, struct in_addr);struct ospf_nbr_nbma *ospf_nbr_nbma_lookup_next (struct ospf *, struct in_addr *, int);int ospf_oi_count (struct interface *);struct ospf_area *ospf_area_get (struct ospf *, struct in_addr, int);void ospf_area_check_free (struct ospf *, struct in_addr);struct ospf_area *ospf_area_lookup_by_area_id (struct ospf *, struct in_addr);void ospf_area_add_if (struct ospf_area *, struct ospf_interface *);void ospf_area_del_if (struct ospf_area *, struct ospf_interface *);void ospf_route_map_init ();void ospf_snmp_init ();void ospf_master_init ();#endif /* _ZEBRA_OSPFD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -