/* ospf_msg.h: Header file for OSPF message sub-package. */

/* Prevent multiple includes. */
#ifndef			HEADER_FILE_ospf_msg_h

#define			HEADER_FILE_ospf_msg_h

/***** Procedure Declarations *****/
Packet *				ospf_message_hello_create (OspfT_Interface *interface_ptr);
Packet *				ospf_message_dbase_desc_create (OspfT_Neighbor *neighbor_ptr, int flags);
Packet *				ospf_message_lsr_create (OspfT_Neighbor *neighbor_ptr);
Packet *				ospf_message_lsu_create (OspfT_Neighbor *neighbor_ptr);
Packet *				ospf_message_lsack_create (OspfT_Neighbor *neighbor_ptr);
void					ospf_message_header_init (Packet *message_ptr, OspfT_Router_Id router_id, OspfT_Area_Id area_id);
void					ospf_message_ls_request_add (Packet *ospf_message_ptr, OspfT_Lsa_Header *lsa_header_ptr);
void					ospf_message_lsa_header_add (Packet *ospf_message_ptr, OspfT_Lsa_Header *lsa_header_ptr);
void					ospf_message_lsa_add (Packet *ospf_message_ptr, OspfT_Lsa *lsa_ptr);
void					ospf_message_lsa_router_links_add (Packet *ospf_message_ptr, OspfT_Lsa_Router_Links *router_links_ptr);
void					ospf_message_lsa_network_links_add (Packet *ospf_message_ptr, OspfT_Lsa_Network_Links *network_links_ptr);
void					ospf_message_lsa_summary_links_add (Packet *ospf_message_ptr, OspfT_Lsa_Summary_Links *summary_links_ptr);
List *					ospf_message_lsa_list_get (Packet *ospf_message_ptr);
OspfT_Lsa *				ospf_message_lsa_get (Packet *ospf_message_ptr, int last_fd_index, int *num_lsa_fields_ptr);
void					ospf_message_lsa_router_links_get (Packet *ospf_message_ptr, OspfT_Lsa *lsa_ptr, int last_fd_index, int *num_lsa_fields_ptr);
void					ospf_message_lsa_network_links_get (Packet *ospf_message_ptr, OspfT_Lsa *lsa_ptr, int last_fd_index, int *num_lsa_fields_ptr);
void					ospf_message_lsa_summary_links_get (Packet *ospf_message_ptr, OspfT_Lsa *lsa_ptr, int last_fd_index, int *num_lsa_fields_ptr);
List *					ospf_message_lsa_header_list_get (Packet *ospf_message_ptr);
OspfT_Lsa_Header *		ospf_message_lsa_header_get (Packet *ospf_message_ptr, int last_fd_index);
int						ospf_message_type_get (Packet *ospf_message_ptr, char *type_str);
List *					ospf_message_hello_nbr_list_get (Packet *hello_message_ptr);

#endif
