Diff for /embedaddon/quagga/isisd/isis_lsp.h between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 17:26:11 version 1.1.1.2, 2012/10/09 09:22:28
Line 24 Line 24
 #ifndef _ZEBRA_ISIS_LSP_H  #ifndef _ZEBRA_ISIS_LSP_H
 #define _ZEBRA_ISIS_LSP_H  #define _ZEBRA_ISIS_LSP_H
   
 /* 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 */  
   
 /* Structure for isis_lsp, this structure will only support the fixed  /* Structure for isis_lsp, this structure will only support the fixed
  * System ID (Currently 6) (atleast for now). In order to support more   * System ID (Currently 6) (atleast for now). In order to support more
  * We will have to split the header into two parts, and for readability   * We will have to split the header into two parts, and for readability
Line 42  struct isis_lsp Line 38  struct isis_lsp
     struct list *frags;      struct list *frags;
     struct isis_lsp *zero_lsp;      struct isis_lsp *zero_lsp;
   } lspu;    } lspu;
     u_int32_t auth_tlv_offset;    /* authentication TLV position in the pdu */
   u_int32_t SRMflags[ISIS_MAX_CIRCUITS];    u_int32_t SRMflags[ISIS_MAX_CIRCUITS];
   u_int32_t SSNflags[ISIS_MAX_CIRCUITS];    u_int32_t SSNflags[ISIS_MAX_CIRCUITS];
   u_int32_t rexmit_queue[ISIS_MAX_CIRCUITS];  
   int level;                    /* L1 or L2? */    int level;                    /* L1 or L2? */
   int purged;                   /* have purged this one */  
   int scheduled;                /* scheduled for sending */    int scheduled;                /* scheduled for sending */
   time_t installed;    time_t installed;
   time_t last_generated;    time_t last_generated;
   time_t last_sent;  
   int own_lsp;    int own_lsp;
 #ifdef TOPOLOGY_GENERATE  #ifdef TOPOLOGY_GENERATE
   int from_topology;    int from_topology;
Line 58  struct isis_lsp Line 52  struct isis_lsp
 #endif  #endif
   /* used for 60 second counting when rem_lifetime is zero */    /* used for 60 second counting when rem_lifetime is zero */
   int age_out;    int age_out;
   struct isis_adjacency *adj;  
   /* FIXME: For now only topology LSP's use this. Is it helpful for others? */  
   struct isis_area *area;    struct isis_area *area;
   struct tlvs tlv_data;         /* Simplifies TLV access */    struct tlvs tlv_data;         /* Simplifies TLV access */
 };  };
Line 68  dict_t *lsp_db_init (void); Line 60  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_tick (struct thread *thread);
   
int lsp_l1_generate (struct isis_area *area);int lsp_generate (struct isis_area *area, int level);
int lsp_l2_generate (struct isis_area *area);int lsp_regenerate_schedule (struct isis_area *area, int level,
int lsp_refresh_l1 (struct thread *thread);                             int all_pseudo);
int lsp_refresh_l2 (struct thread *thread);int lsp_generate_pseudo (struct isis_circuit *circuit, int level);
int lsp_regenerate_schedule (struct isis_area *area);int lsp_regenerate_schedule_pseudo (struct isis_circuit *circuit, int level);
   
 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 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,  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_int32_t seq_num, u_int8_t lsp_bits,
                           u_int16_t checksum, int level);                            u_int16_t checksum, int level);
 struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream,  struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream,
                                           u_int16_t pdu_len,                                            u_int16_t pdu_len,
                                           struct isis_lsp *lsp0,                                            struct isis_lsp *lsp0,
                                          struct isis_area *area);                                          struct isis_area *area,
                                           int level);
 void lsp_insert (struct isis_lsp *lsp, dict_t * lspdb);  void lsp_insert (struct isis_lsp *lsp, dict_t * lspdb);
 struct isis_lsp *lsp_search (u_char * id, 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,void lsp_build_list (u_char * start_id, u_char * stop_id, u_char num_lsps,
                      struct list *list, dict_t * lspdb);                       struct list *list, dict_t * lspdb);
 void lsp_build_list_nonzero_ht (u_char * start_id, u_char * stop_id,  void lsp_build_list_nonzero_ht (u_char * start_id, u_char * stop_id,
                                 struct list *list, dict_t * lspdb);                                  struct list *list, dict_t * lspdb);
void lsp_build_list_ssn (struct isis_circuit *circuit, struct list *list,void lsp_build_list_ssn (struct isis_circuit *circuit, u_char num_lsps,
                         dict_t * lspdb);                         struct list *list, dict_t * lspdb);
   
 void lsp_search_and_destroy (u_char * id, 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_pseudo (u_char * id, struct isis_circuit *circuit, int level);
 void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,  void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
                           struct isis_area *area);                            struct isis_area *area);
   
Line 115  void lsp_purge_non_exist (struct isis_link_state_hdr * Line 102  void lsp_purge_non_exist (struct isis_link_state_hdr *
 int lsp_id_cmp (u_char * id1, u_char * id2);  int lsp_id_cmp (u_char * id1, u_char * id2);
 int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num,  int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num,
                  u_int16_t checksum, u_int16_t rem_lifetime);                   u_int16_t checksum, u_int16_t rem_lifetime);
void lsp_update (struct isis_lsp *lsp, struct isis_link_state_hdr *lsp_hdr,void lsp_update (struct isis_lsp *lsp, struct stream *stream,
                 struct stream *stream, struct isis_area *area, int level);                 struct isis_area *area, int level);
 void lsp_inc_seqnum (struct isis_lsp *lsp, u_int32_t seq_num);  void lsp_inc_seqnum (struct isis_lsp *lsp, u_int32_t seq_num);
   void lsp_print (struct isis_lsp *lsp, struct vty *vty, char dynhost);
   void lsp_print_detail (struct isis_lsp *lsp, struct vty *vty, char dynhost);
 int lsp_print_all (struct vty *vty, dict_t * lspdb, char detail,  int lsp_print_all (struct vty *vty, dict_t * lspdb, char detail,
                    char dynhost);                     char dynhost);
 const char *lsp_bits2string (u_char *);  const char *lsp_bits2string (u_char *);
   
   /* sets SRMflags for all active circuits of an lsp */
   void lsp_set_all_srmflags (struct isis_lsp *lsp);
   
 #ifdef TOPOLOGY_GENERATE  #ifdef TOPOLOGY_GENERATE
 void generate_topology_lsps (struct isis_area *area);  void generate_topology_lsps (struct isis_area *area);

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>