components/quagga/patches/25-nortexch.patch
author Brian Utterback <brian.utterback@oracle.com>
Fri, 03 Mar 2017 10:53:19 -0800
branchs11u3-sru
changeset 7930 23b55980914d
permissions -rw-r--r--
17883152 Need to control if network interface will be visible from Quagga or not.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7930
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     1
This fix is from work in progress by the Quagga community Solaris maintainer.
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     2
It does not have a specific bug but will eventually be incorporated in the
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     3
main branch.
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     4
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     5
*** lib/if.c
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     6
--- lib/if.c
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     7
*************** if_is_running (struct interface *ifp)
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     8
*** 341,346 ****
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     9
--- 341,361 ----
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    10
  int
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    11
  if_is_operative (struct interface *ifp)
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    12
  {
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    13
+ #ifdef SUNOS_5
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    14
+   /* Administrators on Solaris can set IFF_NORTEXCH on interfaces to
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    15
+    * indicate they should not be touched by routing protocols.  This can be
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    16
+    * configured with, e.g.
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    17
+    *
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    18
+    *   ipadm set-ifprop -p exchange_route=off 
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    19
+    *
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    20
+    * Honour this by simply considering IFF_NORTEXCH interfaces as
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    21
+    * inoperative for general purposes of Quagga code.  zebra will withdraw
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    22
+    * interface/addresses that go IFF_NORTEXCH from Quagga clients.
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    23
+    */
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    24
+   if (ifp->flags & IFF_NORTEXCH)
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    25
+     return 0;
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    26
+ #endif /* SUNOS_5 */
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    27
+ 
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    28
    return ((ifp->flags & IFF_UP) &&
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    29
  	  (ifp->flags & IFF_RUNNING || !CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)));
23b55980914d 17883152 Need to control if network interface will be visible from Quagga or not.
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    30
  }