freebsd-nq/sys/netatalk
Luigi Rizzo cd46a114fc 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)
2004-04-25 09:24:52 +00:00
..
aarp.c This commit does two things: 2004-04-25 09:24:52 +00:00
aarp.h
at_control.c Rename 'at_ifaddr' list to 'at_ifaddr_list' so that the variable is 2004-03-22 04:50:36 +00:00
at_extern.h This commit does two things: 2004-04-25 09:24:52 +00:00
at_proto.c
at_rmx.c Compare pointers with NULL rather than 0, or treating them as boolans in 2004-03-22 03:57:01 +00:00
at_var.h Rename 'at_ifaddr' list to 'at_ifaddr_list' so that the variable is 2004-03-22 04:50:36 +00:00
at.h
COPYRIGHT
ddp_input.c Rename 'at_ifaddr' list to 'at_ifaddr_list' so that the variable is 2004-03-22 04:50:36 +00:00
ddp_output.c Rename 'at_ifaddr' list to 'at_ifaddr_list' so that the variable is 2004-03-22 04:50:36 +00:00
ddp_pcb.c Rename 'ddpcb' variable to 'ddpcb_list' to better distinguish it from 2004-03-22 04:54:36 +00:00
ddp_pcb.h Isolate PCB-specific ethertalk DDP functions in ddp_pcb.c, removing them 2004-03-19 07:21:22 +00:00
ddp_usrreq.c Rename 'ddpcb' variable to 'ddpcb_list' to better distinguish it from 2004-03-22 04:54:36 +00:00
ddp_var.h Rename 'ddpcb' variable to 'ddpcb_list' to better distinguish it from 2004-03-22 04:54:36 +00:00
ddp.h
endian.h
phase2.h