diff options
Diffstat (limited to 'isisd/isis_lsp.h')
-rw-r--r-- | isisd/isis_lsp.h | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/isisd/isis_lsp.h b/isisd/isis_lsp.h index 71a75089..c6eb7c27 100644 --- a/isisd/isis_lsp.h +++ b/isisd/isis_lsp.h @@ -26,7 +26,7 @@ /* The grand plan is to support 1024 circuits so we have 32*32 bit flags * the support will be achived using the newest drafts */ -#define ISIS_MAX_CIRCUITS 32 /* = 1024 */ /*FIXME:defined in flags.h as well*/ +#define ISIS_MAX_CIRCUITS 32 /* = 1024 - FIXME:defined in flags.h as well */ /* Structure for isis_lsp, this structure will only support the fixed * System ID (Currently 6) (atleast for now). In order to support more @@ -34,19 +34,20 @@ * sake it should better be avoided */ struct isis_lsp { - struct isis_fixed_hdr *isis_header; /* normally equals pdu */ - struct isis_link_state_hdr *lsp_header; /* pdu + isis_header_len */ - struct stream *pdu; /* full pdu lsp */ - union { + struct isis_fixed_hdr *isis_header; /* normally equals pdu */ + struct isis_link_state_hdr *lsp_header; /* pdu + isis_header_len */ + struct stream *pdu; /* full pdu lsp */ + union + { struct list *frags; struct isis_lsp *zero_lsp; } lspu; u_int32_t SRMflags[ISIS_MAX_CIRCUITS]; u_int32_t SSNflags[ISIS_MAX_CIRCUITS]; u_int32_t rexmit_queue[ISIS_MAX_CIRCUITS]; - int level; /* L1 or L2? */ - int purged; /* have purged this one */ - int scheduled; /* scheduled for sending */ + int level; /* L1 or L2? */ + int purged; /* have purged this one */ + int scheduled; /* scheduled for sending */ time_t installed; time_t last_generated; time_t last_sent; @@ -56,13 +57,13 @@ struct isis_lsp struct thread *t_lsp_top_ref; #endif /* used for 60 second counting when rem_lifetime is zero */ - int age_out; + int age_out; struct isis_adjacency *adj; - struct tlvs tlv_data; /* Simplifies TLV access */ + struct tlvs tlv_data; /* Simplifies TLV access */ }; dict_t *lsp_db_init (void); -void lsp_db_destroy (dict_t *lspdb); +void lsp_db_destroy (dict_t * lspdb); int lsp_tick (struct thread *thread); int lsp_l1_generate (struct isis_area *area); @@ -73,31 +74,31 @@ int lsp_regenerate_schedule (struct isis_area *area); int lsp_l1_pseudo_generate (struct isis_circuit *circuit); int lsp_l2_pseudo_generate (struct isis_circuit *circuit); -int lsp_l1_refresh_pseudo (struct thread *thread); -int lsp_l2_refresh_pseudo (struct thread *thread); +int lsp_l1_refresh_pseudo (struct thread *thread); +int lsp_l2_refresh_pseudo (struct thread *thread); int isis_lsp_authinfo_check (struct stream *stream, struct isis_area *area, - int pdulen, struct isis_passwd *passwd); -struct isis_lsp *lsp_new (u_char *lsp_id, u_int16_t rem_lifetime, - u_int32_t seq_num, u_int8_t lsp_bits, - u_int16_t checksum, int level); -struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream, - u_int16_t pdu_len, - struct isis_lsp *lsp0, - struct isis_area *area); -void lsp_insert (struct isis_lsp *lsp, dict_t *lspdb); -struct isis_lsp *lsp_search (u_char *id, dict_t *lspdb); + int pdulen, struct isis_passwd *passwd); +struct isis_lsp *lsp_new (u_char * lsp_id, u_int16_t rem_lifetime, + u_int32_t seq_num, u_int8_t lsp_bits, + u_int16_t checksum, int level); +struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream, + u_int16_t pdu_len, + struct isis_lsp *lsp0, + struct isis_area *area); +void lsp_insert (struct isis_lsp *lsp, dict_t * lspdb); +struct isis_lsp *lsp_search (u_char * id, dict_t * lspdb); -void lsp_build_list (u_char *start_id, u_char *stop_id, - struct list *list, dict_t *lspdb); -void lsp_build_list_nonzero_ht (u_char *start_id, u_char *stop_id, - struct list *list, dict_t *lspdb); -void lsp_build_list_ssn (struct isis_circuit *circuit, struct list *list, - dict_t *lspdb); +void lsp_build_list (u_char * start_id, u_char * stop_id, + struct list *list, dict_t * lspdb); +void lsp_build_list_nonzero_ht (u_char * start_id, u_char * stop_id, + struct list *list, dict_t * lspdb); +void lsp_build_list_ssn (struct isis_circuit *circuit, struct list *list, + dict_t * lspdb); -void lsp_search_and_destroy (u_char *id, dict_t *lspdb); -void lsp_purge_dr (u_char *id, struct isis_circuit *circuit, int level); -void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr, - struct isis_area *area); +void lsp_search_and_destroy (u_char * id, dict_t * lspdb); +void lsp_purge_dr (u_char * id, struct isis_circuit *circuit, int level); +void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr, + struct isis_area *area); #define LSP_EQUAL 1 #define LSP_NEWER 2 @@ -109,24 +110,24 @@ void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr, memcpy ((I), isis->sysid, ISIS_SYS_ID_LEN);\ (I)[ISIS_SYS_ID_LEN] = 0;\ (I)[ISIS_SYS_ID_LEN + 1] = 0 -int lsp_id_cmp (u_char *id1, u_char *id2); -int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num, - u_int16_t checksum, u_int16_t rem_lifetime); +int lsp_id_cmp (u_char * id1, u_char * id2); +int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num, + u_int16_t checksum, u_int16_t rem_lifetime); void lsp_update (struct isis_lsp *lsp, struct isis_link_state_hdr *lsp_hdr, - struct stream *stream, struct isis_area *area); + struct stream *stream, struct isis_area *area); void lsp_inc_seqnum (struct isis_lsp *lsp, u_int32_t seq_num); -int lsp_print_all (struct vty *vty, dict_t *lspdb, char detail, char dynhost); +int lsp_print_all (struct vty *vty, dict_t * lspdb, char detail, + char dynhost); char *lsp_bits2string (u_char *); /* staticly assigned vars for printing purposes */ -char lsp_bits_string[200]; /* FIXME: enough ? */ +char lsp_bits_string[200]; /* FIXME: enough ? */ #ifdef TOPOLOGY_GENERATE void generate_topology_lsps (struct isis_area *area); void remove_topology_lsps (struct isis_area *area); void build_topology_lsp_data (struct isis_lsp *lsp, - struct isis_area *area, int lsp_top_num); + struct isis_area *area, int lsp_top_num); #endif /* TOPOLOGY_GENERATE */ #endif /* ISIS_LSP */ - |