INFOCOM
DEPARTMENT

 


 

OPTIMIZATION IN THE SHORTEST PATH FIRST COMPUTATION

FOR THE QUAGGA SOFTWARE ROUTING
 V. Eramo, M. Listanti, G. Gasparro, A. Cianfrani
University of Roma “La Sapienza”, INFOCOM Dept.
Via Eudossiana, 18 – 00184 Roma, Italy
Tel: +39 6 44585458; Fax: +39 6 4744481
E-mail: eramo@infocom.uniroma1.it

 


 

struct ospf_lsa *
ospf_lsa_lookup_by_id (struct ospf_area *area, u_int32_t type,
                                       struct in_addr id)
{
  struct ospf_lsa *lsa;
  struct route_node *rn;

  struct route_node *table;
  struct prefix_ls lp;
  switch (type)
    {
    case OSPF_ROUTER_LSA:
      return ospf_lsdb_lookup_by_id (area->lsdb, type, id, id);
      break;
   
case OSPF_NETWORK_LSA:
        table=area->lsdb->type[type].db;

        memset (&lp, 0, sizeof (struct prefix_ls));
        lp.family = 0;
        lp.prefixlen = 32;
        lp.id = id;
        lp.adv_router = id;
/*  not used */
         /* lookup partial (table,prefix,length) looks for an LSA with a prefix that must be

              length bit long and must begin with prefix*/
         rn = route_node_lookup_partial (table, (struct prefix *) &lp, 64);

        if (rn)
          {
          lsa = rn->info;
          route_unlock_node (rn);
          return lsa;
          }
        return NULL;
      break;
  
    [ ... ]
}

Figure 10. New version of the “ospf_lsa_lookup_by-id()” function in patchquagga 0.97.3

 

       
Via Cavour 256, 00184, Roma (Italy) - Phone: +39 0647852300  Fax: +39 064744481

 

 

BACK