Home | History | Annotate | Download | only in netatalk
History log of /src/sys/netatalk/ddp_output.c
RevisionDateAuthorComments
 1.22  30-Mar-2023  riastradh atalk(4): Omit spurious satosat.

The input is already a struct sockaddr_at pointer.
 1.21  17-Feb-2018  rjs branches: 1.21.34;
Add NETATALKDEBUG to the option header and include that in the main source
files.
 1.20  08-Dec-2016  ozaki-r Add rtcache_unref to release points of rtentry stemming from rtcache

In the MP-safe world, a rtentry stemming from a rtcache can be freed at any
points. So we need to protect rtentries somehow say by reference couting or
passive references. Regardless of the method, we need to call some release
function of a rtentry after using it.

The change adds a new function rtcache_unref to release a rtentry. At this
point, this function does nothing because for now we don't add a reference
to a rtentry when we get one from a rtcache. We will add something useful
in a further commit.

This change is a part of changes for MP-safe routing table. It is separated
to avoid one big change that makes difficult to debug by bisecting.
 1.19  20-Jun-2016  knakahara branches: 1.19.2;
apply if_output_lock() to L3 callers which call ifp->if_output() of L2(or L3 tunneling).
 1.18  20-Jan-2016  riastradh Give proper prototype to ddp_output.
 1.17  12-Sep-2013  martin branches: 1.17.6;
Remove unused variable
 1.16  31-Jan-2012  hauke branches: 1.16.6; 1.16.10;
Fix AppleTalk name registration, as discussed on the port-macppc list
<http://mail-index.netbsd.org/port-macppc/2010/07/09/msg001119.html>
and in PR kern/44412, by looping back ddp broadcasts.

Patch submitted by David Riley against netbsd-5, adaptation for
-current and minor KNF touchup by me.

Needs to be pulled up to netbsd-5.
 1.15  17-Jul-2011  joerg branches: 1.15.2; 1.15.6;
Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.14  06-Apr-2008  dyoung branches: 1.14.14;
Fix a bug that I introduced in rev 1.11, when I left out an assignment
to ifp as I converted this code to use rtcache_getrt(). I have
high hopes that this will fix PR37916.
 1.13  14-Jan-2008  dyoung branches: 1.13.6;
Use rtcache_validate() instead of rtcache_getrt().
 1.12  20-Dec-2007  dyoung Poison struct route->ro_rt uses in the kernel by changing the name
to _ro_rt. Use rtcache_getrt() to access a route cache's struct
rtentry *.

Introduce struct ifnet->if_dl that always points at the interface
identifier/link-layer address. Make code that treated the first
ifaddr on struct ifnet->if_addrlist as the interface address use
if_dl, instead.

Remove stale debugging code from net/route.c. Move the rtflush()
code into rtcache_clear() and delete rtflush(). Delete rtalloc(),
because nothing uses it any more.

Make ND6_HINT an inline, lowercase subroutine, nd6_hint.

I've done my best to convert IP Filter, the ISO stack, and the
AppleTalk stack to rtcache_getrt(). They compile, but I have not
tested them. I have given the changes to PF, GRE, IPv4 and IPv6
stacks a lot of exercise.
 1.11  17-Feb-2007  dyoung branches: 1.11.18; 1.11.24; 1.11.26; 1.11.30;
KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous
parentheses in return statements.

Cosmetic: don't open-code TAILQ_FOREACH().

Cosmetic: change types of variables to avoid oodles of casts: in
in6_src.c, avoid casts by changing several route_in6 pointers
to struct route pointers. Remove unnecessary casts to caddr_t
elsewhere.

Pave the way for eliminating address family-specific route caches:
soon, struct route will not embed a sockaddr, but it will hold
a reference to an external sockaddr, instead. We will set the
destination sockaddr using rtcache_setdst(). (I created a stub
for it, but it isn't used anywhere, yet.) rtcache_free() will
free the sockaddr. I have extracted from rtcache_free() a helper
subroutine, rtcache_clear(). rtcache_clear() will "forget" a
cached route, but it will not forget the destination by releasing
the sockaddr. I use rtcache_clear() instead of rtcache_free()
in rtcache_update(), because rtcache_update() is not supposed
to forget the destination.

Constify:

1 Introduce const accessor for route->ro_dst, rtcache_getdst().

2 Constify the 'dst' argument to ifnet->if_output(). This
led me to constify a lot of code called by output routines.

3 Constify the sockaddr argument to protosw->pr_ctlinput. This
led me to constify a lot of code called by ctlinput routines.

4 Introduce const macros for converting from a generic sockaddr
to family-specific sockaddrs, e.g., sockaddr_in: satocsin6,
satocsin, et cetera.
 1.10  07-Oct-2006  rpaulo branches: 1.10.4;
PR 10301: Change "oops" to something more interesting. (but less funny :-).
 1.9  11-Dec-2005  christos branches: 1.9.20; 1.9.22;
merge ktrace-lwp.
 1.8  25-Apr-2004  matt branches: 1.8.12;
remove #else clause of #if __STDC__
 1.7  27-May-2003  itojun branches: 1.7.2;
- don't use M_WAIT within splnet.
- retain m_pkthdr for mbuf passed down to ifp->if_output.
pointed out by is@netbsd
 1.6  26-Feb-2003  matt Update for MBUFTRACE.
 1.5  26-Feb-2003  matt Add MBUFTRACE kernel option.
Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *)
to m_get*(M_WAIT, *). These are not performance critical and making them
call m_get saves considerable space. Add m_clget analogue of MCLGET and
make corresponding change for M_WAIT uses.
Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE.
Begin to change netstat to use sysctl.
 1.4  15-Nov-2001  lukem branches: 1.4.10;
don't need <sys/types.h> when including <sys/param.h>
 1.3  13-Nov-2001  lukem add RCSIDs
 1.2  27-Mar-1999  aidan branches: 1.2.20; 1.2.22;
Added per-addr input/output statistics. Currently just support netatalk
and netinet, currently only tested under netinet.

Disabled by default, enabled by compiling the kernel with option
IFA_STATS. Enabling this feature seems to make the ip_output function
take 13% longer than before, which should be OK for people that need
this feature.
 1.1  02-Apr-1997  christos branches: 1.1.14;
Appletalk networking stack. Code based on netatalk release beta-970220
from toccata.fugue.com. Ported to netbsd by Bill Studenmund.
Changes:
- KNF
- remove endian.h
- adapt to the new arp code.
- fix small biff's with spl/splx.
 1.1.14.1  11-Dec-1998  kenh The beginnings of interface detach support. Still some bugs, but mostly
works for me.

This work was originally by Bill Studenmund, and cleaned up by me.
 1.2.22.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.20.2  08-Jan-2002  nathanw Catch up to -current.
 1.2.20.1  14-Nov-2001  nathanw Catch up to -current.
 1.4.10.1  19-Jun-2003  grant Apply patch (requested by itojun in ticket #1316):

- don't use M_WAIT within splnet.
- retain m_pkthdr for mbuf passed down to ifp->if_output.
pointed out by is@netbsd
 1.7.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1  03-Aug-2004  skrll Sync with HEAD
 1.8.12.3  21-Jan-2008  yamt sync with head
 1.8.12.2  26-Feb-2007  yamt sync with head.
 1.8.12.1  30-Dec-2006  yamt sync with head.
 1.9.22.1  22-Oct-2006  yamt sync with head
 1.9.20.1  18-Nov-2006  ad Sync with head.
 1.10.4.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.11.30.2  19-Jan-2008  bouyer Sync with HEAD
 1.11.30.1  02-Jan-2008  bouyer Sync with HEAD
 1.11.26.1  26-Dec-2007  ad Sync with head.
 1.11.24.1  18-Feb-2008  mjf Sync with HEAD.
 1.11.18.2  23-Mar-2008  matt sync with HEAD
 1.11.18.1  09-Jan-2008  matt sync with HEAD
 1.13.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.14.14.1  21-Apr-2012  riz Pull up following revision(s) (requested by hauke in ticket #1749):
sys/netatalk/aarp.c: revision 1.36
sys/netatalk/ddp_output.c: revision 1.16
Fix AppleTalk name registration, as discussed on the port-macppc list
<http://mail-index.netbsd.org/port-macppc/2010/07/09/msg001119.html>
and in PR kern/44412, by looping back ddp broadcasts.
Patch submitted by David Riley against netbsd-5, adaptation for
-current and minor KNF touchup by me.
Needs to be pulled up to netbsd-5.
 1.15.6.1  18-Feb-2012  mrg merge to -current.
 1.15.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.15.2.1  17-Apr-2012  yamt sync with head
 1.16.10.1  18-May-2014  rmind sync with head
 1.16.6.2  03-Dec-2017  jdolecek update from HEAD
 1.16.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.6.3  05-Feb-2017  skrll Sync with HEAD
 1.17.6.2  09-Jul-2016  skrll Sync with HEAD
 1.17.6.1  19-Mar-2016  skrll Sync with HEAD
 1.19.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.21.34.1  31-Jul-2023  martin Pull up following revision(s) (requested by riastradh in ticket #278):

sys/netatalk/ddp_output.c: revision 1.22
sys/compat/common/if_43.c: revision 1.27
sys/netatalk/ddp_input.c: revision 1.34
sys/netatalk/at_control.c: revision 1.43

atalk(4): Don't abuse queue(9) internals.

atalk(4): Omit spurious satosat.
The input is already a struct sockaddr_at pointer.

RSS XML Feed