Revision 061ab802 proto/ospf/rt.c

View differences:

proto/ospf/rt.c
312 312
	  nf.ar = act;
313 313
	  nf.nh = act->nh;
314 314
	  nf.ifa = act->nhi;
315
	  ri_install(po, ipa_from_rid(act->lsa.rt), 32, ORT_ROUTER, &nf, NULL);
315
	  ri_install(po, ipa_from_rid(act->lsa.rt), MAX_PREFIX_LENGTH, ORT_ROUTER, &nf, NULL);
316 316
	}
317 317

  
318 318
      rr = (struct ospf_lsa_rt_link *) (rt + 1);
......
582 582
#endif
583 583

  
584 584
      ip = ipa_from_rid(dst_rid);
585
      pxlen = 32;
585
      pxlen = MAX_PREFIX_LENGTH;
586 586
      metric = ls->metric & METRIC_MASK;
587 587
      options |= ORTA_ASBR;
588 588
      type = ORT_ROUTER;
......
595 595

  
596 596
    abrip = ipa_from_rid(en->lsa.rt);
597 597

  
598
    abr = fib_find(&oa->rtr, &abrip, 32);
598
    abr = fib_find(&oa->rtr, &abrip, MAX_PREFIX_LENGTH);
599 599
    if (!abr) continue;
600 600

  
601 601
    nf.type = re->n.type;
......
691 691
#endif
692 692

  
693 693
      ip = ipa_from_rid(dst_rid);
694
      pxlen = 32;
694
      pxlen = MAX_PREFIX_LENGTH;
695 695
      metric = ls->metric & METRIC_MASK;
696 696
      options |= ORTA_ASBR;
697 697
      type = ORT_ROUTER;
......
703 703

  
704 704
    /* Page 169 (4) */
705 705
    abrip = ipa_from_rid(en->lsa.rt);
706
    if (!(abr = (ort *) fib_find(&oa->rtr, &abrip, 32))) continue;
706
    if (!(abr = (ort *) fib_find(&oa->rtr, &abrip, MAX_PREFIX_LENGTH))) continue;
707 707
    if (abr->n.metric1 == LSINFINITY) continue;
708 708
    if (!(abr->n.options & ORTA_ABR)) continue;
709 709

  
......
891 891
    nf1 = NULL;
892 892
    WALK_LIST(atmp, po->area_list)
893 893
    {
894
      nfh = fib_find(&atmp->rtr, &rtid, 32);
894
      nfh = fib_find(&atmp->rtr, &rtid, MAX_PREFIX_LENGTH);
895 895
      if (nfh == NULL) continue;
896 896
      if (nf1 == NULL) nf1 = nfh;
897 897
      else if (ri_better(po, &nfh->n, NULL, &nf1->n, NULL, po->rfc1583)) nf1 = nfh;
......
915 915
    }
916 916
    else
917 917
    {
918
      nf2 = fib_route(&po->rtf, rt_fwaddr, 32);
918
      nf2 = fib_route(&po->rtf, rt_fwaddr, MAX_PREFIX_LENGTH);
919 919

  
920 920
      if (!nf2)
921 921
      {
......
923 923
	continue;
924 924
      }
925 925

  
926

  
927 926
      if ((nn = neigh_find(p, &rt_fwaddr, 0)) != NULL)
928 927
      {
929 928
	nh = rt_fwaddr;
......
1179 1178
        int found = 0;
1180 1179
        struct ospf_iface *ifa;
1181 1180
        struct top_hash_entry *en;
1182
        OSPF_TRACE(D_EVENTS, "Trying to find correct next hop");
1181
        OSPF_TRACE(D_EVENTS, "Trying to find correct next hop %I/%d via %I", nf->fn.prefix, nf->fn.pxlen, nf->n.nh);
1183 1182
        WALK_LIST(ifa, po->iface_list)
1184 1183
        {
1185 1184
          if ((ifa->type == OSPF_IT_VLINK) && ipa_equal(ifa->vip, nf->n.nh))

Also available in: Unified diff