⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospfd.h

📁 router source code for the ospdf.
💻 H
📖 第 1 页 / 共 2 页
字号:
  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 + -