Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       14 May 2004  20:54:40
 To : Gleb Smirnoff
 Subject : Re: RIPv2 на P2P
 -------------------------------------------------------------------------------- 
 
 
  EG>>>>>> А как различать unnumbered тогда?
  SO>>>>> Особое поведение OSPF на unnumbered расписанно в RFC. Про RIP2 --
  SO>>>>> понятия не имеею, RIP Hе держим.
  EG>>>> RWR не умеют ospf.
  SO>>> Я тебе ничего не предлагал. Я просто изложил известные мне факты.
  EG>> Ты бы лучше сказал, как RIPv2 на gif побороть :-)
  EG>> Что мне с того, что у OSPF все жужжит?
  GS> У меня вот zebra не хочет делать OSPF на ng. (который является p2p).
  GS> Чувствую когда прижмет, придется в исходники лезть.
 
 Вот с этим патчем у меня завелся RIPv2 на gif наконец-то.
 Hо патч грязный, потому то абсолютно неоптимальный (жутко тормозной),
 а кроме того вполне вероятно, что некорректный (не уверен,
 что in_ifaddrhmask всегда равен длине массива in_ifaddrhashtbl минус 1).
 
 Как пройтись по списку интерфейсов хотя бы линейно?
 
 - --- sys/netinet/in_var.h.orig   Sat Dec 15 03:09:34 2001
 +++ sys/netinet/in_var.h  Fri May 14 20:42:09 2004
 @@ -117,6 +117,24 @@
    (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
  }
  
 +#define INADDR_TO_IFP_P2P(addr, ifp) \
 +  /* struct in_addr addr; */ \
 +  /* struct ifnet *ifp; */ \
 +{ \
 +  struct in_ifaddr *ia; \
 +  int ifah_ind; \
 +  int f = 1; \
 +\
 +  for (ifah_ind = 0; f && ifah_ind <= in_ifaddrhmask; ifah_ind++) \
 +     LIST_FOREACH(ia, &in_ifaddrhashtbl[ifah_ind], ia_hash) \
 +     if ((ia->ia_ifp->if_flags & IFF_POINTOPOINT) && \
 +      IA_DSTSIN(ia)->sin_addr.s_addr == (addr).s_addr) { \
 +         f = 0; \
 +         break; \
 +     } \
 +  (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
 +}
 +
  /*
   * Macro for finding the internet address structure (in_ifaddr) corresponding
   * to a given interface (ifnet structure).
 - --- sys/netinet/ip_output.c.orig Fri May 14 18:51:35 2004
 +++ sys/netinet/ip_output.c   Fri May 14 20:40:49 2004
 @@ -1785,6 +1785,9 @@
        *ifindexp = ifindex;
    } else {
       INADDR_TO_IFP(*a, ifp);
 +     if (ifp == NULL) {
 +      INADDR_TO_IFP_P2P(*a, ifp);
 +     }
    }
    return ifp;
  }
 
 Eugene
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: RIPv2 на P2P   Eugene Grosbein   14 May 2004 20:54:40 
Архивное /ru.unix.bsd/260934105aa99.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional