]> git.proxmox.com Git - mirror_frr.git/blobdiff - eigrpd/eigrp_siaquery.c
*: reindent
[mirror_frr.git] / eigrpd / eigrp_siaquery.c
index d521a57baf6c2b1827615da56c15ddfa815b5a9c..f16f49a3305ece827a967d3b6b44f9711ef99fef 100644 (file)
 #include "eigrpd/eigrp_memory.h"
 
 /*EIGRP SIA-QUERY read function*/
-void
-eigrp_siaquery_receive (struct eigrp *eigrp, struct ip *iph, struct eigrp_header *eigrph,
-                        struct stream * s, struct eigrp_interface *ei, int size)
+void eigrp_siaquery_receive(struct eigrp *eigrp, struct ip *iph,
+                           struct eigrp_header *eigrph, struct stream *s,
+                           struct eigrp_interface *ei, int size)
 {
-  struct eigrp_neighbor *nbr;
-  struct TLV_IPv4_Internal_type *tlv;
-
-  u_int16_t type;
-
-  /* increment statistics. */
-  ei->siaQuery_in++;
-
-  /* get neighbor struct */
-  nbr = eigrp_nbr_get(ei, eigrph, iph);
-
-  /* neighbor must be valid, eigrp_nbr_get creates if none existed */
-  assert(nbr);
-
-  nbr->recv_sequence_number = ntohl(eigrph->sequence);
-
-  while (s->endp > s->getp)
-    {
-      type = stream_getw(s);
-      if (type == EIGRP_TLV_IPv4_INT)
-        {
-         struct prefix_ipv4 dest_addr;
-
-          stream_set_getp(s, s->getp - sizeof(u_int16_t));
-
-          tlv = eigrp_read_ipv4_tlv(s);
-
-          dest_addr.family = AFI_IP;
-          dest_addr.prefix = tlv->destination;
-          dest_addr.prefixlen = tlv->prefix_length;
-          struct eigrp_prefix_entry *dest =
-            eigrp_topology_table_lookup_ipv4(eigrp->topology_table, &dest_addr);
-
-          /* If the destination exists (it should, but one never know)*/
-          if (dest != NULL)
-            {
-              struct eigrp_fsm_action_message *msg;
-              msg = XCALLOC(MTYPE_EIGRP_FSM_MSG,
-                            sizeof(struct eigrp_fsm_action_message));
-              struct eigrp_neighbor_entry *entry =
-                eigrp_prefix_entry_lookup(dest->entries, nbr);
-              msg->packet_type = EIGRP_OPC_SIAQUERY;
-              msg->eigrp = eigrp;
-              msg->data_type = EIGRP_TLV_IPv4_INT;
-              msg->adv_router = nbr;
-              msg->data.ipv4_int_type = tlv;
-              msg->entry = entry;
-              msg->prefix = dest;
-              int event = eigrp_get_fsm_event(msg);
-              eigrp_fsm_event(msg, event);
-            }
-          eigrp_IPv4_InternalTLV_free (tlv);
-        }
-    }
-  eigrp_hello_send_ack(nbr);
+       struct eigrp_neighbor *nbr;
+       struct TLV_IPv4_Internal_type *tlv;
+
+       u_int16_t type;
+
+       /* increment statistics. */
+       ei->siaQuery_in++;
+
+       /* get neighbor struct */
+       nbr = eigrp_nbr_get(ei, eigrph, iph);
+
+       /* neighbor must be valid, eigrp_nbr_get creates if none existed */
+       assert(nbr);
+
+       nbr->recv_sequence_number = ntohl(eigrph->sequence);
+
+       while (s->endp > s->getp) {
+               type = stream_getw(s);
+               if (type == EIGRP_TLV_IPv4_INT) {
+                       struct prefix_ipv4 dest_addr;
+
+                       stream_set_getp(s, s->getp - sizeof(u_int16_t));
+
+                       tlv = eigrp_read_ipv4_tlv(s);
+
+                       dest_addr.family = AFI_IP;
+                       dest_addr.prefix = tlv->destination;
+                       dest_addr.prefixlen = tlv->prefix_length;
+                       struct eigrp_prefix_entry *dest =
+                               eigrp_topology_table_lookup_ipv4(
+                                       eigrp->topology_table, &dest_addr);
+
+                       /* If the destination exists (it should, but one never
+                        * know)*/
+                       if (dest != NULL) {
+                               struct eigrp_fsm_action_message *msg;
+                               msg = XCALLOC(MTYPE_EIGRP_FSM_MSG,
+                                             sizeof(struct
+                                                    eigrp_fsm_action_message));
+                               struct eigrp_neighbor_entry *entry =
+                                       eigrp_prefix_entry_lookup(dest->entries,
+                                                                 nbr);
+                               msg->packet_type = EIGRP_OPC_SIAQUERY;
+                               msg->eigrp = eigrp;
+                               msg->data_type = EIGRP_TLV_IPv4_INT;
+                               msg->adv_router = nbr;
+                               msg->data.ipv4_int_type = tlv;
+                               msg->entry = entry;
+                               msg->prefix = dest;
+                               int event = eigrp_get_fsm_event(msg);
+                               eigrp_fsm_event(msg, event);
+                       }
+                       eigrp_IPv4_InternalTLV_free(tlv);
+               }
+       }
+       eigrp_hello_send_ack(nbr);
 }
 
-void
-eigrp_send_siaquery (struct eigrp_neighbor *nbr, struct eigrp_prefix_entry *pe)
+void eigrp_send_siaquery(struct eigrp_neighbor *nbr,
+                        struct eigrp_prefix_entry *pe)
 {
-  struct eigrp_packet *ep;
-  u_int16_t length = EIGRP_HEADER_LEN;
-
-  ep = eigrp_packet_new(nbr->ei->ifp->mtu);
-
-  /* Prepare EIGRP INIT UPDATE header */
-  eigrp_packet_header_init(EIGRP_OPC_SIAQUERY, nbr->ei, ep->s, 0,
-                           nbr->ei->eigrp->sequence_number, 0);
-
-  // encode Authentication TLV, if needed
-  if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
-     (IF_DEF_PARAMS (nbr->ei->ifp)->auth_keychain != NULL))
-    {
-      length += eigrp_add_authTLV_MD5_to_stream(ep->s,nbr->ei);
-    }
-
-  length += eigrp_add_internalTLV_to_stream(ep->s, pe);
-
-  if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
-     (IF_DEF_PARAMS (nbr->ei->ifp)->auth_keychain != NULL))
-    {
-      eigrp_make_md5_digest(nbr->ei,ep->s, EIGRP_AUTH_UPDATE_FLAG);
-    }
-
-  /* EIGRP Checksum */
-  eigrp_packet_checksum(nbr->ei, ep->s, length);
-
-  ep->length = length;
-  ep->dst.s_addr = nbr->src.s_addr;
-
-  /*This ack number we await from neighbor*/
-  ep->sequence_number = nbr->ei->eigrp->sequence_number;
-
-  if (nbr->state == EIGRP_NEIGHBOR_UP)
-    {
-      /*Put packet to retransmission queue*/
-      eigrp_fifo_push_head(nbr->retrans_queue, ep);
-
-      if (nbr->retrans_queue->count == 1)
-        {
-          eigrp_send_packet_reliably(nbr);
-        }
-    }
-  else
-    eigrp_packet_free(ep);
+       struct eigrp_packet *ep;
+       u_int16_t length = EIGRP_HEADER_LEN;
+
+       ep = eigrp_packet_new(nbr->ei->ifp->mtu);
+
+       /* Prepare EIGRP INIT UPDATE header */
+       eigrp_packet_header_init(EIGRP_OPC_SIAQUERY, nbr->ei, ep->s, 0,
+                                nbr->ei->eigrp->sequence_number, 0);
+
+       // encode Authentication TLV, if needed
+       if ((IF_DEF_PARAMS(nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
+           && (IF_DEF_PARAMS(nbr->ei->ifp)->auth_keychain != NULL)) {
+               length += eigrp_add_authTLV_MD5_to_stream(ep->s, nbr->ei);
+       }
+
+       length += eigrp_add_internalTLV_to_stream(ep->s, pe);
+
+       if ((IF_DEF_PARAMS(nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
+           && (IF_DEF_PARAMS(nbr->ei->ifp)->auth_keychain != NULL)) {
+               eigrp_make_md5_digest(nbr->ei, ep->s, EIGRP_AUTH_UPDATE_FLAG);
+       }
+
+       /* EIGRP Checksum */
+       eigrp_packet_checksum(nbr->ei, ep->s, length);
+
+       ep->length = length;
+       ep->dst.s_addr = nbr->src.s_addr;
+
+       /*This ack number we await from neighbor*/
+       ep->sequence_number = nbr->ei->eigrp->sequence_number;
+
+       if (nbr->state == EIGRP_NEIGHBOR_UP) {
+               /*Put packet to retransmission queue*/
+               eigrp_fifo_push_head(nbr->retrans_queue, ep);
+
+               if (nbr->retrans_queue->count == 1) {
+                       eigrp_send_packet_reliably(nbr);
+               }
+       } else
+               eigrp_packet_free(ep);
 }