Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Apr 2004 02:24:52 -0700 (PDT)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/net if_arcsubr.c if_atmsubr.c if_ethersubr.c if_fddisubr.c if_iso88025subr.c src/sys/netatalk aarp.c at_extern.h src/sys/netinet if_ether.c src/sys/netinet6 nd6.c
Message-ID:  <200404250924.i3P9OqSJ094109@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
luigi       2004/04/25 02:24:52 PDT

  FreeBSD src repository

  Modified files:
    sys/net              if_arcsubr.c if_atmsubr.c if_ethersubr.c 
                         if_fddisubr.c if_iso88025subr.c 
    sys/netatalk         aarp.c at_extern.h 
    sys/netinet          if_ether.c 
    sys/netinet6         nd6.c 
  Log:
  This commit does two things:
  
  1. rt_check() cleanup:
      rt_check() is only necessary for some address families to gain access
      to the corresponding arp entry, so call it only in/near the *resolve()
      routines where it is actually used -- at the moment this is
      arpresolve(), nd6_storelladdr() (the call is embedded here),
      and atmresolve() (the call is just before atmresolve to reduce
      the number of changes).
      This change will make it a lot easier to decouple the arp table
      from the routing table.
  
      There is an extra call to rt_check() in if_iso88025subr.c to
      determine the routing info length. I have left it alone for
      the time being.
  
      The interface of arpresolve() and nd6_storelladdr() now changes slightly:
       + the 'rtentry' parameter (really a hint from the upper level layer)
         is now passed unchanged from *_output(), so it becomes the route
         to the final destination and not to the gateway.
       + the routines will return 0 if resolution is possible, non-zero
         otherwise.
       + arpresolve() returns EWOULDBLOCK in case the mbuf is being held
         waiting for an arp reply -- in this case the error code is masked
         in the caller so the upper layer protocol will not see a failure.
  
  2. arpcom untangling
      Where possible, use 'struct ifnet' instead of 'struct arpcom' variables,
      and use the IFP2AC macro to access arpcom fields.
      This mostly affects the netatalk code.
  
  === Detailed changes: ===
  net/if_arcsubr.c
     rt_check() cleanup, remove a useless variable
  
  net/if_atmsubr.c
     rt_check() cleanup
  
  net/if_ethersubr.c
     rt_check() cleanup, arpcom untangling
  
  net/if_fddisubr.c
     rt_check() cleanup, arpcom untangling
  
  net/if_iso88025subr.c
     rt_check() cleanup
  
  netatalk/aarp.c
     arpcom untangling, remove a block of duplicated code
  
  netatalk/at_extern.h
     arpcom untangling
  
  netinet/if_ether.c
     rt_check() cleanup (change arpresolve)
  
  netinet6/nd6.c
     rt_check() cleanup (change nd6_storelladdr)
  
  Revision  Changes    Path
  1.20      +8 -16     src/sys/net/if_arcsubr.c
  1.35      +10 -8     src/sys/net/if_atmsubr.c
  1.169     +10 -18    src/sys/net/if_ethersubr.c
  1.94      +7 -12     src/sys/net/if_fddisubr.c
  1.64      +8 -7      src/sys/net/if_iso88025subr.c
  1.31      +33 -36    src/sys/netatalk/aarp.c
  1.14      +1 -1      src/sys/netatalk/at_extern.h
  1.124     +28 -7     src/sys/netinet/if_ether.c
  1.42      +13 -6     src/sys/netinet6/nd6.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404250924.i3P9OqSJ094109>