]> git.proxmox.com Git - mirror_frr.git/blobdiff - eigrpd/eigrp_packet.h
zebra: Allow ns delete to happen after under/over flow checks
[mirror_frr.git] / eigrpd / eigrp_packet.h
index 2f607e5cabbcadb182fdaaf879f2205ddb240636..f354615fdb5f94cdd9ad91ab80307b6a575b4fe3 100644 (file)
 extern int eigrp_read(struct thread *);
 extern int eigrp_write(struct thread *);
 
-extern struct eigrp_packet *eigrp_packet_new(size_t);
+extern struct eigrp_packet *eigrp_packet_new(size_t, struct eigrp_neighbor *);
 extern struct eigrp_packet *eigrp_packet_duplicate(struct eigrp_packet *,
                                                   struct eigrp_neighbor *);
 extern void eigrp_packet_free(struct eigrp_packet *);
 extern void eigrp_packet_delete(struct eigrp_interface *);
-extern void eigrp_packet_header_init(int, struct eigrp_interface *,
-                                    struct stream *, u_int32_t, u_int32_t,
-                                    u_int32_t);
+extern void eigrp_packet_header_init(int, struct eigrp *, struct stream *,
+                                    uint32_t, uint32_t, uint32_t);
 extern void eigrp_packet_checksum(struct eigrp_interface *, struct stream *,
-                                 u_int16_t);
+                                 uint16_t);
 
 extern struct eigrp_fifo *eigrp_fifo_new(void);
-extern struct eigrp_packet *eigrp_fifo_head(struct eigrp_fifo *);
-extern struct eigrp_packet *eigrp_fifo_tail(struct eigrp_fifo *);
+extern struct eigrp_packet *eigrp_fifo_next(struct eigrp_fifo *);
 extern struct eigrp_packet *eigrp_fifo_pop(struct eigrp_fifo *);
-extern struct eigrp_packet *eigrp_fifo_pop_tail(struct eigrp_fifo *);
-extern void eigrp_fifo_push_head(struct eigrp_fifo *, struct eigrp_packet *);
+extern void eigrp_fifo_push(struct eigrp_fifo *, struct eigrp_packet *);
 extern void eigrp_fifo_free(struct eigrp_fifo *);
 extern void eigrp_fifo_reset(struct eigrp_fifo *);
 
 extern void eigrp_send_packet_reliably(struct eigrp_neighbor *);
 
 extern struct TLV_IPv4_Internal_type *eigrp_read_ipv4_tlv(struct stream *);
-extern u_int16_t eigrp_add_internalTLV_to_stream(struct stream *,
-                                                struct eigrp_prefix_entry *);
-extern u_int16_t eigrp_add_authTLV_MD5_to_stream(struct stream *,
-                                                struct eigrp_interface *);
-extern u_int16_t eigrp_add_authTLV_SHA256_to_stream(struct stream *,
-                                                   struct eigrp_interface *);
+extern uint16_t eigrp_add_internalTLV_to_stream(struct stream *,
+                                               struct eigrp_prefix_entry *);
+extern uint16_t eigrp_add_authTLV_MD5_to_stream(struct stream *,
+                                               struct eigrp_interface *);
+extern uint16_t eigrp_add_authTLV_SHA256_to_stream(struct stream *,
+                                                  struct eigrp_interface *);
 
 extern int eigrp_unack_packet_retrans(struct thread *);
 extern int eigrp_unack_multicast_packet_retrans(struct thread *);
@@ -73,7 +70,8 @@ extern int eigrp_unack_multicast_packet_retrans(struct thread *);
  * untill there is reason to have their own header, these externs are found in
  * eigrp_hello.c
  */
-extern void eigrp_hello_send(struct eigrp_interface *, u_char,
+extern void eigrp_sw_version_initialize(void);
+extern void eigrp_hello_send(struct eigrp_interface *, uint8_t,
                             struct in_addr *);
 extern void eigrp_hello_send_ack(struct eigrp_neighbor *);
 extern void eigrp_hello_receive(struct eigrp *, struct ip *,
@@ -84,6 +82,9 @@ extern int eigrp_hello_timer(struct thread *);
 /*
  * These externs are found in eigrp_update.c
  */
+extern bool eigrp_update_prefix_apply(struct eigrp *eigrp,
+                                     struct eigrp_interface *ei, int in,
+                                     struct prefix *prefix);
 extern void eigrp_update_send(struct eigrp_interface *);
 extern void eigrp_update_receive(struct eigrp *, struct ip *,
                                 struct eigrp_header *, struct stream *,
@@ -107,7 +108,7 @@ extern void eigrp_send_query(struct eigrp_interface *);
 extern void eigrp_query_receive(struct eigrp *, struct ip *,
                                struct eigrp_header *, struct stream *,
                                struct eigrp_interface *, int);
-extern u_int32_t eigrp_query_send_all(struct eigrp *);
+extern uint32_t eigrp_query_send_all(struct eigrp *);
 
 /*
  * These externs are found in eigrp_reply.c
@@ -142,18 +143,17 @@ extern struct TLV_SHA256_Authentication_Type *eigrp_authTLV_SHA256_new(void);
 extern void eigrp_authTLV_SHA256_free(struct TLV_SHA256_Authentication_Type *);
 
 extern int eigrp_make_md5_digest(struct eigrp_interface *, struct stream *,
-                                u_char);
+                                uint8_t);
 extern int eigrp_check_md5_digest(struct stream *,
                                  struct TLV_MD5_Authentication_Type *,
-                                 struct eigrp_neighbor *, u_char);
+                                 struct eigrp_neighbor *, uint8_t);
 extern int eigrp_make_sha256_digest(struct eigrp_interface *, struct stream *,
-                                   u_char);
+                                   uint8_t);
 extern int eigrp_check_sha256_digest(struct stream *,
                                     struct TLV_SHA256_Authentication_Type *,
-                                    struct eigrp_neighbor *, u_char);
+                                    struct eigrp_neighbor *, uint8_t);
 
 
-extern struct TLV_IPv4_Internal_type *eigrp_IPv4_InternalTLV_new(void);
 extern void eigrp_IPv4_InternalTLV_free(struct TLV_IPv4_Internal_type *);
 
 extern struct TLV_Sequence_Type *eigrp_SequenceTLV_new(void);