components/quagga/patches/25-nortexch.patch
branchs11u3-sru
changeset 7930 23b55980914d
equal deleted inserted replaced
7929:27eab5dcdc0b 7930:23b55980914d
       
     1 This fix is from work in progress by the Quagga community Solaris maintainer.
       
     2 It does not have a specific bug but will eventually be incorporated in the
       
     3 main branch.
       
     4 
       
     5 *** lib/if.c
       
     6 --- lib/if.c
       
     7 *************** if_is_running (struct interface *ifp)
       
     8 *** 341,346 ****
       
     9 --- 341,361 ----
       
    10   int
       
    11   if_is_operative (struct interface *ifp)
       
    12   {
       
    13 + #ifdef SUNOS_5
       
    14 +   /* Administrators on Solaris can set IFF_NORTEXCH on interfaces to
       
    15 +    * indicate they should not be touched by routing protocols.  This can be
       
    16 +    * configured with, e.g.
       
    17 +    *
       
    18 +    *   ipadm set-ifprop -p exchange_route=off 
       
    19 +    *
       
    20 +    * Honour this by simply considering IFF_NORTEXCH interfaces as
       
    21 +    * inoperative for general purposes of Quagga code.  zebra will withdraw
       
    22 +    * interface/addresses that go IFF_NORTEXCH from Quagga clients.
       
    23 +    */
       
    24 +   if (ifp->flags & IFF_NORTEXCH)
       
    25 +     return 0;
       
    26 + #endif /* SUNOS_5 */
       
    27 + 
       
    28     return ((ifp->flags & IFF_UP) &&
       
    29   	  (ifp->flags & IFF_RUNNING || !CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)));
       
    30   }