Nuke AppleTalk support.
authorSascha Wildner <saw@online.de>
Fri, 11 Nov 2011 04:20:43 +0000 (05:20 +0100)
committerSascha Wildner <saw@online.de>
Fri, 11 Nov 2011 04:20:43 +0000 (05:20 +0100)
It has been broken for a while, too.

Various bits and pieces still remain, mainly in documentation, which
I'll mop up on the weekend.

I hope I haven't cut too deep but I don't think so.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issue2169>

71 files changed:
Makefile_upgrade.inc
etc/mtree/BSD.include.dist
include/Makefile
lib/libc/sys/chmod.2
lib/libc/sys/socket.2
sbin/ifconfig/Makefile
sbin/ifconfig/af_atalk.c [deleted file]
sbin/ipfw/ipfw2.c
sbin/mount/mount.8
sbin/route/route.c
sbin/route/show.c
share/man/man7/hier.7
sys/conf/files
sys/conf/options
sys/config/LINT
sys/config/LINT64
sys/emulation/linux/linux_socket.c
sys/net/ethernet.h
sys/net/gre/Makefile
sys/net/gre/if_gre.c
sys/net/if_ethersubr.c
sys/net/if_loop.c
sys/net/netisr.h
sys/net/tun/Makefile
sys/net/tun/if_tun.c
sys/netgraph/cisco/ng_cisco.c
sys/netgraph/cisco/ng_cisco.h
sys/netgraph/iface/Makefile
sys/netgraph/iface/ng_iface.c
sys/netgraph/ksocket/ng_ksocket.c
sys/netgraph7/ng_cisco.c
sys/netgraph7/ng_cisco.h
sys/netgraph7/ng_gif_demux.c
sys/netgraph7/ng_iface.c
sys/netgraph7/ng_ksocket.c
sys/netinet/ip_carp.c
sys/netinet/ip_gre.c
sys/netproto/802_11/wlan/ieee80211_input.c
sys/netproto/802_11/wlan/ieee80211_mesh.c
sys/netproto/atalk/COPYRIGHT [deleted file]
sys/netproto/atalk/aarp.c [deleted file]
sys/netproto/atalk/aarp.h [deleted file]
sys/netproto/atalk/at.h [deleted file]
sys/netproto/atalk/at_control.c [deleted file]
sys/netproto/atalk/at_extern.h [deleted file]
sys/netproto/atalk/at_proto.c [deleted file]
sys/netproto/atalk/at_rmx.c [deleted file]
sys/netproto/atalk/at_var.h [deleted file]
sys/netproto/atalk/ddp.h [deleted file]
sys/netproto/atalk/ddp_input.c [deleted file]
sys/netproto/atalk/ddp_output.c [deleted file]
sys/netproto/atalk/ddp_usrreq.c [deleted file]
sys/netproto/atalk/ddp_var.h [deleted file]
sys/netproto/atalk/endian.h [deleted file]
sys/netproto/atalk/phase2.h [deleted file]
sys/platform/pc32/i386/machdep.c
sys/platform/pc64/x86_64/machdep.c
sys/platform/vkernel/i386/cpu_regs.c
sys/platform/vkernel64/x86_64/cpu_regs.c
sys/sys/param.h
sys/sys/priv.h
sys/sys/socket.h
tools/tools/net80211/wlanwatch/wlanwatch.c
tools/tools/net80211/wlanwds/wlanwds.c
usr.bin/kdump/mkioctls
usr.bin/netstat/Makefile
usr.bin/netstat/atalk.c [deleted file]
usr.bin/netstat/if.c
usr.bin/netstat/main.c
usr.bin/netstat/netstat.1
usr.bin/netstat/route.c

index 0fb7dd5..f86c696 100644 (file)
@@ -1757,6 +1757,8 @@ TO_REMOVE+=/usr/share/man/man1/strings220.1.gz
 TO_REMOVE+=/usr/share/man/man1/strip220.1.gz
 TO_REMOVE+=/usr/libexec/binutils220
 TO_REMOVE+=/usr/share/zoneinfo/Europe/Tiraspol
+TO_REMOVE+=/usr/include/netatalk
+TO_REMOVE+=/usr/include/netproto/atalk
 
 .if ${MACHINE_ARCH} == "x86_64"
 TO_REMOVE+=/usr/libdata/stallion/2681.sys
index 4cecf66..d77caf0 100644 (file)
     netproto
         802_11
         ..
-        atalk
-        ..
         atm
             ipatm
             ..
index 6e73459..2caf19d 100644 (file)
@@ -68,7 +68,7 @@ LSUBDIRS=     bus/cam bus/cam/scsi \
        netgraph/pppoe netgraph/pptpgre netgraph/rfc1490 netgraph/socket \
        netgraph/tee netgraph/tty netgraph/vjc \
        bus/cam bus/usb bus/pccard bus/pci bus/isa bus/ppbus bus/smbus \
-       netproto/atalk netproto/atm netproto/ipsec netproto/ipx \
+       netproto/atm netproto/ipsec netproto/ipx \
        netproto/key netproto/natm netproto/ncp netproto/smb \
        netproto/atm/ipatm netproto/atm/sigpvc netproto/atm/spans \
        netproto/atm/uni netproto/802_11 netproto/mpls \
@@ -128,7 +128,6 @@ INCSLINKS+= vfs ${INCLUDEDIR}/fs
 INCSLINKS+=    vfs ${INCLUDEDIR}/ufs
 INCSLINKS+=    ufs ${INCLUDEDIR}/vfs/ffs
 INCSLINKS+=    emulation ${INCLUDEDIR}/compat
-INCSLINKS+=    netproto/atalk ${INCLUDEDIR}/netatalk
 INCSLINKS+=    netproto/atm ${INCLUDEDIR}/netatm
 INCSLINKS+=    netproto/ipsec ${INCLUDEDIR}/netipsec
 INCSLINKS+=    netproto/ipx ${INCLUDEDIR}/netipx
index a83ee94..137d9f7 100644 (file)
@@ -31,7 +31,6 @@
 .\"
 .\"     @(#)chmod.2    8.1 (Berkeley) 6/4/93
 .\" $FreeBSD: src/lib/libc/sys/chmod.2,v 1.16.2.7 2001/12/14 18:34:00 ru Exp $
-.\" $DragonFly: src/lib/libc/sys/chmod.2,v 1.4 2006/05/26 19:39:37 swildner Exp $
 .\"
 .Dd August 9, 2009
 .Dt CHMOD 2
@@ -169,7 +168,7 @@ owner after it has been created.
 Group inheritance is not affected.
 .Pp
 This feature is designed for use on fileservers serving PC users via
-ftp, SAMBA, or netatalk.
+ftp or SAMBA.
 It provides security holes for shell users and as
 such should not be used on shell machines, especially on home directories.
 This option requires the SUIDDIR
index 17cba0c..8f9e874 100644 (file)
@@ -31,7 +31,6 @@
 .\"
 .\"     From: @(#)socket.2     8.1 (Berkeley) 6/4/93
 .\" $FreeBSD: src/lib/libc/sys/socket.2,v 1.12.2.11 2002/12/29 16:35:34 schweikh Exp $
-.\" $DragonFly: src/lib/libc/sys/socket.2,v 1.5 2008/04/15 19:19:49 swildner Exp $
 .\"
 .Dd November 24, 1997
 .Dt SOCKET 2
@@ -77,7 +76,6 @@ PF_DECnet     DECnet,
 PF_DLI         DEC Direct Data Link Interface protocol,
 PF_LAT         LAT protocol,
 PF_HYLINK      NSC Hyperchannel,
-PF_APPLETALK   AppleTalk protocols,
 PF_ROUTE       Internal Routing protocol,
 PF_LINK                Link layer interface,
 PF_XTP         eXpress Transfer Protocol,
index 11db94b..85517ab 100644 (file)
@@ -15,7 +15,6 @@ SRCS= ifconfig.c              # base support
 SRCS+= af_link.c               # LLC support
 SRCS+= af_inet.c               # IPv4 support
 SRCS+= af_inet6.c              # IPv6 support
-SRCS+= af_atalk.c              # AppleTalk support
 
 SRCS+= ifclone.c               # clone device support
 #SRCS+=        ifmac.c                 # MAC support
diff --git a/sbin/ifconfig/af_atalk.c b/sbin/ifconfig/af_atalk.c
deleted file mode 100644 (file)
index 5392866..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sbin/ifconfig/af_atalk.c,v 1.1 2004/12/08 19:18:07 sam Exp $
- */
-
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <net/route.h>         /* for RTX_IFA */
-
-#include <netatalk/at.h>
-
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <arpa/inet.h>
-
-#include "ifconfig.h"
-
-static struct netrange at_nr;          /* AppleTalk net range */
-static struct ifaliasreq at_addreq;
-
-/* XXX  FIXME -- should use strtoul for better parsing. */
-static void
-setatrange(const char *range, int dummy __unused, int s, 
-    const struct afswtch *afp)
-{
-       u_int   first = 123, last = 123;
-
-       if (sscanf(range, "%u-%u", &first, &last) != 2
-           || first == 0 || first > 0xffff
-           || last == 0 || last > 0xffff || first > last)
-               errx(1, "%s: illegal net range: %u-%u", range, first, last);
-       at_nr.nr_firstnet = htons(first);
-       at_nr.nr_lastnet = htons(last);
-}
-
-static void
-setatphase(const char *phase, int dummy __unused, int s, 
-    const struct afswtch *afp)
-{
-       if (!strcmp(phase, "1"))
-               at_nr.nr_phase = 1;
-       else if (!strcmp(phase, "2"))
-               at_nr.nr_phase = 2;
-       else
-               errx(1, "%s: illegal phase", phase);
-}
-
-static void
-at_status(int s __unused, const struct rt_addrinfo * info)
-{
-       struct sockaddr_at *sat, null_sat;
-       struct netrange *nr;
-
-       memset(&null_sat, 0, sizeof(null_sat));
-
-       sat = (struct sockaddr_at *)info->rti_info[RTAX_IFA];
-       if (sat == NULL)
-               return;
-       nr = &sat->sat_range.r_netrange;
-       printf("\tatalk %d.%d range %d-%d phase %d",
-               ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node,
-               ntohs(nr->nr_firstnet), ntohs(nr->nr_lastnet), nr->nr_phase);
-       if (flags & IFF_POINTOPOINT) {
-               /* note RTAX_BRD overlap with IFF_BROADCAST */
-               sat = (struct sockaddr_at *)info->rti_info[RTAX_BRD];
-               if (!sat)
-                       sat = &null_sat;
-               printf("--> %d.%d",
-                       ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node);
-       }
-       if (flags & IFF_BROADCAST) {
-               /* note RTAX_BRD overlap with IFF_POINTOPOINT */
-               sat = (struct sockaddr_at *)info->rti_info[RTAX_BRD];
-               if (sat)
-                       printf(" broadcast %d.%d",
-                               ntohs(sat->sat_addr.s_net),
-                               sat->sat_addr.s_node);
-       }
-
-       putchar('\n');
-}
-
-static void
-at_getaddr(const char *addr, int which)
-{
-       struct sockaddr_at *sat = (struct sockaddr_at *) &at_addreq.ifra_addr;
-       u_int net, node;
-
-       sat->sat_family = AF_APPLETALK;
-       sat->sat_len = sizeof(*sat);
-       if (which == MASK)
-               errx(1, "AppleTalk does not use netmasks");
-       if (sscanf(addr, "%u.%u", &net, &node) != 2
-           || net > 0xffff || node > 0xfe)
-               errx(1, "%s: illegal address", addr);
-       sat->sat_addr.s_net = htons(net);
-       sat->sat_addr.s_node = node;
-}
-
-static void
-at_postproc(int s, const struct afswtch *afp)
-{
-       struct sockaddr_at *sat = (struct sockaddr_at *) &at_addreq.ifra_addr;
-
-       if (at_nr.nr_phase == 0)
-               at_nr.nr_phase = 2;     /* Default phase 2 */
-       if (at_nr.nr_firstnet == 0)
-               at_nr.nr_firstnet =     /* Default range of one */
-               at_nr.nr_lastnet = sat->sat_addr.s_net;
-       printf("\tatalk %d.%d range %d-%d phase %d\n",
-               ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node,
-               ntohs(at_nr.nr_firstnet), ntohs(at_nr.nr_lastnet),
-               at_nr.nr_phase);
-       if ((u_short) ntohs(at_nr.nr_firstnet) >
-                       (u_short) ntohs(sat->sat_addr.s_net)
-                   || (u_short) ntohs(at_nr.nr_lastnet) <
-                       (u_short) ntohs(sat->sat_addr.s_net))
-               errx(1, "AppleTalk address is not in range");
-       sat->sat_range.r_netrange = at_nr;
-}
-
-static struct cmd atalk_cmds[] = {
-       DEF_CMD_ARG("range",    setatrange),
-       DEF_CMD_ARG("phase",    setatphase),
-};
-
-static struct afswtch af_atalk = {
-       .af_name        = "atalk",
-       .af_af          = AF_APPLETALK,
-       .af_status      = at_status,
-       .af_getaddr     = at_getaddr,
-       .af_postproc    = at_postproc,
-       .af_difaddr     = SIOCDIFADDR,
-       .af_aifaddr     = SIOCAIFADDR,
-       .af_ridreq      = &at_addreq,
-       .af_addreq      = &at_addreq,
-};
-
-static __constructor(101) void
-atalk_ctor(void)
-{
-#define        N(a)    (sizeof(a) / sizeof(a[0]))
-       int i;
-
-       for (i = 0; i < N(atalk_cmds);  i++)
-               cmd_register(&atalk_cmds[i]);
-       af_register(&af_atalk);
-#undef N
-}
index f2188d8..12ddb75 100644 (file)
@@ -18,7 +18,6 @@
  * NEW command line interface for IP firewall facility
  *
  * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.4.2.13 2003/05/27 22:21:11 gshapiro Exp $
- * $DragonFly: src/sbin/ipfw/ipfw2.c,v 1.12 2007/11/05 08:58:35 sephe Exp $
  */
 
 #include <sys/param.h>
@@ -159,9 +158,6 @@ static struct _s_x ether_types[] = {
        { "vlan",       0x8100 },
        { "loop",       0x9000 },
        { "trail",      0x1000 },
-       { "at",         0x809b },
-       { "atalk",      0x809b },
-       { "aarp",       0x80f3 },
        { "pppoe_disc", 0x8863 },
        { "pppoe_sess", 0x8864 },
        { "ipx_8022",   0x00E0 },
index 435c56a..193b512 100644 (file)
@@ -209,7 +209,7 @@ Execute bits are removed from
 the file, and it will not be given to root.
 .Pp
 This feature is designed for use on fileservers serving PC users via
-ftp, SAMBA, or netatalk.
+ftp or SAMBA.
 It provides security holes for shell users and as
 such should not be used on shell machines, especially on home directories.
 This option requires the SUIDDIR
index 26ae9ef..27377fb 100644 (file)
@@ -33,7 +33,6 @@
  * @(#) Copyright (c) 1983, 1989, 1991, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)route.c 8.6 (Berkeley) 4/28/95
  * $FreeBSD: src/sbin/route/route.c,v 1.40.2.11 2003/02/27 23:10:10 ru Exp $
- * $DragonFly: src/sbin/route/route.c,v 1.17 2008/07/07 22:02:09 nant Exp $
  */
 
 #include <sys/param.h>
@@ -48,7 +47,6 @@
 #include <net/if_dl.h>
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
-#include <netatalk/at.h>
 #include <arpa/inet.h>
 #include <netdb.h>
 
@@ -74,7 +72,6 @@ union sockunion {
 #ifdef INET6
        struct  sockaddr_in6 sin6;
 #endif
-       struct  sockaddr_at sat;
        struct  sockaddr_mpls smpls;
        struct  sockaddr_dl sdl;
        struct  sockaddr_inarp sinarp;
@@ -98,8 +95,6 @@ static int    mplsop, popcount, pushcount, swapcount;
 static u_long  rtm_inits;
 static uid_t   uid;
 
-static int      atalk_aton(const char *, struct at_addr *);
-static char    *atalk_ntoa(struct at_addr);
 static void     flushroutes(int, char **);
 static void     set_metric(char *, int);
 static void     newroute(int, char **);
@@ -239,9 +234,6 @@ flushroutes(int argc, char **argv)
                                af = AF_INET6;
                                break;
 #endif
-                       case K_ATALK:
-                               af = AF_APPLETALK;
-                               break;
                        case K_LINK:
                                af = AF_LINK;
                                break;
@@ -407,11 +399,6 @@ routename(struct sockaddr *sa)
        }
 #endif
 
-       case AF_APPLETALK:
-               snprintf(line, sizeof(line), "atalk %s",
-                       atalk_ntoa(((struct sockaddr_at *)sa)->sat_addr));
-               break;
-
        case AF_LINK:
                return(link_ntoa((struct sockaddr_dl *)sa));
 
@@ -536,11 +523,6 @@ netname(struct sockaddr *sa)
        }
 #endif
 
-       case AF_APPLETALK:
-               snprintf(line, sizeof(line), "atalk %s",
-                       atalk_ntoa(((struct sockaddr_at *)sa)->sat_addr));
-               break;
-
        case AF_LINK:
                return(link_ntoa((struct sockaddr_dl *)sa));
 
@@ -621,10 +603,6 @@ newroute(int argc, char **argv)
                                aflen = sizeof(struct sockaddr_in6);
                                break;
 #endif
-                       case K_ATALK:
-                               af = AF_APPLETALK;
-                               aflen = sizeof(struct sockaddr_at);
-                               break;
                        case K_SA:
                                af = PF_ROUTE;
                                aflen = sizeof(union sockunion);
@@ -1101,12 +1079,6 @@ getaddr(int which, const char *str, struct hostent **hpp)
        }
 #endif /* INET6 */
 
-       case AF_APPLETALK:
-               if (!atalk_aton(str, &su->sat.sat_addr))
-                       errx(EX_NOHOST, "bad address: %s", str);
-               rtm_addrs |= RTA_NETMASK;
-               return(forcehost || su->sat.sat_addr.s_node != 0);
-
        case AF_LINK:
                link_addr(str, &su->sdl);
                return(1);
@@ -1367,7 +1339,6 @@ mask_addr(void)
 #ifdef INET6
        case AF_INET6:
 #endif
-       case AF_APPLETALK:
        case 0:
                return;
        }
@@ -1661,10 +1632,6 @@ sodump(sup su, const char *which)
                printf("%s: inet %s; ",
                    which, inet_ntoa(su->sin.sin_addr));
                break;
-       case AF_APPLETALK:
-               printf("%s: atalk %s; ",
-                   which, atalk_ntoa(su->sat.sat_addr));
-               break;
        }
        fflush(stdout);
 }
@@ -1719,25 +1686,3 @@ sockaddr(const char *addr, struct sockaddr *sa)
        } while (cp < cplim);
        sa->sa_len = cp - (char *)sa;
 }
-
-static int
-atalk_aton(const char *text, struct at_addr *addr)
-{
-       u_int net, node;
-
-       if (sscanf(text, "%u.%u", &net, &node) != 2
-           || net > 0xffff || node > 0xff)
-               return(0);
-       addr->s_net = htons(net);
-       addr->s_node = node;
-       return(1);
-}
-
-static char *
-atalk_ntoa(struct at_addr at)
-{
-       static char buf[20];
-
-       snprintf(buf, sizeof(buf), "%u.%u", ntohs(at.s_net), at.s_node);
-       return(buf);
-}
index e8956dd..b4bc0f9 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * $OpenBSD: show.c,v 1.26 2003/08/26 08:33:12 itojun Exp $
  * $NetBSD: show.c,v 1.1 1996/11/15 18:01:41 gwr Exp $
- * $DragonFly: src/sbin/route/show.c,v 1.6 2006/01/19 22:19:30 dillon Exp $
  */
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -273,9 +272,6 @@ pr_family(int af)
        case AF_CCITT:
                afname = "X.25";
                break;
-       case AF_APPLETALK:
-               afname = "AppleTalk";
-               break;
        default:
                afname = NULL;
                break;
index ac98dce..ed011a8 100644 (file)
@@ -208,8 +208,6 @@ machine-specific C include files
 MS-DOS file system
 .It Pa net/
 misc network C include files
-.It Pa netatalk/
-Appletalk protocol
 .It Pa netatm/
 ATM include files;
 see
index 6d84068..85bbb88 100644 (file)
@@ -1178,13 +1178,6 @@ netproto/802_11/wlan/ieee80211_superg.c     optional wlan ieee80211_support_supe
 netproto/802_11/wlan/ieee80211_tdma.c       optional wlan ieee80211_support_tdma
 netproto/802_11/wlan/ieee80211_wds.c        optional wlan
 netproto/802_11/wlan_xauth/ieee80211_xauth.c optional wlan_xauth
-netproto/atalk/aarp.c          optional netatalk
-netproto/atalk/at_control.c    optional netatalk
-netproto/atalk/at_proto.c      optional netatalk
-netproto/atalk/at_rmx.c                optional netatalk
-netproto/atalk/ddp_input.c     optional netatalk
-netproto/atalk/ddp_output.c    optional netatalk
-netproto/atalk/ddp_usrreq.c    optional netatalk
 netproto/atm/atm_aal5.c                optional atm_core
 netproto/atm/atm_cm.c                  optional atm_core
 netproto/atm/atm_device.c              optional atm_core
index ec26b96..f161292 100644 (file)
@@ -309,7 +309,6 @@ IPTUNNEL            opt_ipx.h
 LIBMCHAIN
 MPLS                   opt_mpls.h
 NCP                    opt_ncp.h
-NETATALK               opt_atalk.h
 PPP_BSDCOMP            opt_ppp.h
 PPP_DEFLATE            opt_ppp.h
 PPP_FILTER             opt_ppp.h
@@ -453,7 +452,6 @@ LPT_DEBUG           opt_lpt.h
 PLIP_DEBUG             opt_plip.h
 LOCKF_DEBUG            opt_debug_lockf.h
 NPX_DEBUG              opt_debug_npx.h
-NETATALKDEBUG          opt_atalk.h
 SI_DEBUG               opt_debug_si.h
 
 # Fb options
index 955387c..7a6d6a4 100644 (file)
@@ -452,8 +452,6 @@ options     NCP                     #NetWare Core protocol
 
 options        MPLS                    #Multi-Protocol Label Switching
 
-options        NETATALK                #Appletalk communications protocols
-
 #
 # SMB/CIFS requester
 # NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV
@@ -776,7 +774,7 @@ options     NSWAPDEV=5
 options        QUOTA                   #enable disk quotas
 
 # If you are running a machine just as a fileserver for PC and MAC
-# users, using SAMBA or Netatalk, you may consider setting this option
+# users, e.g. using SAMBA, you may consider setting this option
 # and keeping all those users' directories on a filesystem that is
 # mounted with the suiddir option. This gives new files the same
 # ownership as the directory (similar to group). It's a security hole
@@ -2744,7 +2742,6 @@ options   LINPROCFS
 options        LOCKF_DEBUG
 #options       MAXFILES=xxx
 options                MBUF_DEBUG
-options        NETATALKDEBUG
 options        PANIC_DEBUG
 options        PMAP_DEBUG
 options        PSM_DEBUG=4
index d9594dc..96f4694 100644 (file)
@@ -311,8 +311,6 @@ options     NCP                     #NetWare Core protocol
 
 options        MPLS                    #Multi-Protocol Label Switching
 
-options        NETATALK                #Appletalk communications protocols
-
 #
 # SMB/CIFS requester
 # NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV
@@ -635,7 +633,7 @@ options     NSWAPDEV=5
 options        QUOTA                   #enable disk quotas
 
 # If you are running a machine just as a fileserver for PC and MAC
-# users, using SAMBA or Netatalk, you may consider setting this option
+# users, e.g. using SAMBA, you may consider setting this option
 # and keeping all those users' directories on a filesystem that is
 # mounted with the suiddir option. This gives new files the same
 # ownership as the directory (similar to group). It's a security hole
@@ -2510,7 +2508,6 @@ options   KEY
 options        LOCKF_DEBUG
 #options       MAXFILES=xxx
 options                MBUF_DEBUG
-options        NETATALKDEBUG
 options        PANIC_DEBUG
 options        PMAP_DEBUG
 options        PSM_DEBUG=4
index a69ec6a..668c01a 100644 (file)
@@ -26,7 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.19.2.8 2001/11/07 20:33:55 marcel Exp $
- * $DragonFly: src/sys/emulation/linux/linux_socket.c,v 1.28 2008/07/10 00:19:27 aggelos Exp $
  */
 
 #include <sys/param.h>
@@ -154,8 +153,6 @@ linux_to_bsd_domain(int domain)
                return (AF_CCITT);
        case LINUX_AF_IPX:
                return (AF_IPX);
-       case LINUX_AF_APPLETALK:
-               return (AF_APPLETALK);
        }
        return (-1);
 }
index 8591cb0..4aa9ea2 100644 (file)
@@ -233,9 +233,7 @@ extern const uint8_t        etherbroadcastaddr[ETHER_ADDR_LEN];
 #define        ETHERTYPE_VLTLMAN       0x8080  /* Vitalink TransLAN III Management */
                    /* 0x8081 - 0x8083     Counterpoint Computers */
                    /* 0x8088 - 0x808A     Xyplex */
-#define        ETHERTYPE_ATALK         0x809B  /* AppleTalk */
-#define        ETHERTYPE_AT            ETHERTYPE_ATALK         /* old NetBSD */
-#define        ETHERTYPE_APPLETALK     ETHERTYPE_ATALK         /* HP-UX */
+                            /* 0x809B     AppleTalk */
                    /* 0x809C - 0x809E     Datability */
 #define        ETHERTYPE_SPIDER        0x809F  /* Spider Systems Ltd. */
                             /* 0x80A3     Nixdorf */
@@ -254,7 +252,7 @@ extern const uint8_t        etherbroadcastaddr[ETHER_ADDR_LEN];
                    /* 0x80E0 - 0x80E3     Allen-Bradley */
                    /* 0x80E4 - 0x80F0     Datability */
 #define        ETHERTYPE_RETIX         0x80F2  /* Retix */
-#define        ETHERTYPE_AARP          0x80F3  /* AppleTalk AARP */
+                            /* 0x80F3     AppleTalk AARP */
                    /* 0x80F4 - 0x80F5     Kinetics */
 #define        ETHERTYPE_APOLLO        0x80F7  /* Apollo Computer */
 #define ETHERTYPE_VLAN         0x8100  /* IEEE 802.1Q VLAN tagging (XXX conflicts) */
index 2c9936b..f721194 100644 (file)
@@ -1,15 +1,12 @@
 .PATH: ${.CURDIR}/../../net ${.CURDIR}/../../netinet 
 
 KMOD=  if_gre
-SRCS=  if_gre.c ip_gre.c opt_inet.h opt_atalk.h
+SRCS=  if_gre.c ip_gre.c opt_inet.h
 SRCS+= device_if.h bus_if.h
 
 .if !defined(BUILDING_WITH_KERNEL)
 opt_inet.h:
        echo "#define INET 1" > ${.TARGET}
-
-opt_atalk.h:
-       echo "#define NETATALK 1" > ${.TARGET}
 .endif
 
 .include <bsd.kmod.mk>
index d951154..9358df6 100644 (file)
@@ -46,7 +46,6 @@
  * Also supported:  IP in IP encaps (proto 55) as of RFC 2004
  */
 
-#include "opt_atalk.h"
 #include "opt_inet.h"
 
 #include <sys/param.h>
@@ -349,11 +348,6 @@ gre_output_serialized(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
                        ip = mtod(m, struct ip *);
                        etype = ETHERTYPE_IP;
                        break;
-#ifdef NETATALK
-               case AF_APPLETALK:
-                       etype = ETHERTYPE_ATALK;
-                       break;
-#endif
                default:
                        IF_DROP(&ifp->if_snd);
                        m_freem(m);
index aa47d88..d619ec7 100644 (file)
  *
  *     @(#)if_ethersubr.c      8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/if_ethersubr.c,v 1.70.2.33 2003/04/28 15:45:53 archie Exp $
- * $DragonFly: src/sys/net/if_ethersubr.c,v 1.96 2008/11/22 04:00:53 sephe Exp $
  */
 
-#include "opt_atalk.h"
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipx.h"
@@ -97,18 +95,6 @@ int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp, struct sockaddr *dst,
                  short *tp, int *hlen);
 #endif
 
-#ifdef NETATALK
-#include <netproto/atalk/at.h>
-#include <netproto/atalk/at_var.h>
-#include <netproto/atalk/at_extern.h>
-
-#define        llc_snap_org_code       llc_un.type_snap.org_code
-#define        llc_snap_ether_type     llc_un.type_snap.ether_type
-
-extern u_char  at_org_code[3];
-extern u_char  aarp_org_code[3];
-#endif /* NETATALK */
-
 #ifdef MPLS
 #include <netproto/mpls/mpls.h>
 #endif
@@ -281,54 +267,6 @@ ether_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
                bcopy(&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
                      edst, ETHER_ADDR_LEN);
                break;
-#endif
-#ifdef NETATALK
-       case AF_APPLETALK: {
-               struct at_ifaddr *aa;
-
-               /*
-                * Hold BGL
-                */
-               get_mplock();
-
-               if ((aa = at_ifawithnet((struct sockaddr_at *)dst)) == NULL) {
-                       error = 0;      /* XXX */
-                       rel_mplock();
-                       goto bad;
-               }
-               /*
-                * In the phase 2 case, need to prepend an mbuf for
-                * the llc header.  Since we must preserve the value
-                * of m, which is passed to us by value, we m_copy()
-                * the first mbuf, and use it for our llc header.
-                */
-               if (aa->aa_flags & AFA_PHASE2) {
-                       struct llc llc;
-
-                       M_PREPEND(m, sizeof(struct llc), MB_DONTWAIT);
-                       eh = mtod(m, struct ether_header *);
-                       edst = eh->ether_dhost;
-                       llc.llc_dsap = llc.llc_ssap = LLC_SNAP_LSAP;
-                       llc.llc_control = LLC_UI;
-                       bcopy(at_org_code, llc.llc_snap_org_code,
-                             sizeof at_org_code);
-                       llc.llc_snap_ether_type = htons(ETHERTYPE_AT);
-                       bcopy(&llc,
-                             mtod(m, caddr_t) + sizeof(struct ether_header),
-                             sizeof(struct llc));
-                       eh->ether_type = htons(m->m_pkthdr.len);
-                       hlen = sizeof(struct llc) + ETHER_HDR_LEN;
-               } else {
-                       eh->ether_type = htons(ETHERTYPE_AT);
-               }
-               if (!aarpresolve(ac, m, (struct sockaddr_at *)dst, edst)) {
-                       rel_mplock();
-                       return (0);
-               }
-
-               rel_mplock();
-               break;
-         }
 #endif
        case pseudo_AF_HDRCMPLT:
        case AF_UNSPEC:
@@ -1047,9 +985,6 @@ ether_demux_oncpu(struct ifnet *ifp, struct mbuf *m)
        int isr, discard = 0;
        u_short ether_type;
        struct ip_fw *rule = NULL;
-#ifdef NETATALK
-       struct llc *l;
-#endif
 
        M_ASSERTPKTHDR(m);
        KASSERT(m->m_len >= ETHER_HDR_LEN,
@@ -1234,15 +1169,6 @@ post_stats:
                break;
 #endif
 
-#ifdef NETATALK
-       case ETHERTYPE_AT:
-               isr = NETISR_ATALK1;
-               break;
-       case ETHERTYPE_AARP:
-               isr = NETISR_AARP;
-               break;
-#endif
-
 #ifdef MPLS
        case ETHERTYPE_MPLS:
        case ETHERTYPE_MPLS_MCAST:
@@ -1270,30 +1196,6 @@ post_stats:
                        }
                        rel_mplock();
                }
-#endif
-#ifdef NETATALK
-               if (ether_type > ETHERMTU)
-                       goto dropanyway;
-               l = mtod(m, struct llc *);
-               if (l->llc_dsap == LLC_SNAP_LSAP &&
-                   l->llc_ssap == LLC_SNAP_LSAP &&
-                   l->llc_control == LLC_UI) {
-                       if (bcmp(&(l->llc_snap_org_code)[0], at_org_code,
-                                sizeof at_org_code) == 0 &&
-                           ntohs(l->llc_snap_ether_type) == ETHERTYPE_AT) {
-                               m_adj(m, sizeof(struct llc));
-                               isr = NETISR_ATALK2;
-                               break;
-                       }
-                       if (bcmp(&(l->llc_snap_org_code)[0], aarp_org_code,
-                                sizeof aarp_org_code) == 0 &&
-                           ntohs(l->llc_snap_ether_type) == ETHERTYPE_AARP) {
-                               m_adj(m, sizeof(struct llc));
-                               isr = NETISR_AARP;
-                               break;
-                       }
-               }
-dropanyway:
 #endif
                if (ng_ether_input_orphan_p != NULL) {
                        /*
@@ -1694,15 +1596,6 @@ ether_characterize(struct mbuf **m0)
                break;
 #endif
 
-#ifdef NETATALK
-       case ETHERTYPE_AT:
-               isr = NETISR_ATALK1;
-               break;
-       case ETHERTYPE_AARP:
-               isr = NETISR_AARP;
-               break;
-#endif
-
 #ifdef MPLS
        case ETHERTYPE_MPLS:
        case ETHERTYPE_MPLS_MCAST:
index 0017ee4..2eb8c0d 100644 (file)
@@ -32,7 +32,6 @@
  *
  *     @(#)if_loop.c   8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/if_loop.c,v 1.47.2.9 2004/02/08 08:40:24 silby Exp $
- * $DragonFly: src/sys/net/if_loop.c,v 1.26 2008/10/04 11:21:10 sephe Exp $
  */
 
 /*
@@ -40,7 +39,6 @@
  */
 #include "use_loop.h"
 
-#include "opt_atalk.h"
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipx.h"
 #include <netinet/ip6.h>
 #endif
 
-#ifdef NETATALK
-#include <netproto/atalk/at.h>
-#include <netproto/atalk/at_var.h>
-#endif
-
 static void    loopattach(void *);
 static int     looutput(struct ifnet *, struct mbuf *, struct sockaddr *,
                         struct rtentry *);
@@ -155,7 +148,6 @@ looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
        case AF_INET6:
        case AF_IPX:
        case AF_NS:
-       case AF_APPLETALK:
                break;
        default:
                kprintf("looutput: af=%d unexpected\n", dst->sa_family);
@@ -282,11 +274,6 @@ rel:
        case AF_IPX:
                isr = NETISR_IPX;
                break;
-#endif
-#ifdef NETATALK
-       case AF_APPLETALK:
-               isr = NETISR_ATALK2;
-               break;
 #endif
        default:
                kprintf("if_simloop: can't handle af=%d\n", af);
@@ -340,11 +327,6 @@ lo_altqstart(struct ifnet *ifp)
                case AF_ISO:
                        isr = NETISR_ISO;
                        break;
-#endif
-#ifdef NETATALK
-               case AF_APPLETALK:
-                       isr = NETISR_ATALK2;
-                       break;
 #endif
                default:
                        kprintf("lo_altqstart: can't handle af%d\n", af);
index 9a2957c..5074b82 100644 (file)
@@ -65,7 +65,6 @@
  *
  *     @(#)netisr.h    8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/netisr.h,v 1.21.2.5 2002/02/09 23:02:39 luigi Exp $
- * $DragonFly: src/sys/net/netisr.h,v 1.38 2008/10/27 02:56:30 sephe Exp $
  */
 
 #ifndef _NET_NETISR_H_
@@ -89,9 +88,6 @@
 #define NETISR_RESERVED0 0             /* cannot be used */
 #define        NETISR_IP       2               /* same as AF_INET */
 #define        NETISR_NS       6               /* same as AF_NS */
-#define        NETISR_AARP     15              /* Appletalk ARP */
-#define        NETISR_ATALK2   16              /* Appletalk phase 2 */
-#define        NETISR_ATALK1   17              /* Appletalk phase 1 */
 #define        NETISR_ARP      18              /* same as AF_LINK */
 #define        NETISR_MPLS     21              /* MPLS */
 #define        NETISR_IPX      23              /* same as AF_IPX */
index fd8a4a7..ed19c7f 100644 (file)
@@ -1,9 +1,8 @@
 # $FreeBSD: src/sys/modules/if_tun/Makefile,v 1.19.2.1 2001/07/24 09:49:42 dd Exp $
-# $DragonFly: src/sys/net/tun/Makefile,v 1.6 2005/02/18 11:41:42 corecode Exp $
 
 .PATH:  ${.CURDIR}/../../net
 KMOD=   if_tun
-SRCS=   if_tun.c opt_inet.h opt_inet6.h opt_atalk.h opt_ipx.h
+SRCS=   if_tun.c opt_inet.h opt_inet6.h opt_ipx.h
 
 NBPF?= 1
 NTUN?=         2
@@ -17,9 +16,6 @@ opt_inet.h:
 opt_inet6.h:
        echo "#define INET6 1" > opt_inet6.h
 
-opt_atalk.h:
-       echo "#define NETATALK 1" > opt_atalk.h
-
 opt_ipx.h:
        echo "#define IPX 1" > opt_ipx.h
 .endif
index 4be909d..83595db 100644 (file)
@@ -17,7 +17,6 @@
  */
 
 #include "use_tun.h"
-#include "opt_atalk.h"
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipx.h"
@@ -685,11 +684,6 @@ tunwrite(struct dev_write_args *ap)
        case AF_IPX:
                isr = NETISR_IPX;
                break;
-#endif
-#ifdef NETATALK
-       case AF_APPLETALK:
-               isr = NETISR_ATALK2;
-               break;
 #endif
        default:
                m_freem(m);
index 6104fb0..e6f9dfb 100644 (file)
@@ -37,7 +37,6 @@
  * Author: Julian Elischer <julian@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_cisco.c,v 1.4.2.6 2002/07/02 23:44:02 archie Exp $
- * $DragonFly: src/sys/netgraph/cisco/ng_cisco.c,v 1.10 2008/01/05 14:02:39 swildner Exp $
  * $Whistle: ng_cisco.c,v 1.25 1999/11/01 09:24:51 julian Exp $
  */
 
@@ -58,8 +57,6 @@
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
 
-#include <netproto/atalk/at.h>
-
 #include <netproto/ipx/ipx.h>
 #include <netproto/ipx/ipx_if.h>
 
@@ -113,7 +110,6 @@ struct cisco_priv {
        struct in_addr localip;
        struct in_addr localmask;
        struct protoent inet6;          /* IPv6 information */
-       struct protoent atalk;          /* AppleTalk information */
        struct protoent ipx;            /* IPX information */
 };
 typedef struct cisco_priv *sc_p;
@@ -216,7 +212,6 @@ cisco_constructor(node_p *nodep)
        sc->downstream.af = 0xffff;
        sc->inet.af = AF_INET;
        sc->inet6.af = AF_INET6;
-       sc->atalk.af = AF_APPLETALK;
        sc->ipx.af = AF_IPX;
        return (0);
 }
@@ -239,9 +234,6 @@ cisco_newhook(node_p node, hook_p hook, const char *name)
        } else if (strcmp(name, NG_CISCO_HOOK_INET) == 0) {
                sc->inet.hook = hook;
                hook->private = &sc->inet;
-       } else if (strcmp(name, NG_CISCO_HOOK_APPLETALK) == 0) {
-               sc->atalk.hook = hook;
-               hook->private = &sc->atalk;
        } else if (strcmp(name, NG_CISCO_HOOK_IPX) == 0) {
                sc->ipx.hook = hook;
                hook->private = &sc->ipx;
@@ -387,9 +379,6 @@ cisco_rcvdata(hook_p hook, struct mbuf *m, meta_p meta)
        case AF_INET6:
                h->protocol = htons(ETHERTYPE_IPV6);
                break;
-       case AF_APPLETALK:      /* AppleTalk Protocol */
-               h->protocol = htons(ETHERTYPE_AT);
-               break;
        case AF_IPX:            /* Novell IPX Protocol */
                h->protocol = htons(ETHERTYPE_IPX);
                break;
@@ -554,9 +543,6 @@ cisco_input(sc_p sc, struct mbuf *m, meta_p meta)
                case ETHERTYPE_IPV6:
                        pep = &sc->inet6;
                        break;
-               case ETHERTYPE_AT:
-                       pep = &sc->atalk;
-                       break;
                case ETHERTYPE_IPX:
                        pep = &sc->ipx;
                        break;
index 4aaabc4..e432da9 100644 (file)
@@ -37,7 +37,6 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_cisco.h,v 1.2.2.4 2002/07/02 23:44:02 archie Exp $
- * $DragonFly: src/sys/netgraph/cisco/ng_cisco.h,v 1.2 2003/06/17 04:28:49 dillon Exp $
  * $Whistle: ng_cisco.h,v 1.6 1999/01/25 01:21:48 archie Exp $
  */
 
@@ -52,7 +51,6 @@
 #define NG_CISCO_HOOK_DOWNSTREAM       "downstream"
 #define NG_CISCO_HOOK_INET             "inet"
 #define NG_CISCO_HOOK_INET6            "inet6"
-#define NG_CISCO_HOOK_APPLETALK                "atalk"
 #define NG_CISCO_HOOK_IPX              "ipx"
 #define NG_CISCO_HOOK_DEBUG            "debug"
 
index 81ca634..a37cd2f 100644 (file)
@@ -1,9 +1,8 @@
 # $FreeBSD: src/sys/modules/netgraph/iface/Makefile,v 1.5.2.4 2001/12/21 09:00:48 ru Exp $
-# $DragonFly: src/sys/netgraph/iface/Makefile,v 1.4 2005/02/18 11:41:42 corecode Exp $
 # $Whistle: Makefile,v 1.2 1999/01/19 19:39:21 archie Exp $
 
 KMOD=          ng_iface
-SRCS=          ng_iface.c opt_atalk.h opt_inet.h opt_inet6.h opt_ipx.h
+SRCS=          ng_iface.c opt_inet.h opt_inet6.h opt_ipx.h
 
 .if !defined(BUILDING_WITH_KERNEL)
 opt_inet.h:
@@ -12,9 +11,6 @@ opt_inet.h:
 opt_inet6.h:
        echo "#define INET6 1" > opt_inet6.h
 
-opt_atalk.h:
-       echo "#define NETATALK 1" > opt_atalk.h
-
 opt_ipx.h:
        echo "#define IPX 1" > opt_ipx.h
 .endif
index ed17b8b..8228aba 100644 (file)
@@ -51,7 +51,6 @@
  * This node also includes Berkeley packet filter support.
  */
 
-#include "opt_atalk.h"
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipx.h"
@@ -93,7 +92,6 @@ typedef const struct iffam *iffam_p;
 static const struct iffam gFamilies[] = {
        { AF_INET,      NG_IFACE_HOOK_INET      },
        { AF_INET6,     NG_IFACE_HOOK_INET6     },
-       { AF_APPLETALK, NG_IFACE_HOOK_ATALK     },
        { AF_IPX,       NG_IFACE_HOOK_IPX       },
        { AF_ATM,       NG_IFACE_HOOK_ATM       },
        { AF_NATM,      NG_IFACE_HOOK_NATM      },
@@ -781,11 +779,6 @@ ng_iface_rcvdata(hook_p hook, struct mbuf *m, meta_p meta)
        case AF_IPX:
                isr = NETISR_IPX;
                break;
-#endif
-#ifdef NETATALK
-       case AF_APPLETALK:
-               isr = NETISR_ATALK2;
-               break;
 #endif
        default:
                m_freem(m);
index 210e0e4..a22bd08 100644 (file)
@@ -37,7 +37,6 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.5.2.14 2003/08/24 08:24:38 hsu Exp $
- * $DragonFly: src/sys/netgraph/ksocket/ng_ksocket.c,v 1.16 2008/01/05 14:02:39 swildner Exp $
  * $Whistle: ng_ksocket.c,v 1.1 1999/11/16 20:04:40 archie Exp $
  */
 
@@ -71,7 +70,6 @@
 #include "ng_ksocket.h"
 
 #include <netinet/in.h>
-#include <netproto/atalk/at.h>
 
 #define OFFSETOF(s, e) ((char *)&((s *)0)->e - (char *)((s *)0))
 #define SADATA_OFFSET  (OFFSETOF(struct sockaddr, sa_data))
@@ -124,7 +122,6 @@ static const struct ng_ksocket_alias ng_ksocket_families[] = {
        { "local",      PF_LOCAL        },
        { "inet",       PF_INET         },
        { "inet6",      PF_INET6        },
-       { "atalk",      PF_APPLETALK    },
        { "ipx",        PF_IPX          },
        { "atm",        PF_ATM          },
        { NULL,         -1              },
@@ -155,8 +152,6 @@ static const struct ng_ksocket_alias ng_ksocket_protos[] = {
        { "encap",      IPPROTO_ENCAP,          PF_INET         },
        { "divert",     IPPROTO_DIVERT,         PF_INET         },
        { "pim",        IPPROTO_PIM,            PF_INET         },
-       { "ddp",        ATPROTO_DDP,            PF_APPLETALK    },
-       { "aarp",       ATPROTO_AARP,           PF_APPLETALK    },
        { NULL,         -1                                      },
 };
 
@@ -302,7 +297,6 @@ ng_ksocket_sockaddr_parse(const struct ng_parse_type *type,
            }
 
 #if 0
-       case PF_APPLETALK:      /* XXX implement these someday */
        case PF_INET6:
        case PF_IPX:
 #endif
@@ -367,7 +361,6 @@ ng_ksocket_sockaddr_unparse(const struct ng_parse_type *type,
            }
 
 #if 0
-       case PF_APPLETALK:      /* XXX implement these someday */
        case PF_INET6:
        case PF_IPX:
 #endif
index 29e642f..2a3e93b 100644 (file)
@@ -38,7 +38,6 @@
  * Author: Julian Elischer <julian@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_cisco.c,v 1.29 2007/11/30 23:27:39 julian Exp $
- * $DragonFly: src/sys/netgraph7/ng_cisco.c,v 1.2 2008/06/26 23:05:35 dillon Exp $
  * $Whistle: ng_cisco.c,v 1.25 1999/11/01 09:24:51 julian Exp $
  */
 
@@ -56,8 +55,6 @@
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
 
-#include <netatalk/at.h>
-
 #include <netipx/ipx.h>
 #include <netipx/ipx_if.h>
 
@@ -111,7 +108,6 @@ struct cisco_priv {
        struct in_addr localip;
        struct in_addr localmask;
        struct protoent inet6;          /* IPv6 information */
-       struct protoent atalk;          /* AppleTalk information */
        struct protoent ipx;            /* IPX information */
 };
 typedef struct cisco_priv *sc_p;
@@ -206,7 +202,6 @@ cisco_constructor(node_p node)
        sc->downstream.af = 0xffff;
        sc->inet.af = AF_INET;
        sc->inet6.af = AF_INET6;
-       sc->atalk.af = AF_APPLETALK;
        sc->ipx.af = AF_IPX;
        return (0);
 }
@@ -232,9 +227,6 @@ cisco_newhook(node_p node, hook_p hook, const char *name)
        } else if (strcmp(name, NG_CISCO_HOOK_INET6) == 0) {
                sc->inet6.hook = hook;
                NG_HOOK_SET_PRIVATE(hook, &sc->inet6);
-       } else if (strcmp(name, NG_CISCO_HOOK_APPLETALK) == 0) {
-               sc->atalk.hook = hook;
-               NG_HOOK_SET_PRIVATE(hook, &sc->atalk);
        } else if (strcmp(name, NG_CISCO_HOOK_IPX) == 0) {
                sc->ipx.hook = hook;
                NG_HOOK_SET_PRIVATE(hook, &sc->ipx);
@@ -379,9 +371,6 @@ cisco_rcvdata(hook_p hook, item_p item)
        case AF_INET6:
                h->protocol = htons(ETHERTYPE_IPV6);
                break;
-       case AF_APPLETALK:      /* AppleTalk Protocol */
-               h->protocol = htons(ETHERTYPE_AT);
-               break;
        case AF_IPX:            /* Novell IPX Protocol */
                h->protocol = htons(ETHERTYPE_IPX);
                break;
@@ -552,9 +541,6 @@ cisco_input(sc_p sc, item_p item)
                case ETHERTYPE_IPV6:
                        pep = &sc->inet6;
                        break;
-               case ETHERTYPE_AT:
-                       pep = &sc->atalk;
-                       break;
                case ETHERTYPE_IPX:
                        pep = &sc->ipx;
                        break;
index fc0f049..199ac29 100644 (file)
@@ -38,7 +38,6 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_cisco.h,v 1.8 2005/01/07 01:45:39 imp Exp $
- * $DragonFly: src/sys/netgraph7/ng_cisco.h,v 1.2 2008/06/26 23:05:35 dillon Exp $
  * $Whistle: ng_cisco.h,v 1.6 1999/01/25 01:21:48 archie Exp $
  */
 
@@ -53,7 +52,6 @@
 #define NG_CISCO_HOOK_DOWNSTREAM       "downstream"
 #define NG_CISCO_HOOK_INET             "inet"
 #define NG_CISCO_HOOK_INET6            "inet6"
-#define NG_CISCO_HOOK_APPLETALK                "atalk"
 #define NG_CISCO_HOOK_IPX              "ipx"
 #define NG_CISCO_HOOK_DEBUG            "debug"
 
index 990056e..300f855 100644 (file)
@@ -63,7 +63,6 @@
  * OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netgraph/ng_gif_demux.c,v 1.10 2005/01/07 01:45:39 imp Exp $
- * $DragonFly: src/sys/netgraph7/ng_gif_demux.c,v 1.2 2008/06/26 23:05:35 dillon Exp $
  */
 
 /*
@@ -107,7 +106,6 @@ typedef const struct iffam *iffam_p;
 const static struct iffam gFamilies[] = {
        { AF_INET,      NG_GIF_DEMUX_HOOK_INET  },
        { AF_INET6,     NG_GIF_DEMUX_HOOK_INET6 },
-       { AF_APPLETALK, NG_GIF_DEMUX_HOOK_ATALK },
        { AF_IPX,       NG_GIF_DEMUX_HOOK_IPX   },
        { AF_ATM,       NG_GIF_DEMUX_HOOK_ATM   },
        { AF_NATM,      NG_GIF_DEMUX_HOOK_NATM  },
index 0982bee..2d6aab4 100644 (file)
@@ -38,7 +38,6 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_iface.c,v 1.48 2008/01/31 08:51:48 mav Exp $
- * $DragonFly: src/sys/netgraph7/ng_iface.c,v 1.2 2008/06/26 23:05:35 dillon Exp $
  * $Whistle: ng_iface.c,v 1.33 1999/11/01 09:24:51 julian Exp $
  */
 
@@ -53,7 +52,6 @@
  * This node also includes Berkeley packet filter support.
  */
 
-#include "opt_atalk.h"
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipx.h"
@@ -101,7 +99,6 @@ typedef const struct iffam *iffam_p;
 const static struct iffam gFamilies[] = {
        { AF_INET,      NG_IFACE_HOOK_INET      },
        { AF_INET6,     NG_IFACE_HOOK_INET6     },
-       { AF_APPLETALK, NG_IFACE_HOOK_ATALK     },
        { AF_IPX,       NG_IFACE_HOOK_IPX       },
        { AF_ATM,       NG_IFACE_HOOK_ATM       },
        { AF_NATM,      NG_IFACE_HOOK_NATM      },
@@ -743,11 +740,6 @@ ng_iface_rcvdata(hook_p hook, item_p item)
        case AF_IPX:
                isr = NETISR_IPX;
                break;
-#endif
-#ifdef NETATALK
-       case AF_APPLETALK:
-               isr = NETISR_ATALK2;
-               break;
 #endif
        default:
                m_freem(m);
index b2b84bb..ff6894b 100644 (file)
@@ -38,7 +38,6 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.61 2008/03/07 21:12:56 mav Exp $
- * $DragonFly: src/sys/netgraph7/ng_ksocket.c,v 1.2 2008/06/26 23:05:35 dillon Exp $
  * $Whistle: ng_ksocket.c,v 1.1 1999/11/16 20:04:40 archie Exp $
  */
 
@@ -67,7 +66,6 @@
 #include "ng_ksocket.h"
 
 #include <netinet/in.h>
-#include <netatalk/at.h>
 
 #ifdef NG_SEPARATE_MALLOC
 MALLOC_DEFINE(M_NETGRAPH_KSOCKET, "netgraph_ksock", "netgraph ksock node ");
@@ -120,7 +118,6 @@ static const struct ng_ksocket_alias ng_ksocket_families[] = {
        { "local",      PF_LOCAL        },
        { "inet",       PF_INET         },
        { "inet6",      PF_INET6        },
-       { "atalk",      PF_APPLETALK    },
        { "ipx",        PF_IPX          },
        { "atm",        PF_ATM          },
        { NULL,         -1              },
@@ -151,8 +148,6 @@ static const struct ng_ksocket_alias ng_ksocket_protos[] = {
        { "encap",      IPPROTO_ENCAP,          PF_INET         },
        { "divert",     IPPROTO_DIVERT,         PF_INET         },
        { "pim",        IPPROTO_PIM,            PF_INET         },
-       { "ddp",        ATPROTO_DDP,            PF_APPLETALK    },
-       { "aarp",       ATPROTO_AARP,           PF_APPLETALK    },
        { NULL,         -1                                      },
 };
 
@@ -300,7 +295,6 @@ ng_ksocket_sockaddr_parse(const struct ng_parse_type *type,
            }
 
 #if 0
-       case PF_APPLETALK:      /* XXX implement these someday */
        case PF_INET6:
        case PF_IPX:
 #endif
@@ -364,7 +358,6 @@ ng_ksocket_sockaddr_unparse(const struct ng_parse_type *type,
            }
 
 #if 0
-       case PF_APPLETALK:      /* XXX implement these someday */
        case PF_INET6:
        case PF_IPX:
 #endif
index 7366148..a61525d 100644 (file)
@@ -25,7 +25,6 @@
  */
 /*
  * $FreeBSD: src/sys/netinet/ip_carp.c,v 1.48 2007/02/02 09:39:09 glebius Exp $
- * $DragonFly: src/sys/netinet/ip_carp.c,v 1.10 2008/07/27 10:06:57 sephe Exp $
  */
 
 #include "opt_carp.h"
@@ -1960,7 +1959,6 @@ carp_looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
        case AF_INET:
        case AF_INET6:
        case AF_IPX:
-       case AF_APPLETALK:
                break;
 
        default:
index 04023d8..ea56220 100644 (file)
@@ -43,7 +43,6 @@
  */
 
 #include "opt_inet.h"
-#include "opt_atalk.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #error ip_gre input without IP?
 #endif
 
-#ifdef NETATALK
-#include <netproto/atalk/at.h>
-#include <netproto/atalk/at_var.h>
-#include <netproto/atalk/at_extern.h>
-#endif
-
 /* Needs IP headers. */
 #include <net/gre/if_gre.h>
 
@@ -173,11 +166,6 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto)
                case WCCP_PROTOCOL_TYPE:
                        isr = NETISR_IP;
                        break;
-#ifdef NETATALK
-               case ETHERTYPE_ATALK:
-                       isr = NETISR_ATALK1;
-                       break;
-#endif
                case ETHERTYPE_IPV6:
                        /* FALLTHROUGH */
                default:           /* others not yet supported */
index 330580b..1a83b9d 100644 (file)
@@ -249,9 +249,7 @@ ieee80211_decap(struct ieee80211vap *vap, struct mbuf *m, int hdrlen)
        if (llc->llc_dsap == LLC_SNAP_LSAP && llc->llc_ssap == LLC_SNAP_LSAP &&
            llc->llc_control == LLC_UI && llc->llc_snap.org_code[0] == 0 &&
            llc->llc_snap.org_code[1] == 0 && llc->llc_snap.org_code[2] == 0 &&
-           /* NB: preserve AppleTalk frames that have a native SNAP hdr */
-           !(llc->llc_snap.ether_type == htons(ETHERTYPE_AARP) ||
-             llc->llc_snap.ether_type == htons(ETHERTYPE_IPX))) {
+           !(llc->llc_snap.ether_type == htons(ETHERTYPE_IPX))) {
                m_adj(m, hdrlen + sizeof(struct llc) - sizeof(*eh));
                llc = NULL;
        } else {
index e6d91f2..a16edca 100644 (file)
@@ -927,9 +927,7 @@ mesh_decap(struct ieee80211vap *vap, struct mbuf *m, int hdrlen, int meshdrlen)
        if (llc->llc_dsap == LLC_SNAP_LSAP && llc->llc_ssap == LLC_SNAP_LSAP &&
            llc->llc_control == LLC_UI && llc->llc_snap.org_code[0] == 0 &&
            llc->llc_snap.org_code[1] == 0 && llc->llc_snap.org_code[2] == 0 &&
-           /* NB: preserve AppleTalk frames that have a native SNAP hdr */
-           !(llc->llc_snap.ether_type == htons(ETHERTYPE_AARP) ||
-             llc->llc_snap.ether_type == htons(ETHERTYPE_IPX))) {
+           !(llc->llc_snap.ether_type == htons(ETHERTYPE_IPX))) {
                m_adj(m, hdrlen + sizeof(struct llc) - sizeof(*eh));
                llc = NULL;
        } else {
diff --git a/sys/netproto/atalk/COPYRIGHT b/sys/netproto/atalk/COPYRIGHT
deleted file mode 100644 (file)
index 24805aa..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1990,1994 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Wesley Craig
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-764-2278
- *     netatalk@umich.edu
- */
diff --git a/sys/netproto/atalk/aarp.c b/sys/netproto/atalk/aarp.c
deleted file mode 100644 (file)
index 6197f2b..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * $FreeBSD: src/sys/netatalk/aarp.c,v 1.12.2.2 2001/06/23 20:43:09 iedowse Exp $
- * $DragonFly: src/sys/netproto/atalk/aarp.c,v 1.24 2008/05/14 11:59:24 sephe Exp $
- */
-
-#include "opt_atalk.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/kernel.h>
-#include <sys/socket.h>
-#include <sys/syslog.h>
-
-#include <sys/thread2.h>
-#include <sys/msgport2.h>
-#include <sys/mplock2.h>
-
-#include <net/if.h>
-#include <net/netisr.h>
-
-#include <netinet/in.h>
-#undef s_net
-#include <netinet/if_ether.h>
-
-#include "at.h"
-#include "at_var.h"
-#include "aarp.h"
-#include "phase2.h"
-#include "at_extern.h"
-
-static void aarptfree( struct aarptab *aat);
-static void at_aarpinput( struct arpcom *ac, struct mbuf *m);
-
-#define AARPTAB_BSIZ   9
-#define AARPTAB_NB     19
-#define AARPTAB_SIZE   (AARPTAB_BSIZ * AARPTAB_NB)
-static struct aarptab  aarptab[AARPTAB_SIZE];
-
-#define AARPTAB_HASH(a) \
-    ((((a).s_net << 8 ) + (a).s_node ) % AARPTAB_NB )
-
-#define AARPTAB_LOOK(aat,addr) { \
-    int                n; \
-    aat = &aarptab[ AARPTAB_HASH(addr) * AARPTAB_BSIZ ]; \
-    for ( n = 0; n < AARPTAB_BSIZ; n++, aat++ ) \
-       if ( aat->aat_ataddr.s_net == (addr).s_net && \
-            aat->aat_ataddr.s_node == (addr).s_node ) \
-           break; \
-       if ( n >= AARPTAB_BSIZ ) \
-           aat = 0; \
-}
-
-#define AARPT_AGE      (60 * 1)
-#define AARPT_KILLC    20
-#define AARPT_KILLI    3
-
-static u_char atmulticastaddr[ 6 ] = {
-    0x09, 0x00, 0x07, 0xff, 0xff, 0xff,
-};
-
-u_char at_org_code[ 3 ] = {
-    0x08, 0x00, 0x07,
-};
-u_char aarp_org_code[ 3 ] = {
-    0x00, 0x00, 0x00,
-};
-
-static struct callout aarptimer_ch;
-
-static void
-aarptimer(void *ignored)
-{
-    struct aarptab     *aat;
-    int                        i;
-
-    aat = aarptab;
-    for ( i = 0; i < AARPTAB_SIZE; i++, aat++ ) {
-       if ( aat->aat_flags == 0 || ( aat->aat_flags & ATF_PERM ))
-           continue;
-       if ( ++aat->aat_timer < (( aat->aat_flags & ATF_COM ) ?
-               AARPT_KILLC : AARPT_KILLI ))
-           continue;
-       crit_enter();
-       aarptfree( aat );
-       crit_exit();
-    }
-    callout_reset(&aarptimer_ch, AARPT_AGE * hz, aarptimer, NULL);
-}
-
-/* 
- * search through the network addresses to find one that includes
- * the given network.. remember to take netranges into
- * consideration.
- */
-struct at_ifaddr *
-at_ifawithnet(struct sockaddr_at *sat)
-{
-    struct at_ifaddr   *aa;
-    struct sockaddr_at *sat2;
-
-       for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-               sat2 = &(aa->aa_addr);
-               if ( sat2->sat_addr.s_net == sat->sat_addr.s_net ) {
-                       break;
-               }
-               if( (aa->aa_flags & AFA_PHASE2 )
-               && (ntohs(aa->aa_firstnet) <= ntohs(sat->sat_addr.s_net))
-               && (ntohs(aa->aa_lastnet) >= ntohs(sat->sat_addr.s_net))) {
-                       break;
-               }
-       }
-       return( aa );
-}
-
-static void
-aarpwhohas(struct arpcom *ac, struct sockaddr_at *sat)
-{
-    struct mbuf                *m;
-    struct ether_header        *eh;
-    struct ether_aarp  *ea;
-    struct at_ifaddr   *aa;
-    struct llc         *llc;
-    struct sockaddr    sa;
-
-    if (( m = m_gethdr( MB_DONTWAIT, MT_DATA )) == NULL ) {
-       return;
-    }
-    m->m_len = sizeof( *ea );
-    m->m_pkthdr.len = sizeof( *ea );
-    MH_ALIGN( m, sizeof( *ea ));
-
-    ea = mtod( m, struct ether_aarp *);
-    bzero((caddr_t)ea, sizeof( *ea ));
-
-    ea->aarp_hrd = htons( AARPHRD_ETHER );
-    ea->aarp_pro = htons( ETHERTYPE_AT );
-    ea->aarp_hln = sizeof( ea->aarp_sha );
-    ea->aarp_pln = sizeof( ea->aarp_spu );
-    ea->aarp_op = htons( AARPOP_REQUEST );
-    bcopy(ac->ac_enaddr, ea->aarp_sha, sizeof ea->aarp_sha);
-
-    /*
-     * We need to check whether the output ethernet type should
-     * be phase 1 or 2. We have the interface that we'll be sending
-     * the aarp out. We need to find an AppleTalk network on that
-     * interface with the same address as we're looking for. If the
-     * net is phase 2, generate an 802.2 and SNAP header.
-     */
-    if ((aa = at_ifawithnet( sat )) == NULL) {
-       m_freem( m );
-       return;
-    }
-
-    eh = (struct ether_header *)sa.sa_data;
-
-    if ( aa->aa_flags & AFA_PHASE2 ) {
-       bcopy((caddr_t)atmulticastaddr, (caddr_t)eh->ether_dhost,
-               sizeof( eh->ether_dhost ));
-       eh->ether_type = htons(sizeof(struct llc) + sizeof(struct ether_aarp));
-       M_PREPEND( m, sizeof( struct llc ), MB_WAIT );
-       llc = mtod( m, struct llc *);
-       llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP;
-       llc->llc_control = LLC_UI;
-       bcopy( aarp_org_code, llc->llc_org_code, sizeof( aarp_org_code ));
-       llc->llc_ether_type = htons( ETHERTYPE_AARP );
-
-       bcopy( &AA_SAT( aa )->sat_addr.s_net, ea->aarp_spnet,
-              sizeof( ea->aarp_spnet ));
-       bcopy( &sat->sat_addr.s_net, ea->aarp_tpnet,
-              sizeof( ea->aarp_tpnet ));
-       ea->aarp_spnode = AA_SAT( aa )->sat_addr.s_node;
-       ea->aarp_tpnode = sat->sat_addr.s_node;
-    } else {
-       bcopy(ac->ac_if.if_broadcastaddr, eh->ether_dhost,
-             ac->ac_if.if_addrlen);
-       eh->ether_type = htons( ETHERTYPE_AARP );
-
-       ea->aarp_spa = AA_SAT( aa )->sat_addr.s_node;
-       ea->aarp_tpa = sat->sat_addr.s_node;
-    }
-
-#ifdef NETATALKDEBUG
-    kprintf("aarp: sending request for %u.%u\n",
-          ntohs(AA_SAT( aa )->sat_addr.s_net),
-          AA_SAT( aa )->sat_addr.s_node);
-#endif /* NETATALKDEBUG */
-
-    sa.sa_len = sizeof( struct sockaddr );
-    sa.sa_family = AF_UNSPEC;
-    ac->ac_if.if_output(&ac->ac_if,
-       m, &sa, NULL);  /* XXX NULL should be routing information */
-}
-
-int
-aarpresolve(struct arpcom *ac, struct mbuf *m, struct sockaddr_at *destsat,
-           u_char *desten )
-{
-    struct at_ifaddr   *aa;
-    struct aarptab     *aat;
-
-    if (at_broadcast(destsat)) {
-       m->m_flags |= M_BCAST;
-       if ((aa = at_ifawithnet(destsat)) == NULL)  {
-           m_freem(m);
-           return (0);
-       }
-       if (aa->aa_flags & AFA_PHASE2)
-           bcopy(atmulticastaddr, desten, sizeof atmulticastaddr);
-       else
-           bcopy(ac->ac_if.if_broadcastaddr, desten, ac->ac_if.if_addrlen);
-       return (1);
-    }
-
-    crit_enter();
-    AARPTAB_LOOK( aat, destsat->sat_addr );
-    if (aat == NULL) {                 /* No entry */
-       aat = aarptnew( &destsat->sat_addr );
-       if (aat == NULL) {
-           panic("aarpresolve: no free entry");
-       }
-       aat->aat_hold = m;
-       aarpwhohas(ac, destsat);
-       crit_exit();
-       return (0);
-    }
-    /* found an entry */
-    aat->aat_timer = 0;
-    if (aat->aat_flags & ATF_COM) {    /* entry is COMplete */
-       bcopy(aat->aat_enaddr, desten, sizeof aat->aat_enaddr);
-       crit_exit();
-       return (1);
-    }
-    /* entry has not completed */
-    if (aat->aat_hold) {
-       m_freem(aat->aat_hold);
-    }
-    aat->aat_hold = m;
-    aarpwhohas(ac, destsat);
-    crit_exit();
-    return (0);
-}
-
-void
-aarpintr(netmsg_t msg)
-{
-    struct mbuf *m = msg->packet.nm_packet;
-    struct arphdr      *ar;
-    struct arpcom      *ac;
-
-    get_mplock();
-
-    ac = (struct arpcom *)m->m_pkthdr.rcvif;
-    if ( ac->ac_if.if_flags & IFF_NOARP )
-       goto out;
-
-    if ( m->m_len < sizeof( struct arphdr )) {
-       goto out;
-    }
-
-    ar = mtod( m, struct arphdr *);
-    if ( ntohs( ar->ar_hrd ) != AARPHRD_ETHER ) {
-       goto out;
-    }
-    
-    if ( m->m_len < sizeof( struct arphdr ) + 2 * ar->ar_hln +
-           2 * ar->ar_pln ) {
-       goto out;
-    }
-    
-    switch( ntohs( ar->ar_pro )) {
-    case ETHERTYPE_AT :
-       at_aarpinput( ac, m );
-       goto out2;
-
-    default:
-       break;
-    }
-
-out:
-    m_freem(m);
-out2:
-    rel_mplock();
-    /* msg was embedded in the mbuf, do not reply! */
-}
-
-static void
-at_aarpinput( struct arpcom *ac, struct mbuf *m)
-{
-    struct ether_aarp  *ea;
-    struct at_ifaddr   *aa = NULL;
-    struct aarptab     *aat;
-    struct ether_header        *eh;
-    struct llc         *llc;
-    struct sockaddr_at sat;
-    struct sockaddr    sa;
-    struct at_addr     spa, tpa, ma;
-    int                        op;
-    u_short            net;
-
-    ea = mtod( m, struct ether_aarp *);
-
-    /* Check to see if from my hardware address */
-    if ( !bcmp(( caddr_t )ea->aarp_sha, ( caddr_t )ac->ac_enaddr,
-           sizeof( ac->ac_enaddr ))) {
-       m_freem( m );
-       return;
-    }
-
-    op = ntohs(ea->aarp_op);
-    bcopy(ea->aarp_tpnet, &net, sizeof net);
-
-    if ( net != 0 ) { /* should be ATADDR_ANYNET? */
-       sat.sat_len = sizeof(struct sockaddr_at);
-       sat.sat_family = AF_APPLETALK;
-       sat.sat_addr.s_net = net;
-       if ((aa = at_ifawithnet(&sat)) == NULL) {
-           m_freem( m );
-           return;
-       }
-       bcopy(ea->aarp_spnet, &spa.s_net, sizeof spa.s_net);
-       bcopy(ea->aarp_tpnet, &tpa.s_net, sizeof tpa.s_net);
-    } else {
-       struct ifaddr_container *ifac;
-
-       /*
-        * Since we don't know the net, we just look for the first
-        * phase 1 address on the interface.
-        */
-       TAILQ_FOREACH(ifac, &ac->ac_if.if_addrheads[mycpuid], ifa_link) {
-           aa = (struct at_ifaddr *)(ifac->ifa);
-           if ( AA_SAT( aa )->sat_family == AF_APPLETALK &&
-                   ( aa->aa_flags & AFA_PHASE2 ) == 0 ) {
-               break;
-           }
-       }
-       if ( aa == NULL ) {
-           m_freem( m );
-           return;
-       }
-       tpa.s_net = spa.s_net = AA_SAT( aa )->sat_addr.s_net;
-    }
-
-    spa.s_node = ea->aarp_spnode;
-    tpa.s_node = ea->aarp_tpnode;
-    ma.s_net = AA_SAT( aa )->sat_addr.s_net;
-    ma.s_node = AA_SAT( aa )->sat_addr.s_node;
-
-    /*
-     * This looks like it's from us.
-     */
-    if ( spa.s_net == ma.s_net && spa.s_node == ma.s_node ) {
-       if ( aa->aa_flags & AFA_PROBING ) {
-           /*
-            * We're probing, someone either responded to our probe, or
-            * probed for the same address we'd like to use. Change the
-            * address we're probing for.
-            */
-           callout_stop(&aa->aa_ch);
-           wakeup( aa );
-           m_freem( m );
-           return;
-       } else if ( op != AARPOP_PROBE ) {
-           /*
-            * This is not a probe, and we're not probing. This means
-            * that someone's saying they have the same source address
-            * as the one we're using. Get upset...
-            */
-           log( LOG_ERR,
-                   "aarp: duplicate AT address!! %x:%x:%x:%x:%x:%x\n",
-                   ea->aarp_sha[ 0 ], ea->aarp_sha[ 1 ], ea->aarp_sha[ 2 ],
-                   ea->aarp_sha[ 3 ], ea->aarp_sha[ 4 ], ea->aarp_sha[ 5 ]);
-           m_freem( m );
-           return;
-       }
-    }
-
-    AARPTAB_LOOK( aat, spa );
-    if ( aat ) {
-       if ( op == AARPOP_PROBE ) {
-           /*
-            * Someone's probing for spa, dealocate the one we've got,
-            * so that if the prober keeps the address, we'll be able
-            * to arp for him.
-            */
-           aarptfree( aat );
-           m_freem( m );
-           return;
-       }
-
-       bcopy(( caddr_t )ea->aarp_sha, ( caddr_t )aat->aat_enaddr,
-               sizeof( ea->aarp_sha ));
-       aat->aat_flags |= ATF_COM;
-       if ( aat->aat_hold ) {
-           struct mbuf *mhold = aat->aat_hold;
-           aat->aat_hold = NULL;
-           sat.sat_len = sizeof(struct sockaddr_at);
-           sat.sat_family = AF_APPLETALK;
-           sat.sat_addr = spa;
-           ac->ac_if.if_output(&ac->ac_if, mhold,
-                   (struct sockaddr *)&sat, NULL); /* XXX */
-       }
-    } else if ((tpa.s_net == ma.s_net)
-          && (tpa.s_node == ma.s_node)
-          && (op != AARPOP_PROBE)
-          && ((aat = aarptnew( &spa )) != NULL)) {
-               bcopy(( caddr_t )ea->aarp_sha, ( caddr_t )aat->aat_enaddr,
-                   sizeof( ea->aarp_sha ));
-               aat->aat_flags |= ATF_COM;
-    }
-
-    /*
-     * Don't respond to responses, and never respond if we're
-     * still probing.
-     */
-    if ( tpa.s_net != ma.s_net || tpa.s_node != ma.s_node ||
-           op == AARPOP_RESPONSE || ( aa->aa_flags & AFA_PROBING )) {
-       m_freem( m );
-       return;
-    }
-
-    bcopy(( caddr_t )ea->aarp_sha, ( caddr_t )ea->aarp_tha,
-           sizeof( ea->aarp_sha ));
-    bcopy(( caddr_t )ac->ac_enaddr, ( caddr_t )ea->aarp_sha,
-           sizeof( ea->aarp_sha ));
-
-    /* XXX */
-    eh = (struct ether_header *)sa.sa_data;
-    bcopy(( caddr_t )ea->aarp_tha, ( caddr_t )eh->ether_dhost,
-           sizeof( eh->ether_dhost ));
-
-    if ( aa->aa_flags & AFA_PHASE2 ) {
-       eh->ether_type = htons( sizeof( struct llc ) +
-               sizeof( struct ether_aarp ));
-       M_PREPEND( m, sizeof( struct llc ), MB_DONTWAIT );
-       if ( m == NULL ) {
-           return;
-       }
-       llc = mtod( m, struct llc *);
-       llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP;
-       llc->llc_control = LLC_UI;
-       bcopy( aarp_org_code, llc->llc_org_code, sizeof( aarp_org_code ));
-       llc->llc_ether_type = htons( ETHERTYPE_AARP );
-
-       bcopy( ea->aarp_spnet, ea->aarp_tpnet, sizeof( ea->aarp_tpnet ));
-       bcopy( &ma.s_net, ea->aarp_spnet, sizeof( ea->aarp_spnet ));
-    } else {
-       eh->ether_type = htons( ETHERTYPE_AARP );
-    }
-
-    ea->aarp_tpnode = ea->aarp_spnode;
-    ea->aarp_spnode = ma.s_node;
-    ea->aarp_op = htons( AARPOP_RESPONSE );
-
-    sa.sa_len = sizeof( struct sockaddr );
-    sa.sa_family = AF_UNSPEC;
-    ac->ac_if.if_output(&ac->ac_if, m, &sa, NULL); /* XXX */
-    return;
-}
-
-static void
-aarptfree(struct aarptab *aat)
-{
-
-    if ( aat->aat_hold )
-       m_freem( aat->aat_hold );
-    aat->aat_hold = NULL;
-    aat->aat_timer = aat->aat_flags = 0;
-    aat->aat_ataddr.s_net = 0;
-    aat->aat_ataddr.s_node = 0;
-}
-
-struct aarptab *
-aarptnew(struct at_addr *addr)
-{
-    int                        n;
-    int                        oldest = -1;
-    struct aarptab     *aat, *aato = NULL;
-    static int         first = 1;
-
-    if ( first ) {
-       first = 0;
-       callout_init(&aarptimer_ch);
-       callout_reset(&aarptimer_ch, hz, aarptimer, NULL);
-    }
-    aat = &aarptab[ AARPTAB_HASH( *addr ) * AARPTAB_BSIZ ];
-    for ( n = 0; n < AARPTAB_BSIZ; n++, aat++ ) {
-       if ( aat->aat_flags == 0 )
-           goto out;
-       if ( aat->aat_flags & ATF_PERM )
-           continue;
-       if ((int) aat->aat_timer > oldest ) {
-           oldest = aat->aat_timer;
-           aato = aat;
-       }
-    }
-    if ( aato == NULL )
-       return( NULL );
-    aat = aato;
-    aarptfree( aat );
-out:
-    aat->aat_ataddr = *addr;
-    aat->aat_flags = ATF_INUSE;
-    return( aat );
-}
-
-
-void
-aarpprobe(void *arg)
-{
-    struct arpcom      *ac = arg;
-    struct mbuf                *m;
-    struct ether_header        *eh;
-    struct ether_aarp  *ea;
-    struct ifaddr_container *ifac;
-    struct at_ifaddr   *aa = NULL;
-    struct llc         *llc;
-    struct sockaddr    sa;
-
-    /*
-     * We need to check whether the output ethernet type should
-     * be phase 1 or 2. We have the interface that we'll be sending
-     * the aarp out. We need to find an AppleTalk network on that
-     * interface with the same address as we're looking for. If the
-     * net is phase 2, generate an 802.2 and SNAP header.
-     */
-    TAILQ_FOREACH(ifac, &ac->ac_if.if_addrheads[mycpuid], ifa_link) {
-       aa = (struct at_ifaddr *)(ifac->ifa);
-       if ( AA_SAT( aa )->sat_family == AF_APPLETALK &&
-               ( aa->aa_flags & AFA_PROBING )) {
-           break;
-       }
-    }
-    if ( aa == NULL ) {                /* serious error XXX */
-       kprintf( "aarpprobe why did this happen?!\n" );
-       return;
-    }
-
-    if ( aa->aa_probcnt <= 0 ) {
-       aa->aa_flags &= ~AFA_PROBING;
-       wakeup( aa );
-       return;
-    } else {
-       callout_reset(&aa->aa_ch, hz / 5, aarpprobe, ac);
-    }
-
-    if (( m = m_gethdr( MB_DONTWAIT, MT_DATA )) == NULL ) {
-       return;
-    }
-    m->m_len = sizeof( *ea );
-    m->m_pkthdr.len = sizeof( *ea );
-    MH_ALIGN( m, sizeof( *ea ));
-
-    ea = mtod( m, struct ether_aarp *);
-    bzero((caddr_t)ea, sizeof( *ea ));
-
-    ea->aarp_hrd = htons( AARPHRD_ETHER );
-    ea->aarp_pro = htons( ETHERTYPE_AT );
-    ea->aarp_hln = sizeof( ea->aarp_sha );
-    ea->aarp_pln = sizeof( ea->aarp_spu );
-    ea->aarp_op = htons( AARPOP_PROBE );
-    bcopy((caddr_t)ac->ac_enaddr, (caddr_t)ea->aarp_sha,
-           sizeof( ea->aarp_sha ));
-
-    eh = (struct ether_header *)sa.sa_data;
-
-    if ( aa->aa_flags & AFA_PHASE2 ) {
-       bcopy((caddr_t)atmulticastaddr, (caddr_t)eh->ether_dhost,
-               sizeof( eh->ether_dhost ));
-       eh->ether_type = htons( sizeof( struct llc ) +
-               sizeof( struct ether_aarp ));
-       M_PREPEND( m, sizeof( struct llc ), MB_WAIT );
-       /* XXX-MBUF */
-       llc = mtod( m, struct llc *);
-       llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP;
-       llc->llc_control = LLC_UI;
-       bcopy( aarp_org_code, llc->llc_org_code, sizeof( aarp_org_code ));
-       llc->llc_ether_type = htons( ETHERTYPE_AARP );
-
-       bcopy( &AA_SAT( aa )->sat_addr.s_net, ea->aarp_spnet,
-               sizeof( ea->aarp_spnet ));
-       bcopy( &AA_SAT( aa )->sat_addr.s_net, ea->aarp_tpnet,
-               sizeof( ea->aarp_tpnet ));
-       ea->aarp_spnode = ea->aarp_tpnode = AA_SAT( aa )->sat_addr.s_node;
-    } else {
-       bcopy(ac->ac_if.if_broadcastaddr, eh->ether_dhost,
-             ac->ac_if.if_addrlen);
-       eh->ether_type = htons( ETHERTYPE_AARP );
-       ea->aarp_spa = ea->aarp_tpa = AA_SAT( aa )->sat_addr.s_node;
-    }
-
-#ifdef NETATALKDEBUG
-    kprintf("aarp: sending probe for %u.%u\n",
-          ntohs(AA_SAT( aa )->sat_addr.s_net),
-          AA_SAT( aa )->sat_addr.s_node);
-#endif /* NETATALKDEBUG */
-
-    sa.sa_len = sizeof( struct sockaddr );
-    sa.sa_family = AF_UNSPEC;
-    ac->ac_if.if_output(&ac->ac_if, m, &sa, NULL); /* XXX */
-    aa->aa_probcnt--;
-}
-
-void
-aarp_clean(void)
-{
-    struct aarptab     *aat;
-    int                        i;
-
-    callout_stop(&aarptimer_ch);
-    for ( i = 0, aat = aarptab; i < AARPTAB_SIZE; i++, aat++ ) {
-       if ( aat->aat_hold ) {
-           m_freem( aat->aat_hold );
-           aat->aat_hold = NULL;
-       }
-    }
-}
diff --git a/sys/netproto/atalk/aarp.h b/sys/netproto/atalk/aarp.h
deleted file mode 100644 (file)
index 7de7cfd..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * $FreeBSD: src/sys/netatalk/aarp.h,v 1.3 1999/12/29 04:45:57 peter Exp $
- * $DragonFly: src/sys/netproto/atalk/aarp.h,v 1.2 2003/06/17 04:28:48 dillon Exp $
- */
-
-#ifndef _NETATALK_AARP_H_
-/*
- * This structure is used for both phase 1 and 2. Under phase 1
- * the net is not filled in. It is in phase 2. In both cases, the
- * hardware address length is (for some unknown reason) 4. If
- * anyone at Apple could program their way out of paper bag, it
- * would be 1 and 3 respectively for phase 1 and 2.
- */
-union aapa {
-    u_char             ap_pa[4];
-    struct ap_node {
-       u_char          an_zero;
-       u_char          an_net[2];
-       u_char          an_node;
-    } ap_node;
-};
-
-struct ether_aarp {
-    struct arphdr      eaa_hdr;
-    u_char             aarp_sha[6];
-    union aapa         aarp_spu;
-    u_char             aarp_tha[6];
-    union aapa         aarp_tpu;
-};
-#define aarp_hrd       eaa_hdr.ar_hrd
-#define aarp_pro       eaa_hdr.ar_pro
-#define aarp_hln       eaa_hdr.ar_hln
-#define aarp_pln       eaa_hdr.ar_pln
-#define aarp_op                eaa_hdr.ar_op
-#define aarp_spa       aarp_spu.ap_node.an_node
-#define aarp_tpa       aarp_tpu.ap_node.an_node
-#define aarp_spnet     aarp_spu.ap_node.an_net
-#define aarp_tpnet     aarp_tpu.ap_node.an_net
-#define aarp_spnode    aarp_spu.ap_node.an_node
-#define aarp_tpnode    aarp_tpu.ap_node.an_node
-
-struct aarptab {
-    struct at_addr     aat_ataddr;
-    u_char             aat_enaddr[ 6 ];
-    u_char             aat_timer;
-    u_char             aat_flags;
-    struct mbuf                *aat_hold;
-};
-
-#define AARPHRD_ETHER  0x0001
-
-#define AARPOP_REQUEST 0x01
-#define AARPOP_RESPONSE        0x02
-#define AARPOP_PROBE   0x03
-
-#ifdef _KERNEL
-struct aarptab         *aarptnew(struct at_addr      *);
-#endif
-
-#endif /* _NETATALK_AARP_H_ */
diff --git a/sys/netproto/atalk/at.h b/sys/netproto/atalk/at.h
deleted file mode 100644 (file)
index 84508f8..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- *
- * $FreeBSD: src/sys/netatalk/at.h,v 1.5.6.1 2002/12/01 14:03:09 sobomax Exp $
- * $DragonFly: src/sys/netproto/atalk/at.h,v 1.2 2003/06/17 04:28:48 dillon Exp $
- */
-
-#ifndef __AT_HEADER__
-#define __AT_HEADER__
-/*
- * Supported protocols
- */
-#define ATPROTO_DDP    0
-#define ATPROTO_AARP   254
-
-#define DDP_MAXSZ      587
-
-/*
- * If ATPORT_FIRST <= Port < ATPORT_RESERVED,
- * Port was created by a privileged process.
- * If ATPORT_RESERVED <= Port < ATPORT_LAST,
- * Port was not necessarily created by a
- * privileged process.
- */
-#define ATPORT_FIRST   1
-#define ATPORT_RESERVED        128
-#define ATPORT_LAST    255
-
-/*
- * AppleTalk address.
- */
-struct at_addr {
-    u_short    s_net;
-    u_char     s_node;
-};
-
-#define ATADDR_ANYNET  (u_short)0x0000
-#define ATADDR_ANYNODE (u_char)0x00
-#define ATADDR_ANYPORT (u_char)0x00
-#define ATADDR_BCAST   (u_char)0xff            /* There is no BCAST for NET */
-
-struct netrange {
-    u_char             nr_phase;
-    u_short            nr_firstnet;
-    u_short            nr_lastnet;
-};
-
-/*
- * Socket address, AppleTalk style.  We keep magic information in the 
- * zero bytes.  There are three types, NONE, CONFIG which has the phase
- * and a net range, and IFACE which has the network address of an
- * interface.  IFACE may be filled in by the client, and is filled in
- * by the kernel.
- */
-struct sockaddr_at {
-    u_char             sat_len;
-    u_char             sat_family;
-    u_char             sat_port;
-    struct at_addr     sat_addr;
-    union {
-       struct netrange r_netrange;
-       char            r_zero[ 8 ];    /* Hide a struct netrange in here */
-    } sat_range;
-};
-
-#define sat_zero sat_range.r_zero
-
-#endif /* !__AT_HEADER__ */
diff --git a/sys/netproto/atalk/at_control.c b/sys/netproto/atalk/at_control.c
deleted file mode 100644 (file)
index ef6c971..0000000
+++ /dev/null
@@ -1,834 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.13 2008/03/07 11:34:21 sephe Exp $
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-#include <sys/priv.h>
-#include <sys/sockio.h>
-#include <sys/malloc.h>
-#include <sys/kernel.h>
-#include <sys/socket.h>
-#include <sys/thread2.h>
-#include <net/if.h>
-#include <net/route.h>
-#include <netinet/in.h>
-#undef s_net
-#include <netinet/if_ether.h>
-
-#include "at.h"
-#include "at_var.h"
-#include "at_extern.h"
-
-struct at_ifaddr       *at_ifaddr;
-
-static int aa_dorangeroute(struct ifaddr *ifa,
-                       u_int first, u_int last, int cmd);
-static int aa_addsingleroute(struct ifaddr *ifa,
-                       struct at_addr *addr, struct at_addr *mask);
-static int aa_delsingleroute(struct ifaddr *ifa,
-                       struct at_addr *addr, struct at_addr *mask);
-static int aa_dosingleroute(struct ifaddr *ifa, struct at_addr *addr,
-                       struct at_addr *mask, int cmd, int flags);
-static int at_scrub( struct ifnet *ifp, struct at_ifaddr *aa );
-static int at_ifinit( struct ifnet *ifp, struct at_ifaddr *aa,
-                                       struct sockaddr_at *sat );
-static int aa_claim_addr(struct ifaddr *ifa, struct sockaddr *gw);
-
-# define sateqaddr(a,b)        ((a)->sat_len == (b)->sat_len && \
-                   (a)->sat_family == (b)->sat_family && \
-                   (a)->sat_addr.s_net == (b)->sat_addr.s_net && \
-                   (a)->sat_addr.s_node == (b)->sat_addr.s_node )
-
-int
-at_control(struct socket *so, u_long cmd, caddr_t data,
-          struct ifnet *ifp, struct thread *td )
-{
-    struct ifreq       *ifr = (struct ifreq *)data;
-    struct sockaddr_at *sat;
-    struct netrange    *nr;
-    struct at_aliasreq *ifra = (struct at_aliasreq *)data;
-    struct at_ifaddr   *aa0;
-    struct at_ifaddr   *aa = 0;
-    struct ifaddr      *ifa, *ifa0;
-    int error;
-
-    /*
-     * If we have an ifp, then find the matching at_ifaddr if it exists
-     */
-    if ( ifp ) {
-       for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-           if ( aa->aa_ifp == ifp ) break;
-       }
-    }
-
-    /*
-     * In this first switch table we are basically getting ready for
-     * the second one, by getting the atalk-specific things set up
-     * so that they start to look more similar to other protocols etc.
-     */
-
-    switch ( cmd ) {
-    case SIOCAIFADDR:
-    case SIOCDIFADDR:
-       /*
-        * If we have an appletalk sockaddr, scan forward of where
-        * we are now on the at_ifaddr list to find one with a matching 
-        * address on this interface.
-        * This may leave aa pointing to the first address on the
-        * NEXT interface!
-        */
-       if ( ifra->ifra_addr.sat_family == AF_APPLETALK ) {
-           for ( ; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp &&
-                       sateqaddr( &aa->aa_addr, &ifra->ifra_addr )) {
-                   break;
-               }
-           }
-       }
-       /*
-        * If we a retrying to delete an addres but didn't find such,
-        * then rewurn with an error
-        */
-       if ( cmd == SIOCDIFADDR && aa == 0 ) {
-           return( EADDRNOTAVAIL );
-       }
-       /*FALLTHROUGH*/
-
-    case SIOCSIFADDR:
-       /* 
-        * If we are not superuser, then we don't get to do these ops.
-        */
-       if (priv_check(td, PRIV_ROOT))
-           return(EPERM);
-
-       sat = satosat( &ifr->ifr_addr );
-       nr = (struct netrange *)sat->sat_zero;
-       if ( nr->nr_phase == 1 ) {
-           /*
-            * Look for a phase 1 address on this interface.
-            * This may leave aa pointing to the first address on the
-            * NEXT interface!
-            */
-           for ( ; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp &&
-                       ( aa->aa_flags & AFA_PHASE2 ) == 0 ) {
-                   break;
-               }
-           }
-       } else {                /* default to phase 2 */
-           /*
-            * Look for a phase 2 address on this interface.
-            * This may leave aa pointing to the first address on the
-            * NEXT interface!
-            */
-           for ( ; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp && ( aa->aa_flags & AFA_PHASE2 )) {
-                   break;
-               }
-           }
-       }
-
-       if ( ifp == 0 )
-           panic( "at_control" );
-
-       /*
-        * If we failed to find an existing at_ifaddr entry, then we 
-        * allocate a fresh one. 
-        */
-       if ( aa == NULL ) {
-           aa0 = ifa_create(sizeof(struct at_ifaddr), M_WAITOK);
-           callout_init(&aa0->aa_ch);
-           if (( aa = at_ifaddr ) != NULL ) {
-               /*
-                * Don't let the loopback be first, since the first
-                * address is the machine's default address for
-                * binding.
-                * If it is, stick ourself in front, otherwise
-                * go to the back of the list.
-                */
-               if ( at_ifaddr->aa_ifp->if_flags & IFF_LOOPBACK ) {
-                   aa = aa0;
-                   aa->aa_next = at_ifaddr;
-                   at_ifaddr = aa;
-               } else {
-                   for ( ; aa->aa_next; aa = aa->aa_next )
-                       ;
-                   aa->aa_next = aa0;
-               }
-           } else {
-               at_ifaddr = aa0;
-           }
-           aa = aa0;
-
-           /*
-            * Find the end of the interface's addresses
-            * and link our new one on the end 
-            */
-           ifa = (struct ifaddr *)aa;
-           ifa_iflink(ifa, ifp, 1);
-
-           /*
-            * As the at_ifaddr contains the actual sockaddrs,
-            * and the ifaddr itself, link them al together correctly.
-            */
-           ifa->ifa_addr = (struct sockaddr *)&aa->aa_addr;
-           ifa->ifa_dstaddr = (struct sockaddr *)&aa->aa_addr;
-           ifa->ifa_netmask = (struct sockaddr *)&aa->aa_netmask;
-
-           /*
-            * Set/clear the phase 2 bit.
-            */
-           if ( nr->nr_phase == 1 ) {
-               aa->aa_flags &= ~AFA_PHASE2;
-           } else {
-               aa->aa_flags |= AFA_PHASE2;
-           }
-
-           /*
-            * and link it all together
-            */
-           aa->aa_ifp = ifp;
-       } else {
-           /*
-            * If we DID find one then we clobber any routes dependent on it..
-            */
-           at_scrub( ifp, aa );
-       }
-       break;
-
-    case SIOCGIFADDR :
-       sat = satosat( &ifr->ifr_addr );
-       nr = (struct netrange *)sat->sat_zero;
-       if ( nr->nr_phase == 1 ) {
-           /*
-            * If the request is specifying phase 1, then
-            * only look at a phase one address
-            */
-           for ( ; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp &&
-                       ( aa->aa_flags & AFA_PHASE2 ) == 0 ) {
-                   break;
-               }
-           }
-       } else {
-           /*
-            * default to phase 2
-            */
-           for ( ; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp && ( aa->aa_flags & AFA_PHASE2 )) {
-                   break;
-               }
-           }
-       }
-
-       if ( aa == NULL )
-           return( EADDRNOTAVAIL );
-       break;
-    }
-
-    /*
-     * By the time this switch is run we should be able to assume that
-     * the "aa" pointer is valid when needed.
-     */
-    switch ( cmd ) {
-    case SIOCGIFADDR:
-
-       /*
-        * copy the contents of the sockaddr blindly.
-        */
-       sat = (struct sockaddr_at *)&ifr->ifr_addr;
-       *sat = aa->aa_addr;
-
-       /* 
-        * and do some cleanups
-        */
-       ((struct netrange *)&sat->sat_zero)->nr_phase
-               = (aa->aa_flags & AFA_PHASE2) ? 2 : 1;
-       ((struct netrange *)&sat->sat_zero)->nr_firstnet = aa->aa_firstnet;
-       ((struct netrange *)&sat->sat_zero)->nr_lastnet = aa->aa_lastnet;
-       break;
-
-    case SIOCSIFADDR:
-       return( at_ifinit( ifp, aa, (struct sockaddr_at *)&ifr->ifr_addr ));
-
-    case SIOCAIFADDR:
-       if ( sateqaddr( &ifra->ifra_addr, &aa->aa_addr )) {
-           return( 0 );
-       }
-       return( at_ifinit( ifp, aa, (struct sockaddr_at *)&ifr->ifr_addr ));
-
-    case SIOCDIFADDR:
-       /*
-        * scrub all routes.. didn't we just DO this? XXX yes, del it
-        */
-       at_scrub( ifp, aa );
-
-       /*
-        * remove the ifaddr from the interface
-        */
-       ifa0 = (struct ifaddr *)aa;
-       ifa_ifunlink(ifa0, ifp);
-
-       /*
-        * Now remove the at_ifaddr from the parallel structure
-        * as well, or we'd be in deep trouble
-        */
-       aa0 = aa;
-       if ( aa0 == ( aa = at_ifaddr )) {
-           at_ifaddr = aa->aa_next;
-       } else {
-           while ( aa->aa_next && ( aa->aa_next != aa0 )) {
-               aa = aa->aa_next;
-           }
-
-           /*
-            * if we found it, remove it, otherwise we screwed up.
-            */
-           if ( aa->aa_next ) {
-               aa->aa_next = aa0->aa_next;
-           } else {
-               panic( "at_control" );
-           }
-       }
-
-       /*
-        * Now dump the memory we were using.
-        * Decrement the reference count.
-        * This should probably be the last reference
-        * as the count will go from 1 to 0.
-        * (unless there is still a route referencing this)
-        */
-       ifa_destroy(ifa0);
-       break;
-
-    default:
-       if ( ifp == 0 || ifp->if_ioctl == 0 )
-           return( EOPNOTSUPP );
-       ifnet_serialize_all(ifp);
-       error = ifp->if_ioctl(ifp, cmd, data, td->td_proc->p_ucred);
-       ifnet_deserialize_all(ifp);
-       return (error);
-    }
-    return( 0 );
-}
-
-/* 
- * Given an interface and an at_ifaddr (supposedly on that interface)
- * remove  any routes that depend on this.
- * Why ifp is needed I'm not sure,
- * as aa->at_ifaddr.ifa_ifp should be the same.
- */
-static int
-at_scrub(struct ifnet *ifp, struct at_ifaddr *aa)
-{
-    int                        error;
-
-    if ( aa->aa_flags & AFA_ROUTE ) {
-       if (ifp->if_flags & IFF_LOOPBACK) {
-               if ((error = aa_delsingleroute(&aa->aa_ifa,
-                                       &aa->aa_addr.sat_addr,
-                                       &aa->aa_netmask.sat_addr)) != 0) {
-                       return( error );
-               }
-       } else if (ifp->if_flags & IFF_POINTOPOINT) {
-               if ((error = rtinit( &aa->aa_ifa, RTM_DELETE, RTF_HOST)) != 0)
-                       return( error );
-       } else if (ifp->if_flags & IFF_BROADCAST) {
-               error = aa_dorangeroute(&aa->aa_ifa,
-                               ntohs(aa->aa_firstnet),
-                               ntohs(aa->aa_lastnet),
-                               RTM_DELETE );
-       }
-       aa->aa_ifa.ifa_flags &= ~IFA_ROUTE;
-       aa->aa_flags &= ~AFA_ROUTE;
-    }
-    return( 0 );
-}
-
-/*
- * given an at_ifaddr,a sockaddr_at and an ifp,
- * bang them all together at high speed and see what happens
- */
-static int 
-at_ifinit(struct ifnet *ifp, struct at_ifaddr *aa, struct sockaddr_at *sat)
-{
-    struct netrange    nr, onr;
-    struct sockaddr_at oldaddr;
-    int                        error = 0, i, j;
-    int                        netinc, nodeinc, nnets;
-    u_short            net;
-
-    crit_enter();
-
-    /* 
-     * save the old addresses in the at_ifaddr just in case we need them.
-     */
-    oldaddr = aa->aa_addr;
-    onr.nr_firstnet = aa->aa_firstnet;
-    onr.nr_lastnet = aa->aa_lastnet;
-
-    /*
-     * take the address supplied as an argument, and add it to the 
-     * at_ifnet (also given). Remember ing to update
-     * those parts of the at_ifaddr that need special processing
-     */
-    bzero( AA_SAT( aa ), sizeof( struct sockaddr_at ));
-    bcopy( sat->sat_zero, &nr, sizeof( struct netrange ));
-    bcopy( sat->sat_zero, AA_SAT( aa )->sat_zero, sizeof( struct netrange ));
-    nnets = ntohs( nr.nr_lastnet ) - ntohs( nr.nr_firstnet ) + 1;
-    aa->aa_firstnet = nr.nr_firstnet;
-    aa->aa_lastnet = nr.nr_lastnet;
-
-/* XXX ALC */
-#if 0
-    kprintf("at_ifinit: %s: %u.%u range %u-%u phase %d\n",
-       ifp->if_name,
-       ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node,
-       ntohs(aa->aa_firstnet), ntohs(aa->aa_lastnet),
-       (aa->aa_flags & AFA_PHASE2) ? 2 : 1);
-#endif
-
-    /*
-     * We could eliminate the need for a second phase 1 probe (post
-     * autoconf) if we check whether we're resetting the node. Note
-     * that phase 1 probes use only nodes, not net.node pairs.  Under
-     * phase 2, both the net and node must be the same.
-     */
-    if ( ifp->if_flags & IFF_LOOPBACK ) {
-       AA_SAT( aa )->sat_len = sat->sat_len;
-       AA_SAT( aa )->sat_family = AF_APPLETALK;
-       AA_SAT( aa )->sat_addr.s_net = sat->sat_addr.s_net;
-       AA_SAT( aa )->sat_addr.s_node = sat->sat_addr.s_node;
-#if 0
-    } else if ( fp->if_flags & IFF_POINTOPOINT) {
-       /* unimplemented */
-       /*
-        * we'd have to copy the dstaddr field over from the sat 
-        * but it's not clear that it would contain the right info..
-        */
-#endif
-    } else {
-       /*
-        * We are a normal (probably ethernet) interface.
-        * apply the new address to the interface structures etc.
-        * We will probe this address on the net first, before
-        * applying it to ensure that it is free.. If it is not, then
-        * we will try a number of other randomly generated addresses
-        * in this net and then increment the net.  etc.etc. until
-        * we find an unused address.
-        */
-       aa->aa_flags |= AFA_PROBING; /* if not loopback we Must probe? */
-       AA_SAT( aa )->sat_len = sizeof(struct sockaddr_at);
-       AA_SAT( aa )->sat_family = AF_APPLETALK;
-       if ( aa->aa_flags & AFA_PHASE2 ) {
-           if ( sat->sat_addr.s_net == ATADDR_ANYNET ) {
-               /*
-                * If we are phase 2, and the net was not specified
-                * then we select a random net within the supplied netrange.
-                * XXX use /dev/random?
-                */
-               if ( nnets != 1 ) {
-                   net = ntohs( nr.nr_firstnet ) + time_second % ( nnets - 1 );
-               } else {
-                   net = ntohs( nr.nr_firstnet );
-               }
-           } else {
-               /*
-                * if a net was supplied, then check that it is within
-                * the netrange. If it is not then replace the old values
-                * and return an error
-                */
-               if ( ntohs( sat->sat_addr.s_net ) < ntohs( nr.nr_firstnet ) ||
-                       ntohs( sat->sat_addr.s_net ) > ntohs( nr.nr_lastnet )) {
-                   aa->aa_addr = oldaddr;
-                   aa->aa_firstnet = onr.nr_firstnet;
-                   aa->aa_lastnet = onr.nr_lastnet;
-                   crit_exit();
-                   return( EINVAL );
-               }
-               /*
-                * otherwise just use the new net number..
-                */
-               net = ntohs( sat->sat_addr.s_net );
-           }
-       } else {
-           /*
-            * we must be phase one, so just use whatever we were given.
-            * I guess it really isn't going to be used... RIGHT?
-            */
-           net = ntohs( sat->sat_addr.s_net );
-       }
-
-       /* 
-        * set the node part of the address into the ifaddr.
-        * If it's not specified, be random about it...
-        * XXX use /dev/random?
-        */
-       if ( sat->sat_addr.s_node == ATADDR_ANYNODE ) {
-           AA_SAT( aa )->sat_addr.s_node = time_second;
-       } else {
-           AA_SAT( aa )->sat_addr.s_node = sat->sat_addr.s_node;
-       }
-
-       /* 
-        * Copy the phase.
-        */
-       AA_SAT( aa )->sat_range.r_netrange.nr_phase
-               = ((aa->aa_flags & AFA_PHASE2) ? 2:1);
-
-       /* 
-        * step through the nets in the range
-        * starting at the (possibly random) start point.
-        */
-       for ( i = nnets, netinc = 1; i > 0; net = ntohs( nr.nr_firstnet ) +
-               (( net - ntohs( nr.nr_firstnet ) + netinc ) % nnets ), i-- ) {
-           AA_SAT( aa )->sat_addr.s_net = htons( net );
-
-           /*
-            * using a rather strange stepping method,
-            * stagger through the possible node addresses
-            * Once again, starting at the (possibly random)
-            * initial node address.
-            */
-           for ( j = 0, nodeinc = time_second | 1; j < 256;
-                   j++, AA_SAT( aa )->sat_addr.s_node += nodeinc ) {
-               if ( AA_SAT( aa )->sat_addr.s_node > 253 ||
-                       AA_SAT( aa )->sat_addr.s_node < 1 ) {
-                   continue;
-               }
-               aa->aa_probcnt = 10;
-
-               /*
-                * start off the probes as an asynchronous activity.
-                * though why wait 200mSec?
-                */
-               callout_reset(&aa->aa_ch, hz / 5, aarpprobe, ifp);
-               if ( tsleep( aa, PCATCH, "at_ifinit", 0 )) {
-                   /*
-                    * theoretically we shouldn't time out here
-                    * so if we returned with an error..
-                    */
-                   kprintf( "at_ifinit: why did this happen?!\n" );
-                   aa->aa_addr = oldaddr;
-                   aa->aa_firstnet = onr.nr_firstnet;
-                   aa->aa_lastnet = onr.nr_lastnet;
-                   crit_exit();
-                   return( EINTR );
-               }
-
-               /* 
-                * The async activity should have woken us up.
-                * We need to see if it was successful in finding
-                * a free spot, or if we need to iterate to the next 
-                * address to try.
-                */
-               if (( aa->aa_flags & AFA_PROBING ) == 0 ) {
-                   break;
-               }
-           }
-
-           /*
-            * of course we need to break out through two loops...
-            */
-           if (( aa->aa_flags & AFA_PROBING ) == 0 ) {
-               break;
-           }
-           /* reset node for next network */
-           AA_SAT( aa )->sat_addr.s_node = time_second;
-       }
-
-       /*
-        * if we are still trying to probe, then we have finished all
-        * the possible addresses, so we need to give up
-        */
-
-       if ( aa->aa_flags & AFA_PROBING ) {
-           aa->aa_addr = oldaddr;
-           aa->aa_firstnet = onr.nr_firstnet;
-           aa->aa_lastnet = onr.nr_lastnet;
-           crit_exit();
-           return( EADDRINUSE );
-       }
-    }
-
-    /* 
-     * Now that we have selected an address, we need to tell the interface
-     * about it, just in case it needs to adjust something.
-     */
-    ifnet_serialize_all(ifp);
-    if (ifp->if_ioctl &&
-       (error = ifp->if_ioctl(ifp, SIOCSIFADDR, (caddr_t)aa, NULL))
-    ) {
-       /*
-        * of course this could mean that it objects violently
-        * so if it does, we back out again..
-        */
-       aa->aa_addr = oldaddr;
-       aa->aa_firstnet = onr.nr_firstnet;
-       aa->aa_lastnet = onr.nr_lastnet;
-       ifnet_deserialize_all(ifp);
-       crit_exit();
-       return( error );
-    }
-    ifnet_deserialize_all(ifp);
-
-    /* 
-     * set up the netmask part of the at_ifaddr
-     * and point the appropriate pointer in the ifaddr to it.
-     * probably pointless, but what the heck.. XXX
-     */
-    bzero(&aa->aa_netmask, sizeof(aa->aa_netmask));
-    aa->aa_netmask.sat_len = sizeof(struct sockaddr_at);
-    aa->aa_netmask.sat_family = AF_APPLETALK;
-    aa->aa_netmask.sat_addr.s_net = 0xffff;
-    aa->aa_netmask.sat_addr.s_node = 0;
-    aa->aa_ifa.ifa_netmask =(struct sockaddr *) &(aa->aa_netmask); /* XXX */
-
-    /*
-     * Initialize broadcast (or remote p2p) address
-     */
-    bzero(&aa->aa_broadaddr, sizeof(aa->aa_broadaddr));
-    aa->aa_broadaddr.sat_len = sizeof(struct sockaddr_at);
-    aa->aa_broadaddr.sat_family = AF_APPLETALK;
-
-    aa->aa_ifa.ifa_metric = ifp->if_metric;
-    if (ifp->if_flags & IFF_BROADCAST) {
-       aa->aa_broadaddr.sat_addr.s_net = htons(0);
-       aa->aa_broadaddr.sat_addr.s_node = 0xff;
-        aa->aa_ifa.ifa_broadaddr = (struct sockaddr *) &aa->aa_broadaddr;
-       /* add the range of routes needed */
-       error = aa_dorangeroute(&aa->aa_ifa,
-               ntohs(aa->aa_firstnet), ntohs(aa->aa_lastnet), RTM_ADD );
-    }
-    else if (ifp->if_flags & IFF_POINTOPOINT) {
-       struct at_addr  rtaddr, rtmask;
-
-       bzero(&rtaddr, sizeof(rtaddr));
-       bzero(&rtmask, sizeof(rtmask));
-       /* fill in the far end if we know it here XXX */
-        aa->aa_ifa.ifa_dstaddr = (struct sockaddr *) &aa->aa_dstaddr;
-       error = aa_addsingleroute(&aa->aa_ifa, &rtaddr, &rtmask);
-    }
-    else if ( ifp->if_flags & IFF_LOOPBACK ) {
-       struct at_addr  rtaddr, rtmask;
-
-       bzero(&rtaddr, sizeof(rtaddr));
-       bzero(&rtmask, sizeof(rtmask));
-       rtaddr.s_net = AA_SAT( aa )->sat_addr.s_net;
-       rtaddr.s_node = AA_SAT( aa )->sat_addr.s_node;
-       rtmask.s_net = 0xffff;
-       rtmask.s_node = 0x0; /* XXX should not be so.. should be HOST route */
-       error = aa_addsingleroute(&aa->aa_ifa, &rtaddr, &rtmask);
-    }
-
-
-    /*
-     * set the address of our "check if this addr is ours" routine.
-     */
-    aa->aa_ifa.ifa_claim_addr = aa_claim_addr;
-
-    /*
-     * of course if we can't add these routes we back out, but it's getting
-     * risky by now XXX
-     */
-    if ( error ) {
-       at_scrub( ifp, aa );
-       aa->aa_addr = oldaddr;
-       aa->aa_firstnet = onr.nr_firstnet;
-       aa->aa_lastnet = onr.nr_lastnet;
-       crit_exit();
-       return( error );
-    }
-
-    /*
-     * note that the address has a route associated with it....
-     */
-    aa->aa_ifa.ifa_flags |= IFA_ROUTE;
-    aa->aa_flags |= AFA_ROUTE;
-    crit_exit();
-    return( 0 );
-}
-
-/*
- * check whether a given address is a broadcast address for us..
- */
-int
-at_broadcast(struct sockaddr_at *sat)
-{
-    struct at_ifaddr   *aa;
-
-    /*
-     * If the node is not right, it can't be a broadcast 
-     */
-    if ( sat->sat_addr.s_node != ATADDR_BCAST ) {
-       return( 0 );
-    }
-
-    /*
-     * If the node was right then if the net is right, it's a broadcast
-     */
-    if ( sat->sat_addr.s_net == ATADDR_ANYNET ) {
-       return( 1 );
-    }
-
-    /*
-     * failing that, if the net is one we have, it's a broadcast as well.
-     */
-    for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-       if (( aa->aa_ifp->if_flags & IFF_BROADCAST )
-        && ( ntohs( sat->sat_addr.s_net ) >= ntohs( aa->aa_firstnet )
-        && ntohs( sat->sat_addr.s_net ) <= ntohs( aa->aa_lastnet ))) {
-                       return( 1 );
-       }
-    }
-    return( 0 );
-}
-
-/*
- * aa_dorangeroute()
- *
- * Add a route for a range of networks from bot to top - 1.
- * Algorithm:
- *
- * Split the range into two subranges such that the middle
- * of the two ranges is the point where the highest bit of difference
- * between the two addresses makes its transition.
- * Each of the upper and lower ranges might not exist, or might be 
- * representable by 1 or more netmasks. In addition, if both
- * ranges can be represented by the same netmask, then they can be merged
- * by using the next higher netmask..
- */
-
-static int
-aa_dorangeroute(struct ifaddr *ifa, u_int bot, u_int top, int cmd)
-{
-       u_int mask1;
-       struct at_addr addr;
-       struct at_addr mask;
-       int error;
-
-       /*
-        * slight sanity check
-        */
-       if (bot > top) return (EINVAL);
-
-       addr.s_node = 0;
-       mask.s_node = 0;
-       /*
-        * just start out with the lowest boundary
-        * and keep extending the mask till it's too big.
-        */
-       
-        while (bot <= top) {
-               mask1 = 1;
-               while ((( bot & ~mask1) >= bot)
-                  && (( bot | mask1) <= top)) {
-                       mask1 <<= 1;
-                       mask1 |= 1;
-               }
-               mask1 >>= 1;
-               mask.s_net = htons(~mask1);
-               addr.s_net = htons(bot);
-               if(cmd == RTM_ADD) {
-               error =  aa_addsingleroute(ifa,&addr,&mask);
-                       if (error) {
-                               /* XXX clean up? */
-                               return (error);
-                       }
-               } else {
-                       error =  aa_delsingleroute(ifa,&addr,&mask);
-               }
-               bot = (bot | mask1) + 1;
-       }
-       return 0;
-}
-
-static int
-aa_addsingleroute(struct ifaddr *ifa,
-       struct at_addr *addr, struct at_addr *mask)
-{
-  int  error;
-
-#if 0
-  kprintf("aa_addsingleroute: %x.%x mask %x.%x ...\n",
-    ntohs(addr->s_net), addr->s_node,
-    ntohs(mask->s_net), mask->s_node);
-#endif
-
-  error = aa_dosingleroute(ifa, addr, mask, RTM_ADD, RTF_UP);
-  if (error)
-    kprintf("aa_addsingleroute: error %d\n", error);
-  return(error);
-}
-
-static int
-aa_delsingleroute(struct ifaddr *ifa,
-       struct at_addr *addr, struct at_addr *mask)
-{
-  int  error;
-
-  error = aa_dosingleroute(ifa, addr, mask, RTM_DELETE, 0);
-  if (error)
-       kprintf("aa_delsingleroute: error %d\n", error);
-  return(error);
-}
-
-static int
-aa_dosingleroute(struct ifaddr *ifa,
-       struct at_addr *at_addr, struct at_addr *at_mask, int cmd, int flags)
-{
-  struct sockaddr_at   addr, mask;
-
-  bzero(&addr, sizeof(addr));
-  bzero(&mask, sizeof(mask));
-  addr.sat_family = AF_APPLETALK;
-  addr.sat_len = sizeof(struct sockaddr_at);
-  addr.sat_addr.s_net = at_addr->s_net;
-  addr.sat_addr.s_node = at_addr->s_node;
-  mask.sat_family = AF_APPLETALK;
-  mask.sat_len = sizeof(struct sockaddr_at);
-  mask.sat_addr.s_net = at_mask->s_net;
-  mask.sat_addr.s_node = at_mask->s_node;
-  if (at_mask->s_node)
-    flags |= RTF_HOST;
-  return(rtrequest(cmd, (struct sockaddr *) &addr,
-       (flags & RTF_HOST)?(ifa->ifa_dstaddr):(ifa->ifa_addr),
-       (struct sockaddr *) &mask, flags, NULL));
-}
-
-static int
-aa_claim_addr(struct ifaddr *ifa, struct sockaddr *gw0)
-{
-       struct sockaddr_at *addr = (struct sockaddr_at *)ifa->ifa_addr;
-       struct sockaddr_at *gw = (struct sockaddr_at *)gw0;
-
-       switch (gw->sat_range.r_netrange.nr_phase) {
-       case 1:
-               if(addr->sat_range.r_netrange.nr_phase == 1)
-                       return 1;
-       case 0:
-       case 2:
-               /*
-                * if it's our net (including 0),
-                * or netranges are valid, and we are in the range,
-                * then it's ours.
-                */
-               if ((addr->sat_addr.s_net == gw->sat_addr.s_net)
-               || ((addr->sat_range.r_netrange.nr_lastnet)
-                 && (ntohs(gw->sat_addr.s_net)
-                       >= ntohs(addr->sat_range.r_netrange.nr_firstnet ))
-                 && (ntohs(gw->sat_addr.s_net)
-                       <= ntohs(addr->sat_range.r_netrange.nr_lastnet )))) {
-                       return 1;
-               } 
-               break;
-       default:
-               kprintf("atalk: bad phase\n");
-       }
-       return 0;
-}
diff --git a/sys/netproto/atalk/at_extern.h b/sys/netproto/atalk/at_extern.h
deleted file mode 100644 (file)
index 584d0a8..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * $DragonFly: src/sys/netproto/atalk/at_extern.h,v 1.8 2007/05/23 08:57:06 dillon Exp $
- */
-struct mbuf;
-struct sockaddr_at;
-
-#ifdef _NET_IF_ARP_H_
-extern timeout_t       aarpprobe;
-extern int     aarpresolve     (struct arpcom *,
-                                       struct mbuf *,
-                                       struct sockaddr_at *,
-                                       u_char *);
-extern int     at_broadcast    (struct sockaddr_at  *);
-#endif
-
-#ifdef _NETATALK_AARP_H_
-extern void    aarptfree       (struct aarptab *);
-#endif
-
-struct ifnet;
-union netmsg;
-struct proc;
-struct socket;
-
-extern void    aarpintr        (union netmsg *);
-extern void    at1intr         (union netmsg *);
-extern void    at2intr         (union netmsg *);
-extern void    aarp_clean      (void);
-extern int     at_control      ( struct socket *so,
-                                       u_long cmd,
-                                       caddr_t data,
-                                       struct ifnet *ifp,
-                                       struct thread *td );
-extern u_short at_cksum        ( struct mbuf *m, int skip);
-extern void    ddp_init        (void );
-extern struct at_ifaddr *at_ifawithnet (struct sockaddr_at *);
-#ifdef _NETATALK_DDP_VAR_H_
-extern int     ddp_output(struct mbuf *m, struct socket *so, ...); 
-
-#endif
-#if    defined (_NETATALK_DDP_VAR_H_) && defined(_NETATALK_AT_VAR_H_)
-extern struct ddpcb  *ddp_search (struct sockaddr_at *,
-                                               struct sockaddr_at *,
-                                               struct at_ifaddr *);
-#endif
-#ifdef _NET_ROUTE_H_
-int     ddp_route( struct mbuf *m, struct route *ro);
-#endif
diff --git a/sys/netproto/atalk/at_proto.c b/sys/netproto/atalk/at_proto.c
deleted file mode 100644 (file)
index f9a1041..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- */
-
-#include <sys/param.h>
-#include <sys/protosw.h>
-#include <sys/domain.h>
-#include <sys/socket.h>
-
-#include <sys/kernel.h>
-
-#include <net/route.h>
-
-#include "at.h"
-#include "ddp_var.h"
-#include "at_extern.h"
-
-extern int at_inithead(void **, int);
-
-static struct domain atalkdomain;
-
-static struct protosw atalksw[] = {
-    {
-       /* Identifiers */
-       .pr_type = SOCK_DGRAM,
-       .pr_domain = &atalkdomain,
-       .pr_protocol = ATPROTO_DDP,
-       .pr_flags = PR_ATOMIC|PR_ADDR,
-
-       /*
-        * protocol-protocol interface.
-        * fields are pr_input, pr_output, pr_ctlinput, and pr_ctloutput.
-        * pr_input can be called from the udp protocol stack for iptalk
-        * packets bound for a local socket.
-        * pr_output can be used by higher level appletalk protocols, should
-        * they be included in the kernel.
-        */
-       .pr_input = NULL,
-       .pr_output = ddp_output,
-       .pr_ctlinput = NULL,
-       .pr_ctloutput = NULL,
-
-       .pr_init = ddp_init,
-       .pr_usrreqs = &ddp_usrreqs
-    }
-};
-
-static struct domain atalkdomain = {
-       AF_APPLETALK, "appletalk", NULL, NULL, NULL,
-       atalksw, &atalksw[NELEM(atalksw)],
-       SLIST_ENTRY_INITIALIZER,
-       at_inithead, 8 * offsetof(struct sockaddr_at, sat_addr),
-       sizeof(struct sockaddr_at),
-};
-
-DOMAIN_SET(atalk);
-
diff --git a/sys/netproto/atalk/at_rmx.c b/sys/netproto/atalk/at_rmx.c
deleted file mode 100644 (file)
index 81041d1..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright 1994, 1995 Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby
- * granted, provided that both the above copyright notice and this
- * permission notice appear in all copies, that both the above
- * copyright notice and this permission notice appear in all
- * supporting documentation, and that the name of M.I.T. not be used
- * in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.  M.I.T. makes
- * no representations about the suitability of this software for any
- * purpose.  It is provided "as is" without express or implied
- * warranty.
- *
- * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''.  M.I.T. DISCLAIMS
- * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
- * SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * at_rmx.c,v 1.13 1995/05/30 08:09:31 rgrimes Exp
- * $DragonFly: src/sys/netproto/atalk/at_rmx.c,v 1.4 2006/12/22 23:57:53 swildner Exp $
- */
-
-/* This code generates debugging traces to the radix code */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/socket.h>
-
-#include <net/route.h>
-
-int at_inithead(void **head, int off);
-
-static char hexbuf[256];
-
-static char *
-prsockaddr(void *v)
-{
-       char *bp = &hexbuf[0];
-       u_char *cp = v;
-
-       if (v) {
-               int len = *cp;
-               u_char *cplim = cp + len;
-
-               /* return: "(len) hexdump" */
-
-               bp += ksprintf(bp, "(%d)", len);
-               for (cp++; cp < cplim && bp < hexbuf+252; cp++) {
-                       *bp++ = "0123456789abcdef"[*cp / 16];
-                       *bp++ = "0123456789abcdef"[*cp % 16];
-               }
-       } else {
-               bp+= ksprintf(bp, "null");
-       }
-       *bp = '\0';
-       
-       return &hexbuf[0];
-}
-
-static struct radix_node *
-at_addroute(char *key, char *mask, struct radix_node_head *head,
-           struct radix_node *treenodes)
-{
-       struct radix_node *rn;
-
-       kprintf("at_addroute: v=%s\n", prsockaddr(key));
-       kprintf("at_addroute: n=%s\n", prsockaddr(mask));
-       kprintf("at_addroute: head=%p treenodes=%p\n",
-           (void *)head, (void *)treenodes);
-
-       rn = rn_addroute(key, mask, head, treenodes);
-
-       kprintf("at_addroute: returns rn=%p\n", (void *)rn);
-
-       return rn;
-}
-
-static struct radix_node *
-at_matroute(char *key, struct radix_node_head *head)
-{
-       struct radix_node *rn;
-
-       kprintf("at_matroute: v=%s\n", prsockaddr(key));
-       kprintf("at_matroute: head=%p\n", (void *)head);
-
-       rn = rn_match(key, head);
-
-       kprintf("at_matroute: returnr rn=%p\n", (void *)rn);
-
-       return rn;
-}
-
-static struct radix_node *
-at_lookup(char *key, char *mask, struct radix_node_head *head)
-{
-       struct radix_node *rn;
-
-       kprintf("at_lookup: v=%s\n", prsockaddr(key));
-       kprintf("at_lookup: n=%s\n", prsockaddr(mask));
-       kprintf("at_lookup: head=%p\n", (void *)head);
-
-       rn = rn_lookup(key, mask, head);
-
-       kprintf("at_lookup: returns rn=%p\n", (void *)rn);
-
-       return rn;
-}
-
-static struct radix_node *  
-at_delroute(char *key, char *netmask, struct radix_node_head *head)
-{
-       struct radix_node *rn;
-
-       kprintf("at_delroute: v=%s\n", prsockaddr(key));
-       kprintf("at_delroute: n=%s\n", prsockaddr(netmask));
-       kprintf("at_delroute: head=%p\n", (void *)head);
-
-       rn = rn_delete(key, netmask, head);
-
-       kprintf("at_delroute: returns rn=%p\n", (void *)rn);
-
-       return rn;
-}
-
-/*
- * Initialize our routing tree with debugging hooks.
- */
-int
-at_inithead(void **head, int off)
-{
-       struct radix_node_head *rnh;
-
-       if(!rn_inithead(head, rn_cpumaskhead(mycpuid), off))
-               return 0;
-
-       rnh = *head;
-       rnh->rnh_addaddr = at_addroute;
-       rnh->rnh_deladdr = at_delroute;
-       rnh->rnh_matchaddr = at_matroute;
-       rnh->rnh_lookup = at_lookup;
-       return 1;
-}
diff --git a/sys/netproto/atalk/at_var.h b/sys/netproto/atalk/at_var.h
deleted file mode 100644 (file)
index e604e04..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- *
- * $FreeBSD: src/sys/netatalk/at_var.h,v 1.10 1999/12/29 04:45:57 peter Exp $
- * $DragonFly: src/sys/netproto/atalk/at_var.h,v 1.3 2004/09/16 21:55:03 joerg Exp $
- */
-
-#ifndef _NETATALK_AT_VAR_H_
-#define _NETATALK_AT_VAR_H_ 1
-/*
- * For phase2, we need to keep not only our address on an interface,
- * but also the legal networks on the interface.
- */
-struct at_ifaddr {
-    struct ifaddr        aa_ifa;
-# define aa_ifp                        aa_ifa.ifa_ifp
-    struct sockaddr_at   aa_addr;
-    struct sockaddr_at   aa_broadaddr;
-# define aa_dstaddr            aa_broadaddr;
-    struct sockaddr_at   aa_netmask;
-    int                          aa_flags;
-    u_short              aa_firstnet, aa_lastnet;
-    int                          aa_probcnt;
-    struct callout        aa_ch;
-    struct at_ifaddr     *aa_next;
-};
-
-struct at_aliasreq {
-       char    ifra_name[IFNAMSIZ];            /* if name, e.g. "en0" */
-       struct  sockaddr_at ifra_addr;
-       struct  sockaddr_at ifra_broadaddr;
-#define ifra_dstaddr ifra_broadaddr
-       struct  sockaddr_at ifra_mask;
-};
-
-#define AA_SAT(aa) \
-    (&(aa->aa_addr))
-#define satosat(sa)    ((struct sockaddr_at *)(sa))
-
-#define AFA_ROUTE      0x0001
-#define AFA_PROBING    0x0002
-#define AFA_PHASE2     0x0004
-
-#ifdef _KERNEL
-extern struct at_ifaddr        *at_ifaddr;
-extern struct ifqueue  atintrq1, atintrq2;
-#endif
-
-#endif /* _NETATALK_AT_VAR_H_ */
diff --git a/sys/netproto/atalk/ddp.h b/sys/netproto/atalk/ddp.h
deleted file mode 100644 (file)
index 5d7288f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- *
- * $DragonFly: src/sys/netproto/atalk/ddp.h,v 1.2 2006/10/23 21:50:33 dillon Exp $
- */
-#ifndef _NETATALK_DDP_H_
-#define _NETATALK_DDP_H_
-
-/*
- * <-1byte(8bits) ->
- * +---------------+
- * | 0 | hopc  |len|
- * +---------------+
- * | len (cont)    |
- * +---------------+
- * |               |
- * +- DDP csum    -+
- * |               |
- * +---------------+
- * |               |
- * +- Dest NET    -+
- * |               |
- * +---------------+
- * |               |
- * +- Src NET     -+
- * |               |
- * +---------------+
- * | Dest NODE     |
- * +---------------+
- * | Src NODE      |
- * +---------------+
- * | Dest PORT     |
- * +---------------+
- * | Src PORT      |
- * +---------------+
- *
- * On Apples, there is also a ddp_type field, after src_port. However,
- * under this unix implementation, user level processes need to be able
- * to set the ddp_type. In later revisions, the ddp_type may only be
- * available in a raw_appletalk interface.
- */
-
-struct elaphdr {
-    u_char     el_dnode;
-    u_char     el_snode;
-    u_char     el_type;
-};
-
-#define        SZ_ELAPHDR      3
-
-#define ELAP_DDPSHORT  0x01
-#define ELAP_DDPEXTEND 0x02
-
-/*
- * Extended DDP header. Includes sickness for dealing with arbitrary
- * bitfields on a little-endian arch.
- */
-struct ddpehdr {
-    union {
-       struct {
-#if BYTE_ORDER == BIG_ENDIAN
-    unsigned           dub_pad:2;
-    unsigned           dub_hops:4;
-    unsigned           dub_len:10;
-    unsigned           dub_sum:16;
-#endif
-#if BYTE_ORDER == LITTLE_ENDIAN
-    unsigned           dub_sum:16;
-    unsigned           dub_len:10;
-    unsigned           dub_hops:4;
-    unsigned           dub_pad:2;
-#endif
-       } du_bits;
-       unsigned        du_bytes;
-    } deh_u;
-#define deh_pad                deh_u.du_bits.dub_pad
-#define deh_hops       deh_u.du_bits.dub_hops
-#define deh_len                deh_u.du_bits.dub_len
-#define deh_sum                deh_u.du_bits.dub_sum
-#define deh_bytes      deh_u.du_bytes
-    u_short            deh_dnet;
-    u_short            deh_snet;
-    u_char             deh_dnode;
-    u_char             deh_snode;
-    u_char             deh_dport;
-    u_char             deh_sport;
-};
-
-#define DDP_MAXHOPS    15
-
-struct ddpshdr {
-    union {
-       struct {
-#if BYTE_ORDER == BIG_ENDIAN
-    unsigned           dub_pad:6;
-    unsigned           dub_len:10;
-    unsigned           dub_dport:8;
-    unsigned           dub_sport:8;
-#endif
-#if BYTE_ORDER == LITTLE_ENDIAN
-    unsigned           dub_sport:8;
-    unsigned           dub_dport:8;
-    unsigned           dub_len:10;
-    unsigned           dub_pad:6;
-#endif
-       } du_bits;
-       unsigned        du_bytes;
-    } dsh_u;
-#define dsh_pad                dsh_u.du_bits.dub_pad
-#define dsh_len                dsh_u.du_bits.dub_len
-#define dsh_dport      dsh_u.du_bits.dub_dport
-#define dsh_sport      dsh_u.du_bits.dub_sport
-#define dsh_bytes      dsh_u.du_bytes
-};
-
-#endif /* _NETATALK_DDP_H_ */
diff --git a/sys/netproto/atalk/ddp_input.c b/sys/netproto/atalk/ddp_input.c
deleted file mode 100644 (file)
index aa5e962..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
- * Copyright (c) 1990,1994 Regents of The University of Michigan.
- * All Rights Reserved.  See COPYRIGHT.
- *
- * $FreeBSD: src/sys/netatalk/ddp_input.c,v 1.12 2000/02/13 03:31:58 peter Exp $
- * $DragonFly: src/sys/netproto/atalk/ddp_input.c,v 1.15 2007/11/16 05:07:36 sephe Exp $
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-
-#include <sys/thread2.h>
-#include <sys/msgport2.h>
-#include <sys/mplock2.h>
-
-#include <net/if.h>
-#include <net/netisr.h>
-#include <net/route.h>
-
-#include "at.h"
-#include "at_var.h"
-#include "ddp.h"
-#include "ddp_var.h"
-#include "at_extern.h"
-
-static volatile int    ddp_forward = 1;
-static volatile int    ddp_firewall = 0;
-static struct ddpstat  ddpstat;
-static struct route    forwro;
-
-const int atintrq1_present = 1, atintrq2_present = 1;
-
-static void     ddp_input(struct mbuf *, struct ifnet *, struct elaphdr *, int);
-
-/*
- * Could probably merge these two code segments a little better...
- */
-void
-at2intr(netmsg_t msg)
-{
-       struct mbuf *m = msg->packet.nm_packet;
-
-       /*
-        * Phase 2 packet handling 
-        */
-       get_mplock();
-       ddp_input(m, m->m_pkthdr.rcvif, NULL, 2);
-       rel_mplock();
-       /* msg was embedded in the mbuf, do not reply! */
-}
-
-void
-at1intr(netmsg_t msg)
-{
-       struct mbuf *m = msg->packet.nm_packet;
-       struct elaphdr *elhp, elh;
-
-       get_mplock();
-
-       /*
-        * Phase 1 packet handling 
-        */
-       if (m->m_len < SZ_ELAPHDR && ((m = m_pullup(m, SZ_ELAPHDR)) == 0)) {
-               ddpstat.ddps_tooshort++;
-               goto out;
-       }
-
-       /*
-        * This seems a little dubious, but I don't know phase 1 so leave it.
-        */
-       elhp = mtod(m, struct elaphdr *);
-       m_adj(m, SZ_ELAPHDR);
-
-       if (elhp->el_type == ELAP_DDPEXTEND) {
-               ddp_input(m, m->m_pkthdr.rcvif, NULL, 1);
-       } else {
-               bcopy((caddr_t)elhp, (caddr_t)&elh, SZ_ELAPHDR);
-               ddp_input(m, m->m_pkthdr.rcvif, &elh, 1);
-       }
-out:
-       rel_mplock();
-       /* msg was embedded in the mbuf, do not reply! */
-}
-
-static void
-ddp_input(struct mbuf *m, struct ifnet *ifp, struct elaphdr *elh, int phase)
-{
-    struct sockaddr_at from, to;
-    struct ddpshdr     *dsh, ddps;
-    struct at_ifaddr   *aa;
-    struct ddpehdr     *deh = NULL, ddpe;
-    struct ddpcb       *ddp;
-    int                        dlen, mlen;
-    u_short            cksum = 0;
-
-    bzero( (caddr_t)&from, sizeof( struct sockaddr_at ));
-    bzero( (caddr_t)&to, sizeof( struct sockaddr_at ));
-    if ( elh ) {
-       /*
-        * Extract the information in the short header.
-        * netowrk information is defaulted to ATADDR_ANYNET
-        * and node information comes from the elh info.
-        * We must be phase 1.
-        */
-       ddpstat.ddps_short++;
-
-       if ( m->m_len < sizeof( struct ddpshdr ) &&
-               (( m = m_pullup( m, sizeof( struct ddpshdr ))) == 0 )) {
-           ddpstat.ddps_tooshort++;
-           return;
-       }
-
-       dsh = mtod( m, struct ddpshdr *);
-       bcopy( (caddr_t)dsh, (caddr_t)&ddps, sizeof( struct ddpshdr ));
-       ddps.dsh_bytes = ntohl( ddps.dsh_bytes );
-       dlen = ddps.dsh_len;
-
-       to.sat_addr.s_net = ATADDR_ANYNET;
-       to.sat_addr.s_node = elh->el_dnode;
-       to.sat_port = ddps.dsh_dport;
-       from.sat_addr.s_net = ATADDR_ANYNET;
-       from.sat_addr.s_node = elh->el_snode;
-       from.sat_port = ddps.dsh_sport;
-
-       /* 
-        * Make sure that we point to the phase1 ifaddr info 
-        * and that it's valid for this packet.
-        */
-       for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-           if ( (aa->aa_ifp == ifp)
-           && ( (aa->aa_flags & AFA_PHASE2) == 0)
-           && ( (to.sat_addr.s_node == AA_SAT( aa )->sat_addr.s_node)
-             || (to.sat_addr.s_node == ATADDR_BCAST))) {
-               break;
-           }
-       }
-       /* 
-        * maybe we got a broadcast not meant for us.. ditch it.
-        */
-       if ( aa == NULL ) {
-           m_freem( m );
-           return;
-       }
-    } else {
-       /*
-        * There was no 'elh' passed on. This could still be
-        * either phase1 or phase2.
-        * We have a long header, but we may be running on a phase 1 net.
-        * Extract out all the info regarding this packet's src & dst.
-        */
-       ddpstat.ddps_long++;
-
-       if ( m->m_len < sizeof( struct ddpehdr ) &&
-               (( m = m_pullup( m, sizeof( struct ddpehdr ))) == 0 )) {
-           ddpstat.ddps_tooshort++;
-           return;
-       }
-
-       deh = mtod( m, struct ddpehdr *);
-       bcopy( (caddr_t)deh, (caddr_t)&ddpe, sizeof( struct ddpehdr ));
-       ddpe.deh_bytes = ntohl( ddpe.deh_bytes );
-       dlen = ddpe.deh_len;
-
-       if (( cksum = ddpe.deh_sum ) == 0 ) {
-           ddpstat.ddps_nosum++;
-       }
-
-       from.sat_addr.s_net = ddpe.deh_snet;
-       from.sat_addr.s_node = ddpe.deh_snode;
-       from.sat_port = ddpe.deh_sport;
-       to.sat_addr.s_net = ddpe.deh_dnet;
-       to.sat_addr.s_node = ddpe.deh_dnode;
-       to.sat_port = ddpe.deh_dport;
-
-       if ( to.sat_addr.s_net == ATADDR_ANYNET ) {
-           /*
-            * The TO address doesn't specify a net,
-            * So by definition it's for this net.
-            * Try find ifaddr info with the right phase, 
-            * the right interface, and either to our node, a broadcast,
-            * or looped back (though that SHOULD be covered in the other
-            * cases).
-            *
-            * XXX If we have multiple interfaces, then the first with
-            * this node number will match (which may NOT be what we want,
-            * but it's probably safe in 99.999% of cases.
-            */
-           for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-               if ( phase == 1 && ( aa->aa_flags & AFA_PHASE2 )) {
-                   continue;
-               }
-               if ( phase == 2 && ( aa->aa_flags & AFA_PHASE2 ) == 0 ) {
-                   continue;
-               }
-               if ( (aa->aa_ifp == ifp)
-               && ( (to.sat_addr.s_node == AA_SAT( aa )->sat_addr.s_node)
-                 || (to.sat_addr.s_node == ATADDR_BCAST)
-                 || (ifp->if_flags & IFF_LOOPBACK))) {
-                   break;
-               }
-           }
-       } else {
-           /* 
-            * A destination network was given. We just try to find 
-            * which ifaddr info matches it.
-            */
-           for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-               /*
-                * This is a kludge. Accept packets that are
-                * for any router on a local netrange.
-                */
-               if ( to.sat_addr.s_net == aa->aa_firstnet &&
-                       to.sat_addr.s_node == 0 ) {
-                   break;
-               }
-               /*
-                * Don't use ifaddr info for which we are totally outside the
-                * netrange, and it's not a startup packet.
-                * Startup packets are always implicitly allowed on to
-                * the next test.
-                */
-               if ((( ntohs( to.sat_addr.s_net ) < ntohs( aa->aa_firstnet ))
-                   || (ntohs( to.sat_addr.s_net ) > ntohs( aa->aa_lastnet )))
-                && (( ntohs( to.sat_addr.s_net ) < 0xff00)
-                   || (ntohs( to.sat_addr.s_net ) > 0xfffe ))) {
-                   continue;
-               }
-
-               /*
-                * Don't record a match either if we just don't have a match
-                * in the node address. This can have if the interface
-                * is in promiscuous mode for example.
-                */
-               if (( to.sat_addr.s_node != AA_SAT( aa )->sat_addr.s_node)
-               && (to.sat_addr.s_node != ATADDR_BCAST) ) {
-                   continue;
-               }
-               break;
-           }
-       }
-    }
-
-    /*
-     * Adjust the length, removing any padding that may have been added
-     * at a link layer.  We do this before we attempt to forward a packet,
-     * possibly on a different media.
-     */
-    mlen = m->m_pkthdr.len;
-    if ( mlen < dlen ) {
-       ddpstat.ddps_toosmall++;
-       m_freem( m );
-       return;
-    }
-    if ( mlen > dlen ) {
-       m_adj( m, dlen - mlen );
-    }
-
-    /*
-     * If it aint for a net on any of our interfaces,
-     * or it IS for a net on a different interface than it came in on,
-     * (and it is not looped back) then consider if we should forward it.
-     * As we are not really a router this is a bit cheeky, but it may be
-     * useful some day.
-     */
-    if ( (aa == NULL)
-    || ( (to.sat_addr.s_node == ATADDR_BCAST)
-      && (aa->aa_ifp != ifp)
-      && (( ifp->if_flags & IFF_LOOPBACK ) == 0 ))) {
-       /* 
-        * If we've explicitly disabled it, don't route anything
-        */
-       if ( ddp_forward == 0 ) {
-           m_freem( m );
-           return;
-       }
-       /* 
-        * If the cached forwarding route is still valid, use it.
-        */
-       if ( forwro.ro_rt
-       && ( satosat(&forwro.ro_dst)->sat_addr.s_net != to.sat_addr.s_net
-         || satosat(&forwro.ro_dst)->sat_addr.s_node != to.sat_addr.s_node )) {
-           RTFREE( forwro.ro_rt );
-           forwro.ro_rt = NULL;
-       }
-
-       /*
-        * If we don't have a cached one (any more) or it's useless,
-        * Then get a new route.
-        * XXX this could cause a 'route leak'. check this!
-        */
-       if ( forwro.ro_rt == NULL
-       || forwro.ro_rt->rt_ifp == NULL ) {
-           forwro.ro_dst.sa_len = sizeof( struct sockaddr_at );
-           forwro.ro_dst.sa_family = AF_APPLETALK;
-           satosat(&forwro.ro_dst)->sat_addr.s_net = to.sat_addr.s_net;
-           satosat(&forwro.ro_dst)->sat_addr.s_node = to.sat_addr.s_node;
-           rtalloc(&forwro);
-       }
-
-       /* 
-        * If it's not going to get there on this hop, and it's
-        * already done too many hops, then throw it away.
-        */
-       if ( (to.sat_addr.s_net != satosat( &forwro.ro_dst )->sat_addr.s_net)
-       && (ddpe.deh_hops == DDP_MAXHOPS) ) {
-           m_freem( m );
-           return;
-       }
-
-       /*
-        * A ddp router might use the same interface
-        * to forward the packet, which this would not effect.
-        * Don't allow packets to cross from one interface to another however.
-        */
-       if ( ddp_firewall
-       && ( (forwro.ro_rt == NULL)
-         || (forwro.ro_rt->rt_ifp != ifp))) {
-           m_freem( m );
-           return;
-       }
-
-       /*
-        * Adjust the header.
-        * If it was a short header then it would have not gotten here,
-        * so we can assume there is room to drop the header in.
-        * XXX what about promiscuous mode, etc...
-        */
-       ddpe.deh_hops++;
-       ddpe.deh_bytes = htonl( ddpe.deh_bytes );
-       bcopy( (caddr_t)&ddpe, (caddr_t)deh, sizeof( u_short )); /* XXX deh? */
-       if ( ddp_route( m, &forwro )) {
-           ddpstat.ddps_cantforward++;
-       } else {
-           ddpstat.ddps_forward++;
-       }
-       return;
-    }
-
-    /*
-     * It was for us, and we have an ifaddr to use with it.
-     */
-    from.sat_len = sizeof( struct sockaddr_at );
-    from.sat_family = AF_APPLETALK;
-
-    /* 
-     * We are no longer interested in the link layer.
-     * so cut it off.
-     */
-    if ( elh ) {
-       m_adj( m, sizeof( struct ddpshdr ));
-    } else {
-       if ( ddp_cksum && cksum && cksum != at_cksum( m, sizeof( int ))) {
-           ddpstat.ddps_badsum++;
-           m_freem( m );
-           return;
-       }
-       m_adj( m, sizeof( struct ddpehdr ));
-    }
-
-    /* 
-     * Search for ddp protocol control blocks that match these
-     * addresses. 
-     */
-    if (( ddp = ddp_search( &from, &to, aa )) == NULL ) {
-       m_freem( m );
-       return;
-    }
-
-    /* 
-     * If we found one, deliver th epacket to the socket
-     */
-    if (ssb_appendaddr( &ddp->ddp_socket->so_rcv, (struct sockaddr *)&from,
-           m, NULL ) == 0 ) {
-       /* 
-        * If the socket is full (or similar error) dump the packet.
-        */
-       ddpstat.ddps_nosockspace++;
-       m_freem( m );
-       return;
-    }
-    /*
-     * And wake up whatever might be waiting for it
-     */
-    sorwakeup( ddp->ddp_socket );
-}
-
-#if 0
-/* As if we haven't got enough of this sort of think floating
-around the kernel :) */
-
-#define BPXLEN 48
-#define BPALEN 16
-#include <ctype.h>
-char   hexdig[] = "0123456789ABCDEF";
-
-static void
-bprint(char *data, int len)
-{
-    char       xout[ BPXLEN ], aout[ BPALEN ];
-    int                i = 0;
-
-    bzero( xout, BPXLEN );
-    bzero( aout, BPALEN );
-
-    for ( ;; ) {
-       if ( len < 1 ) {
-           if ( i != 0 ) {
-               kprintf( "%s\t%s\n", xout, aout );
-           }
-           kprintf( "%s\n", "(end)" );
-           break;
-       }
-
-       xout[ (i*3) ] = hexdig[ ( *data & 0xf0 ) >> 4 ];
-       xout[ (i*3) + 1 ] = hexdig[ *data & 0x0f ];
-
-       if ( (u_char)*data < 0x7f && (u_char)*data > 0x20 ) {
-           aout[ i ] = *data;
-       } else {
-           aout[ i ] = '.';
-       }
-
-       xout[ (i*3) + 2 ] = ' ';
-
-       i++;
-       len--;
-       data++;
-
-       if ( i > BPALEN - 2 ) {
-           kprintf( "%s\t%s\n", xout, aout );
-           bzero( xout, BPXLEN );
-           bzero( aout, BPALEN );
-           i = 0;
-           continue;
-       }
-    }
-}
-
-static void
-m_printm(struct mbuf *m)
-{
-    for (; m; m = m->m_next ) {
-       bprint( mtod( m, char * ), m->m_len );
-    }
-}
-#endif
diff --git a/sys/netproto/atalk/ddp_output.c b/sys/netproto/atalk/ddp_output.c
deleted file mode 100644 (file)
index 900b0de..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- */
-
-/* $FreeBSD: src/sys/netatalk/ddp_output.c,v 1.13.6.1 2000/06/02 22:39:07 archie Exp $ */
-/* $DragonFly: src/sys/netproto/atalk/ddp_output.c,v 1.10 2008/05/14 11:59:24 sephe Exp $ */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-
-#include <net/if.h>
-#include <net/route.h>
-
-#undef s_net
-
-#include "at.h"
-#include "at_var.h"
-#include "ddp.h"
-#include "ddp_var.h"
-#include "at_extern.h"
-
-int    ddp_cksum = 1;
-
-int
-ddp_output(struct mbuf *m, struct socket *so, ...)
-{
-    struct ddpehdr     *deh;
-    struct ddpcb *ddp = sotoddpcb( so );
-
-    M_PREPEND( m, sizeof( struct ddpehdr ), MB_WAIT );
-    if (m == NULL)
-           return (ENOBUFS);
-
-    deh = mtod( m, struct ddpehdr *);
-    deh->deh_pad = 0;
-    deh->deh_hops = 0;
-
-    deh->deh_len = m->m_pkthdr.len;
-
-    deh->deh_dnet = ddp->ddp_fsat.sat_addr.s_net;
-    deh->deh_dnode = ddp->ddp_fsat.sat_addr.s_node;
-    deh->deh_dport = ddp->ddp_fsat.sat_port;
-    deh->deh_snet = ddp->ddp_lsat.sat_addr.s_net;
-    deh->deh_snode = ddp->ddp_lsat.sat_addr.s_node;
-    deh->deh_sport = ddp->ddp_lsat.sat_port;
-
-    /*
-     * The checksum calculation is done after all of the other bytes have
-     * been filled in.
-     */
-    if ( ddp_cksum ) {
-       deh->deh_sum = at_cksum( m, sizeof( int ));
-    } else {
-       deh->deh_sum = 0;
-    }
-    deh->deh_bytes = htonl( deh->deh_bytes );
-
-#ifdef NETATALK_DEBUG
-    kprintf ("ddp_output: from %d.%d:%d to %d.%d:%d\n",
-       ntohs(deh->deh_snet), deh->deh_snode, deh->deh_sport,
-       ntohs(deh->deh_dnet), deh->deh_dnode, deh->deh_dport);
-#endif
-    return( ddp_route( m, &ddp->ddp_route ));
-}
-
-u_short
-at_cksum( struct mbuf *m, int skip)
-{
-    u_char     *data, *end;
-    u_long     cksum = 0;
-
-    for (; m; m = m->m_next ) {
-       for ( data = mtod( m, u_char * ), end = data + m->m_len; data < end;
-               data++ ) {
-           if ( skip ) {
-               skip--;
-               continue;
-           }
-           cksum = ( cksum + *data ) << 1;
-           if ( cksum & 0x00010000 ) {
-               cksum++;
-           }
-           cksum &= 0x0000ffff;
-       }
-    }
-
-    if ( cksum == 0 ) {
-       cksum = 0x0000ffff;
-    }
-    return( (u_short)cksum );
-}
-
-int
-ddp_route( struct mbuf *m, struct route *ro)
-{
-    struct sockaddr_at gate;
-    struct elaphdr     *elh;
-    struct mbuf                *m0;
-    struct at_ifaddr   *aa = NULL;
-    struct ifnet       *ifp = NULL;
-    u_short            net;
-    int        error;
-
-#if 0
-    /* Check for net zero, node zero ("myself") */
-    if (satosat(&ro->ro_dst)->sat_addr.s_net == ATADDR_ANYNET
-        && satosat(&ro->ro_dst)->sat_addr.s_node == ATADDR_ANYNODE) {
-           /* Find the loopback interface */
-    }
-#endif
-
-    /*
-     * if we have a route, find the ifa that refers to this route.
-     * I.e The ifa used to get to the gateway.
-     */
-    if ( (ro->ro_rt == NULL)
-    || ( ro->ro_rt->rt_ifa == NULL )
-    || ( (ifp = ro->ro_rt->rt_ifa->ifa_ifp) == NULL )) {
-       rtalloc(ro);
-    }
-    if ( (ro->ro_rt != NULL)
-    && ( ro->ro_rt->rt_ifa )
-    && ( ifp = ro->ro_rt->rt_ifa->ifa_ifp )) {
-       net = ntohs(satosat(ro->ro_rt->rt_gateway)->sat_addr.s_net);
-       for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-           if (((net == 0) || (aa->aa_ifp == ifp)) &&
-                   net >= ntohs( aa->aa_firstnet ) &&
-                   net <= ntohs( aa->aa_lastnet )) {
-               break;
-           }
-       }
-    } else {
-       m_freem( m );
-#ifdef NETATALK_DEBUG
-       if (ro->ro_rt == NULL)
-           kprintf ("ddp_route: no ro_rt.\n");
-       else if (ro->ro_rt->rt_ifa == NULL)
-           kprintf ("ddp_route: no ro_rt->rt_ifa\n");
-       else
-           kprintf ("ddp_route: no ro_rt->rt_ifa->ifa_ifp\n");
-#endif
-       return( ENETUNREACH );
-    }
-
-    if ( aa == NULL ) {
-#ifdef NETATALK_DEBUG
-       kprintf( "ddp_route: no atalk address found for %s\n", 
-           ifp->if_xname);
-#endif
-       m_freem( m );
-       return( ENETUNREACH );
-    }
-
-    /*
-     * if the destination address is on a directly attached node use that,
-     * else use the official gateway.
-     */
-    if ( ntohs( satosat( &ro->ro_dst )->sat_addr.s_net ) >=
-           ntohs( aa->aa_firstnet ) &&
-           ntohs( satosat( &ro->ro_dst )->sat_addr.s_net ) <=
-           ntohs( aa->aa_lastnet )) {
-       gate = *satosat( &ro->ro_dst );
-    } else {
-       gate = *satosat( ro->ro_rt->rt_gateway );
-    }
-
-    /*
-     * There are several places in the kernel where data is added to
-     * an mbuf without ensuring that the mbuf pointer is aligned.
-     * This is bad for transition routing, since phase 1 and phase 2
-     * packets end up poorly aligned due to the three byte elap header.
-     */
-    if ( !(aa->aa_flags & AFA_PHASE2) ) {
-       MGET( m0, MB_WAIT, MT_HEADER );
-       if ( m0 == 0 ) {
-           m_freem( m );
-           kprintf("ddp_route: no buffers\n");
-           return( ENOBUFS );
-       }
-       m0->m_next = m;
-       /* XXX perhaps we ought to align the header? */
-       m0->m_len = SZ_ELAPHDR;
-       m = m0;
-
-       elh = mtod( m, struct elaphdr *);
-       elh->el_snode = satosat( &aa->aa_addr )->sat_addr.s_node;
-       elh->el_type = ELAP_DDPEXTEND;
-       elh->el_dnode = gate.sat_addr.s_node;
-    }
-    ro->ro_rt->rt_use++;
-
-#ifdef NETATALK_DEBUG
-    kprintf ("ddp_route: from %d.%d to %d.%d, via %d.%d (%s)\n",
-       ntohs(satosat(&aa->aa_addr)->sat_addr.s_net),
-       satosat(&aa->aa_addr)->sat_addr.s_node,
-       ntohs(satosat(&ro->ro_dst)->sat_addr.s_net),
-       satosat(&ro->ro_dst)->sat_addr.s_node,
-       ntohs(gate.sat_addr.s_net),
-       gate.sat_addr.s_node,
-       ifp->if_xname);
-#endif
-
-    /* short-circuit the output if we're sending this to ourself */
-    if ((satosat(&aa->aa_addr)->sat_addr.s_net  == satosat(&ro->ro_dst)->sat_addr.s_net) &&
-       (satosat(&aa->aa_addr)->sat_addr.s_node == satosat(&ro->ro_dst)->sat_addr.s_node))
-    {
-       return (if_simloop(ifp, m, gate.sat_family, 0));
-    }
-
-    /* XXX */
-    error = ifp->if_output(ifp, m, (struct sockaddr *)&gate, NULL);
-    return (error);
-}
diff --git a/sys/netproto/atalk/ddp_usrreq.c b/sys/netproto/atalk/ddp_usrreq.c
deleted file mode 100644 (file)
index 133b0be..0000000
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- * Copyright (c) 1990,1994 Regents of The University of Michigan.
- * All Rights Reserved.  See COPYRIGHT.
- *
- * $DragonFly: src/sys/netproto/atalk/ddp_usrreq.c,v 1.14 2008/09/24 14:26:39 sephe Exp $
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/proc.h>
-#include <sys/priv.h>
-#include <sys/malloc.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-#include <sys/protosw.h>
-
-#include <sys/thread2.h>
-#include <sys/socketvar2.h>
-#include <sys/mplock2.h>
-#include <sys/msgport2.h>
-
-#include <net/if.h>
-#include <net/netisr.h>
-#include <net/route.h>
-
-#include "at.h"
-#include "at_var.h"
-#include "ddp_var.h"
-#include "at_extern.h"
-
-static void at_pcbdisconnect( struct ddpcb *ddp );
-static void at_sockaddr(struct ddpcb *ddp, struct sockaddr **addr);
-static int at_pcbsetaddr(struct ddpcb *ddp, struct sockaddr *addr,
-                         struct thread *td);
-static int at_pcbconnect(struct ddpcb *ddp, struct sockaddr *addr, 
-                        struct thread *td);
-static void at_pcbdetach(struct socket *so, struct ddpcb *ddp);
-static int at_pcballoc(struct socket *so);
-
-struct ddpcb   *ddp_ports[ ATPORT_LAST ];
-struct ddpcb   *ddpcb = NULL;
-static u_long  ddp_sendspace = DDP_MAXSZ; /* Max ddp size + 1 (ddp_type) */
-static u_long  ddp_recvspace = 10 * ( 587 + sizeof( struct sockaddr_at ));
-
-static void
-ddp_attach(netmsg_t msg)
-{
-       struct socket *so = msg->attach.base.nm_so;
-       struct pru_attach_info *ai = msg->attach.nm_ai;
-       struct ddpcb    *ddp;
-       int error;
-
-       ddp = sotoddpcb(so);
-       if (ddp != NULL) {
-               error = EINVAL;
-               goto out;
-       }
-
-       error = at_pcballoc(so);
-       if (error == 0) {
-               error = soreserve(so, ddp_sendspace, ddp_recvspace,
-                                 ai->sb_rlimit);
-       }
-out:
-       lwkt_replymsg(&msg->attach.base.lmsg, error);
-}
-
-static void
-ddp_detach(netmsg_t msg)
-{
-       struct socket *so = msg->detach.base.nm_so;
-       struct ddpcb    *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp == NULL) {
-               error = EINVAL;
-       } else {
-               at_pcbdetach(so, ddp);
-               error = 0;
-       }
-       lwkt_replymsg(&msg->detach.base.lmsg, error);
-}
-
-static void
-ddp_bind(netmsg_t msg)
-{
-       struct socket *so = msg->bind.base.nm_so;
-       struct ddpcb *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp) {
-               error = at_pcbsetaddr(ddp, msg->bind.nm_nam, msg->bind.nm_td);
-       } else {
-               error = EINVAL;
-       }
-       lwkt_replymsg(&msg->bind.base.lmsg, error);
-}
-    
-static void
-ddp_connect(netmsg_t msg)
-{
-       struct socket *so = msg->connect.base.nm_so;
-       struct ddpcb *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp == NULL) {
-               error = EINVAL;
-       } else if (ddp->ddp_fsat.sat_port != ATADDR_ANYPORT ) {
-               error = EISCONN;
-       } else {
-               error = at_pcbconnect(ddp, msg->connect.nm_nam,
-                                     msg->connect.nm_td);
-               if (error == 0)
-                       soisconnected(so);
-       }
-       lwkt_replymsg(&msg->connect.base.lmsg, error);
-}
-
-static void
-ddp_disconnect(netmsg_t msg)
-{
-       struct socket *so = msg->disconnect.base.nm_so;
-       struct ddpcb *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp == NULL) {
-               error = EINVAL;
-       } else if (ddp->ddp_fsat.sat_addr.s_node == ATADDR_ANYNODE) {
-               error = ENOTCONN;
-       } else {
-               soreference(so);
-               at_pcbdisconnect(ddp);
-               ddp->ddp_fsat.sat_addr.s_node = ATADDR_ANYNODE;
-               soisdisconnected(so);
-               sofree(so);             /* soref above */
-               error = 0;
-       }
-       lwkt_replymsg(&msg->disconnect.base.lmsg, error);
-}
-
-static void
-ddp_shutdown(netmsg_t msg)
-{
-       struct socket *so = msg->shutdown.base.nm_so;
-       struct ddpcb    *ddp;
-       int error;
-
-       ddp = sotoddpcb(so);
-       if (ddp) {
-               socantsendmore(so);
-               error = 0;
-       } else {
-               error = EINVAL;
-       }
-       lwkt_replymsg(&msg->shutdown.base.lmsg, error);
-}
-
-static void
-ddp_send(netmsg_t msg)
-{
-       struct socket *so = msg->send.base.nm_so;
-       struct mbuf *m = msg->send.nm_m;
-       struct sockaddr *addr = msg->send.nm_addr;
-       struct mbuf *control = msg->send.nm_control;
-       struct ddpcb *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp == NULL) {
-               error = EINVAL;
-               goto out;
-       }
-
-       if (control && control->m_len) {
-               error = EINVAL;
-               goto out;
-       }
-
-       if (addr) {
-               if (ddp->ddp_fsat.sat_port != ATADDR_ANYPORT) {
-                       error = EISCONN;
-                       goto out;
-               }
-
-               error = at_pcbconnect(ddp, addr, msg->send.nm_td);
-               if (error)
-                       goto out;
-       } else {
-               if (ddp->ddp_fsat.sat_port == ATADDR_ANYPORT) {
-                       error = ENOTCONN;
-                       goto out;
-               }
-       }
-
-       error = ddp_output(m, so);
-       m = NULL;
-       if (addr) {
-               at_pcbdisconnect(ddp);
-       }
-out:
-       if (m)
-               m_freem(m);
-       if (control)
-               m_freem(control);
-       lwkt_replymsg(&msg->send.base.lmsg, error);
-}
-
-/*
- * NOTE: (so) is referenced from soabort*() and netmsg_pru_abort()
- *      will sofree() it when we return.
- */
-static void
-ddp_abort(netmsg_t msg)
-{
-       struct socket *so = msg->abort.base.nm_so;
-       struct ddpcb *ddp;
-       int error;
-       
-       ddp = sotoddpcb(so);
-       if (ddp) {
-               soisdisconnected( so );
-               at_pcbdetach( so, ddp );
-               error = 0;
-       } else {
-               error = EINVAL;
-       }
-       lwkt_replymsg(&msg->abort.base.lmsg, error);
-}
-
-static void
-ddp_setpeeraddr(netmsg_t msg)
-{
-       lwkt_replymsg(&msg->peeraddr.base.lmsg, EOPNOTSUPP);
-}
-
-static void
-ddp_setsockaddr(netmsg_t msg)
-{
-       struct socket *so = msg->sockaddr.base.nm_so;
-       struct sockaddr **nam = msg->sockaddr.nm_nam;
-       struct ddpcb    *ddp;
-       int error;
-
-       ddp = sotoddpcb(so);
-       if (ddp) {
-               at_sockaddr(ddp, nam);
-               error = 0;
-       } else {
-               error = EINVAL;
-       }
-       lwkt_replymsg(&msg->sockaddr.base.lmsg, error);
-}
-
-static void
-ddp_control(netmsg_t msg)
-{
-       struct socket *so = msg->control.base.nm_so;
-       int error;
-
-       error = at_control(so, msg->control.nm_cmd,
-                          msg->control.nm_data,
-                          msg->control.nm_ifp,
-                          msg->control.nm_td);
-       lwkt_replymsg(&msg->control.base.lmsg, error);
-}
-
-
-static void
-at_sockaddr(struct ddpcb *ddp, struct sockaddr **addr)
-{
-    *addr = dup_sockaddr((struct sockaddr *)&ddp->ddp_lsat);
-}
-
-static int 
-at_pcbsetaddr(struct ddpcb *ddp, struct sockaddr *addr, struct thread *td)
-{
-    struct sockaddr_at lsat, *sat;
-    struct at_ifaddr   *aa;
-    struct ddpcb       *ddpp;
-
-    if ( ddp->ddp_lsat.sat_port != ATADDR_ANYPORT ) { /* shouldn't be bound */
-       return( EINVAL );
-    }
-
-    if (addr != 0) {                   /* validate passed address */
-       sat = (struct sockaddr_at *)addr;
-       if (sat->sat_family != AF_APPLETALK) {
-           return(EAFNOSUPPORT);
-       }
-
-       if ( sat->sat_addr.s_node != ATADDR_ANYNODE ||
-               sat->sat_addr.s_net != ATADDR_ANYNET ) {
-           for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-               if (( sat->sat_addr.s_net == AA_SAT( aa )->sat_addr.s_net ) &&
-                ( sat->sat_addr.s_node == AA_SAT( aa )->sat_addr.s_node )) {
-                   break;
-               }
-           }
-           if ( !aa ) {
-               return( EADDRNOTAVAIL );
-           }
-       }
-
-       if ( sat->sat_port != ATADDR_ANYPORT ) {
-           if ( sat->sat_port < ATPORT_FIRST ||
-                   sat->sat_port >= ATPORT_LAST ) {
-               return( EINVAL );
-           }
-           if ( sat->sat_port < ATPORT_RESERVED &&
-                priv_check(td, PRIV_ROOT) ) {
-               return( EACCES );
-           }
-       }
-    } else {
-       bzero( (caddr_t)&lsat, sizeof( struct sockaddr_at ));
-       lsat.sat_len = sizeof(struct sockaddr_at);
-       lsat.sat_addr.s_node = ATADDR_ANYNODE;
-       lsat.sat_addr.s_net = ATADDR_ANYNET;
-       lsat.sat_family = AF_APPLETALK;
-       sat = &lsat;
-    }
-
-    if ( sat->sat_addr.s_node == ATADDR_ANYNODE &&
-           sat->sat_addr.s_net == ATADDR_ANYNET ) {
-       if ( at_ifaddr == NULL ) {
-           return( EADDRNOTAVAIL );
-       }
-       sat->sat_addr = AA_SAT( at_ifaddr )->sat_addr;
-    }
-    ddp->ddp_lsat = *sat;
-
-    /*
-     * Choose port.
-     */
-    if ( sat->sat_port == ATADDR_ANYPORT ) {
-       for ( sat->sat_port = ATPORT_RESERVED;
-               sat->sat_port < ATPORT_LAST; sat->sat_port++ ) {
-           if ( ddp_ports[ sat->sat_port - 1 ] == 0 ) {
-               break;
-           }
-       }
-       if ( sat->sat_port == ATPORT_LAST ) {
-           return( EADDRNOTAVAIL );
-       }
-       ddp->ddp_lsat.sat_port = sat->sat_port;
-       ddp_ports[ sat->sat_port - 1 ] = ddp;
-    } else {
-       for ( ddpp = ddp_ports[ sat->sat_port - 1 ]; ddpp;
-               ddpp = ddpp->ddp_pnext ) {
-           if ( ddpp->ddp_lsat.sat_addr.s_net == sat->sat_addr.s_net &&
-                   ddpp->ddp_lsat.sat_addr.s_node == sat->sat_addr.s_node ) {
-               break;
-           }
-       }
-       if ( ddpp != NULL ) {
-           return( EADDRINUSE );
-       }
-       ddp->ddp_pnext = ddp_ports[ sat->sat_port - 1 ];
-       ddp_ports[ sat->sat_port - 1 ] = ddp;
-       if ( ddp->ddp_pnext ) {
-           ddp->ddp_pnext->ddp_pprev = ddp;
-       }
-    }
-
-    return( 0 );
-}
-
-static int
-at_pcbconnect(struct ddpcb *ddp, struct sockaddr *addr, struct thread *td)
-{
-    struct sockaddr_at *sat = (struct sockaddr_at *)addr;
-    struct route       *ro;
-    struct at_ifaddr   *aa = 0;
-    struct ifnet       *ifp;
-    u_short            hintnet = 0, net;
-
-    if (sat->sat_family != AF_APPLETALK) {
-       return(EAFNOSUPPORT);
-    }
-
-    /*
-     * Under phase 2, network 0 means "the network".  We take "the
-     * network" to mean the network the control block is bound to.
-     * If the control block is not bound, there is an error.
-     */
-    if ( sat->sat_addr.s_net == ATADDR_ANYNET
-               && sat->sat_addr.s_node != ATADDR_ANYNODE ) {
-       if ( ddp->ddp_lsat.sat_port == ATADDR_ANYPORT ) {
-           return( EADDRNOTAVAIL );
-       }
-       hintnet = ddp->ddp_lsat.sat_addr.s_net;
-    }
-
-    ro = &ddp->ddp_route;
-    /*
-     * If we've got an old route for this pcb, check that it is valid.
-     * If we've changed our address, we may have an old "good looking"
-     * route here.  Attempt to detect it.
-     */
-    if ( ro->ro_rt ) {
-       if ( hintnet ) {
-           net = hintnet;
-       } else {
-           net = sat->sat_addr.s_net;
-       }
-       aa = 0;
-       if ((ifp = ro->ro_rt->rt_ifp) != NULL) {
-           for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-               if ( aa->aa_ifp == ifp &&
-                       ntohs( net ) >= ntohs( aa->aa_firstnet ) &&
-                       ntohs( net ) <= ntohs( aa->aa_lastnet )) {
-                   break;
-               }
-           }
-       }
-       if ( aa == NULL || ( satosat( &ro->ro_dst )->sat_addr.s_net !=
-               ( hintnet ? hintnet : sat->sat_addr.s_net ) ||
-               satosat( &ro->ro_dst )->sat_addr.s_node !=
-               sat->sat_addr.s_node )) {
-           RTFREE( ro->ro_rt );
-           ro->ro_rt = NULL;
-       }
-    }
-
-    /*
-     * If we've got no route for this interface, try to find one.
-     */
-    if ( ro->ro_rt == NULL ||
-        ro->ro_rt->rt_ifp == NULL ) {
-       ro->ro_dst.sa_len = sizeof( struct sockaddr_at );
-       ro->ro_dst.sa_family = AF_APPLETALK;
-       if ( hintnet ) {
-           satosat( &ro->ro_dst )->sat_addr.s_net = hintnet;
-       } else {
-           satosat( &ro->ro_dst )->sat_addr.s_net = sat->sat_addr.s_net;
-       }
-       satosat( &ro->ro_dst )->sat_addr.s_node = sat->sat_addr.s_node;
-       rtalloc( ro );
-    }
-
-    /*
-     * Make sure any route that we have has a valid interface.
-     */
-    aa = 0;
-    if ( ro->ro_rt && ( ifp = ro->ro_rt->rt_ifp )) {
-       for ( aa = at_ifaddr; aa; aa = aa->aa_next ) {
-           if ( aa->aa_ifp == ifp ) {
-               break;
-           }
-       }
-    }
-    if ( aa == 0 ) {
-       return( ENETUNREACH );
-    }
-
-    ddp->ddp_fsat = *sat;
-    if ( ddp->ddp_lsat.sat_port == ATADDR_ANYPORT ) {
-       return(at_pcbsetaddr(ddp, NULL, td));
-    }
-    return( 0 );
-}
-
-static void 
-at_pcbdisconnect( struct ddpcb *ddp )
-{
-    ddp->ddp_fsat.sat_addr.s_net = ATADDR_ANYNET;
-    ddp->ddp_fsat.sat_addr.s_node = ATADDR_ANYNODE;
-    ddp->ddp_fsat.sat_port = ATADDR_ANYPORT;
-}
-
-static int
-at_pcballoc( struct socket *so )
-{
-       struct ddpcb    *ddp;
-
-       MALLOC(ddp, struct ddpcb *, sizeof *ddp, M_PCB, M_WAITOK | M_ZERO);
-       ddp->ddp_lsat.sat_port = ATADDR_ANYPORT;
-
-       ddp->ddp_next = ddpcb;
-       ddp->ddp_prev = NULL;
-       ddp->ddp_pprev = NULL;
-       ddp->ddp_pnext = NULL;
-       if (ddpcb) {
-               ddpcb->ddp_prev = ddp;
-       }
-       ddpcb = ddp;
-
-       ddp->ddp_socket = so;
-       so->so_pcb = (caddr_t)ddp;
-       return(0);
-}
-
-static void
-at_pcbdetach( struct socket *so, struct ddpcb *ddp)
-{
-    soisdisconnected(so);
-    so->so_pcb = NULL;
-    sofree(so);
-
-    /* remove ddp from ddp_ports list */
-    if ( ddp->ddp_lsat.sat_port != ATADDR_ANYPORT &&
-           ddp_ports[ ddp->ddp_lsat.sat_port - 1 ] != NULL ) {
-       if ( ddp->ddp_pprev != NULL ) {
-           ddp->ddp_pprev->ddp_pnext = ddp->ddp_pnext;
-       } else {
-           ddp_ports[ ddp->ddp_lsat.sat_port - 1 ] = ddp->ddp_pnext;
-       }
-       if ( ddp->ddp_pnext != NULL ) {
-           ddp->ddp_pnext->ddp_pprev = ddp->ddp_pprev;
-       }
-    }
-
-    if ( ddp->ddp_route.ro_rt ) {
-       rtfree( ddp->ddp_route.ro_rt );
-    }
-
-    if ( ddp->ddp_prev ) {
-       ddp->ddp_prev->ddp_next = ddp->ddp_next;
-    } else {
-       ddpcb = ddp->ddp_next;
-    }
-    if ( ddp->ddp_next ) {
-       ddp->ddp_next->ddp_prev = ddp->ddp_prev;
-    }
-    FREE(ddp, M_PCB);
-}
-
-/*
- * For the moment, this just find the pcb with the correct local address.
- * In the future, this will actually do some real searching, so we can use
- * the sender's address to do de-multiplexing on a single port to many
- * sockets (pcbs).
- */
-struct ddpcb *
-ddp_search( struct sockaddr_at *from, struct sockaddr_at *to,
-                       struct at_ifaddr *aa)
-{
-    struct ddpcb       *ddp;
-
-    /*
-     * Check for bad ports.
-     */
-    if ( to->sat_port < ATPORT_FIRST || to->sat_port >= ATPORT_LAST ) {
-       return( NULL );
-    }
-
-    /*
-     * Make sure the local address matches the sent address.  What about
-     * the interface?
-     */
-    for ( ddp = ddp_ports[ to->sat_port - 1 ]; ddp; ddp = ddp->ddp_pnext ) {
-       /* XXX should we handle 0.YY? */
-
-       /* XXXX.YY to socket on destination interface */
-       if ( to->sat_addr.s_net == ddp->ddp_lsat.sat_addr.s_net &&
-               to->sat_addr.s_node == ddp->ddp_lsat.sat_addr.s_node ) {
-           break;
-       }
-
-       /* 0.255 to socket on receiving interface */
-       if ( to->sat_addr.s_node == ATADDR_BCAST && ( to->sat_addr.s_net == 0 ||
-               to->sat_addr.s_net == ddp->ddp_lsat.sat_addr.s_net ) &&
-               ddp->ddp_lsat.sat_addr.s_net == AA_SAT( aa )->sat_addr.s_net ) {
-           break;
-       }
-
-       /* XXXX.0 to socket on destination interface */
-       if ( to->sat_addr.s_net == aa->aa_firstnet &&
-               to->sat_addr.s_node == 0 &&
-               ntohs( ddp->ddp_lsat.sat_addr.s_net ) >=
-               ntohs( aa->aa_firstnet ) &&
-               ntohs( ddp->ddp_lsat.sat_addr.s_net ) <=
-               ntohs( aa->aa_lastnet )) {
-           break;
-       }
-    }
-    return( ddp );
-}
-
-void 
-ddp_init(void)
-{
-       netisr_register(NETISR_ATALK1, at1intr, NULL);
-       netisr_register(NETISR_ATALK2, at2intr, NULL);
-       netisr_register(NETISR_AARP, aarpintr, NULL);
-}
-
-#if 0
-static void 
-ddp_clean(void)
-{
-    struct ddpcb       *ddp;
-
-    for ( ddp = ddpcb; ddp; ddp = ddp->ddp_next ) {
-       at_pcbdetach( ddp->ddp_socket, ddp );
-    }
-}
-#endif
-
-struct pr_usrreqs ddp_usrreqs = {
-       .pru_abort = ddp_abort,
-       .pru_accept = pr_generic_notsupp,
-       .pru_attach = ddp_attach,
-       .pru_bind = ddp_bind,
-       .pru_connect = ddp_connect,
-       .pru_connect2 = pr_generic_notsupp,
-       .pru_control = ddp_control,
-       .pru_detach = ddp_detach,
-       .pru_disconnect = ddp_disconnect,
-       .pru_listen = pr_generic_notsupp,
-       .pru_peeraddr = ddp_setpeeraddr,
-       .pru_rcvd = pr_generic_notsupp,
-       .pru_rcvoob = pr_generic_notsupp,
-       .pru_send = ddp_send,
-       .pru_sense = pru_sense_null,
-       .pru_shutdown = ddp_shutdown,
-       .pru_sockaddr = ddp_setsockaddr,
-       .pru_sosend = sosend,
-       .pru_soreceive = soreceive
-};
diff --git a/sys/netproto/atalk/ddp_var.h b/sys/netproto/atalk/ddp_var.h
deleted file mode 100644 (file)
index e81861d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 1990,1994 Regents of The University of Michigan.
- * All Rights Reserved.  See COPYRIGHT.
- *
- * $FreeBSD: src/sys/netatalk/ddp_var.h,v 1.4 1999/12/29 04:45:58 peter Exp $
- * $DragonFly: src/sys/netproto/atalk/ddp_var.h,v 1.3 2006/10/23 21:50:33 dillon Exp $
- */
-
-#ifndef _NETATALK_DDP_VAR_H_
-#define _NETATALK_DDP_VAR_H_
-struct ddpcb {
-    struct sockaddr_at ddp_fsat, ddp_lsat;
-    struct route       ddp_route;
-    struct socket      *ddp_socket;
-    struct ddpcb       *ddp_prev, *ddp_next;
-    struct ddpcb       *ddp_pprev, *ddp_pnext;
-};
-
-#define sotoddpcb(so)  ((struct ddpcb *)(so)->so_pcb)
-
-struct ddpstat {
-    long       ddps_short;             /* short header packets received */
-    long       ddps_long;              /* long header packets received */
-    long       ddps_nosum;             /* no checksum */
-    long       ddps_badsum;            /* bad checksum */
-    long       ddps_tooshort;          /* packet too short */
-    long       ddps_toosmall;          /* not enough data */
-    long       ddps_forward;           /* packets forwarded */
-    long       ddps_encap;             /* packets encapsulated */
-    long       ddps_cantforward;       /* packets rcvd for unreachable dest */
-    long       ddps_nosockspace;       /* no space in sockbuf for packet */
-};
-
-#ifdef _KERNEL
-extern int     ddp_cksum;
-extern struct ddpcb            *ddp_ports[ ];
-extern struct ddpcb            *ddpcb;
-extern struct pr_usrreqs       ddp_usrreqs;
-#endif
-#endif /* _NETATALK_DDP_VAR_H_ */
diff --git a/sys/netproto/atalk/endian.h b/sys/netproto/atalk/endian.h
deleted file mode 100644 (file)
index 4786e8d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of The University
- * of Michigan not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. This software is supplied as is without expressed or
- * implied warranties of any kind.
- *
- *     Research Systems Unix Group
- *     The University of Michigan
- *     c/o Mike Clark
- *     535 W. William Street
- *     Ann Arbor, Michigan
- *     +1-313-763-0525
- *     netatalk@itd.umich.edu
- */
-
-#ifndef _ATALK_ENDIAN_H_
-#define _ATALK_ENDIAN_H_
-
-#include <machine/endian.h>
-
-#endif /* !_ATALK_ENDIAN_H_ */
diff --git a/sys/netproto/atalk/phase2.h b/sys/netproto/atalk/phase2.h
deleted file mode 100644 (file)
index bc8203b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 1990,1991 Regents of The University of Michigan.
- * All Rights Reserved.
- */
-
-#include <sys/ioccom.h>
-#include <net/if_llc.h>
-
-#define llc_org_code llc_un.type_snap.org_code
-#define llc_ether_type llc_un.type_snap.ether_type
-
-#define SIOCPHASE1     _IOW('i', 100, struct ifreq)    /* AppleTalk phase 1 */
-#define SIOCPHASE2     _IOW('i', 101, struct ifreq)    /* AppleTalk phase 2 */
index 51ac305..12d89c7 100644 (file)
@@ -40,7 +40,6 @@
 
 #include "use_npx.h"
 #include "use_isa.h"
-#include "opt_atalk.h"
 #include "opt_compat.h"
 #include "opt_cpu.h"
 #include "opt_ddb.h"
index ab39301..1fee322 100644 (file)
@@ -42,7 +42,6 @@
 
 //#include "use_npx.h"
 #include "use_isa.h"
-#include "opt_atalk.h"
 #include "opt_compat.h"
 #include "opt_cpu.h"
 #include "opt_ddb.h"
index de5d143..206a210 100644 (file)
@@ -40,7 +40,6 @@
  */
 
 #include "use_npx.h"
-#include "opt_atalk.h"
 #include "opt_compat.h"
 #include "opt_ddb.h"
 #include "opt_directio.h"
index b326e9e..66ce00f 100644 (file)
@@ -39,7 +39,6 @@
  * $FreeBSD: src/sys/i386/i386/machdep.c,v 1.385.2.30 2003/05/31 08:48:05 alc Exp $
  */
 
-#include "opt_atalk.h"
 #include "opt_compat.h"
 #include "opt_ddb.h"
 #include "opt_directio.h"
index 314e6c2..7dbf899 100644 (file)
  * 201300 - 2.13 master
  * 201301 - header rename: <vfs/gnu/ext2fs/...> -> <gnu/vfs/ext2fs/...>
  * 201302 - header <crypt.h> is gone
+ * 201303 - <netatalk/...> and <netproto/atalk/...> are gone
  */
 #undef __DragonFly_version
-#define __DragonFly_version 201302     /* propagated to newvers */
+#define __DragonFly_version 201303     /* propagated to newvers */
 
 #include <sys/_null.h>
 
index dd38bb4..59d2ed5 100644 (file)
 #define        PRIV_NET80211_GETKEY    440     /* Query 802.11 keys. */
 #define        PRIV_NET80211_MANAGE    441     /* Administer 802.11. */
 
-/*
- * AppleTalk privileges.
- */
-#define        PRIV_NETATALK_RESERVEDPORT      450     /* Bind low port number. */
-
 /*
  * ATM privileges.
  */
index 3ce9aab..e451b5c 100644 (file)
@@ -142,7 +142,6 @@ struct      accept_filter_arg {
 #define AF_DLI         13              /* DEC Direct data link interface */
 #define AF_LAT         14              /* LAT */
 #define        AF_HYLINK       15              /* NSC Hyperchannel */
-#define        AF_APPLETALK    16              /* Apple Talk */
 #define        AF_ROUTE        17              /* Internal Routing Protocol */
 #define        AF_LINK         18              /* Link layer interface */
 #define        pseudo_AF_XTP   19              /* eXpress Transfer Protocol (no AF) */
@@ -239,7 +238,6 @@ struct sockaddr_storage {
 #define PF_DLI         AF_DLI
 #define PF_LAT         AF_LAT
 #define        PF_HYLINK       AF_HYLINK
-#define        PF_APPLETALK    AF_APPLETALK
 #define        PF_ROUTE        AF_ROUTE
 #define        PF_LINK         AF_LINK
 #define        PF_XTP          pseudo_AF_XTP   /* really just proto family, no AF */
index ba6946b..fc394ac 100644 (file)
@@ -45,7 +45,6 @@
 #include <net/if_dl.h>
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
-#include <netatalk/at.h>
 #include <netproto/802_11/ieee80211_dragonfly.h>
 #include <arpa/inet.h>
 #include <netdb.h>
index 47a9b26..2c7339d 100644 (file)
@@ -50,7 +50,6 @@
 #include <net/if_dl.h>
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
-#include <netatalk/at.h>
 #include "netproto/802_11/ieee80211_ioctl.h"
 #include "netproto/802_11/ieee80211_dragonfly.h"
 #include <arpa/inet.h>
index ffb237d..0c27f6c 100644 (file)
@@ -20,12 +20,12 @@ LC_ALL=C; export LC_ALL
 
 # Build a list of headers that have ioctls in them.
 # XXX should we use an ANSI cpp?
-# XXX leave out cam/, fs/, netatalk/, netatm/, netnatm/, netsmb/, nwfs/,
+# XXX leave out cam/, fs/, netatm/, netnatm/, netsmb/, nwfs/,
 #     and ufs/ because they are fake softlinks
 ioctl_includes=`
        cd $1
        find -s * -name '*.h' -follow |
-               egrep -v '^(cam/)|^(fs/)|^(netatalk/)|^(netatm/)|^(netnatm/)|^(netsmb/)|^(nwfs/)|^(ufs/)' |
+               egrep -v '^(cam/)|^(fs/)|^(netatm/)|^(netnatm/)|^(netsmb/)|^(nwfs/)|^(ufs/)' |
                xargs egrep -l \
 '^#[   ]*define[       ]+[A-Za-z_][A-Za-z0-9_]*[       ]+_IO[^a-z0-9_]' |
                awk '{printf("#include <%s>\\\\n", $1)}'
index e347dbb..3f07735 100644 (file)
@@ -3,7 +3,7 @@
 
 PROG=  netstat
 SRCS=  if.c inet.c inet6.c main.c mbuf.c mroute.c ipx.c route.c \
-       unix.c atalk.c netgraph.c mroute6.c ipsec.c # iso.c tp_astring.c
+       unix.c netgraph.c mroute6.c ipsec.c # iso.c tp_astring.c
 CFLAGS+=-DIPSEC
 CFLAGS+=-DINET6
 
diff --git a/usr.bin/netstat/atalk.c b/usr.bin/netstat/atalk.c
deleted file mode 100644 (file)
index 86a4e78..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 1983, 1988, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)atalk.c 1.1 (Whistle) 6/6/96
- * $FreeBSD: src/usr.bin/netstat/atalk.c,v 1.13.2.2 2001/09/17 14:53:17 ru Exp $
- * $DragonFly: src/usr.bin/netstat/atalk.c,v 1.4 2007/04/22 01:25:04 dillon Exp $
- */
-
-#define _KERNEL_STRUCTURES
-#include <sys/param.h>
-#include <sys/queue.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-#include <sys/protosw.h>
-
-#include <net/route.h>
-
-#include <netatalk/at.h>
-#include <netatalk/ddp_var.h>
-
-#include <errno.h>
-#include <nlist.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <string.h>
-#include "netstat.h"
-
-struct ddpcb ddpcb;
-struct socket sockb;
-
-static int first = 1;
-
-/*
- * Print a summary of connections related to a Network Systems
- * protocol.  For XXX, also give state of connection.
- * Listening processes (aflag) are suppressed unless the
- * -a (all) flag is specified.
- */
-
-static const char *
-at_pr_net(struct sockaddr_at *sat, int numeric)
-{
-static char mybuf[50];
-
-       if (!numeric) {
-               switch(sat->sat_addr.s_net) {
-               case 0xffff:
-                       return "????";
-               case ATADDR_ANYNET:
-                       return("*");
-               }
-       }
-       sprintf(mybuf,"%hu",ntohs(sat->sat_addr.s_net));
-       return mybuf;
-}
-
-static const char *
-at_pr_host(struct sockaddr_at *sat, int numeric)
-{
-static char mybuf[50];
-
-       if (!numeric) {
-               switch(sat->sat_addr.s_node) {
-               case ATADDR_BCAST:
-                       return "bcast";
-               case ATADDR_ANYNODE:
-                       return("*");
-               }
-       }
-       sprintf(mybuf,"%d",(unsigned int)sat->sat_addr.s_node);
-       return mybuf;
-}
-
-static const char *
-at_pr_port(struct sockaddr_at *sat)
-{
-static char mybuf[50];
-       struct servent *serv;
-
-       switch(sat->sat_port) {
-       case ATADDR_ANYPORT:
-               return("*");
-       case 0xff:
-               return "????";
-       default:
-               if (numeric_port) {
-                       (void)snprintf(mybuf, sizeof(mybuf), "%d",
-                           (unsigned int)sat->sat_port);
-               } else {
-                       serv = getservbyport(sat->sat_port, "ddp");
-                       if (serv == NULL)
-                               (void)snprintf(mybuf, sizeof(mybuf), "%d",
-                                   (unsigned int) sat->sat_port);
-                       else
-                               (void) snprintf(mybuf, sizeof(mybuf), "%s",
-                                   serv->s_name);
-               }
-       }
-       return mybuf;
-}
-
-static char *
-at_pr_range(struct sockaddr_at *sat)
-{
-static char mybuf[50];
-
-       if(sat->sat_range.r_netrange.nr_firstnet
-           != sat->sat_range.r_netrange.nr_lastnet) {
-               sprintf(mybuf,"%d-%d",
-                       ntohs(sat->sat_range.r_netrange.nr_firstnet),
-                       ntohs(sat->sat_range.r_netrange.nr_lastnet));
-       } else {
-               sprintf(mybuf,"%d",
-                       ntohs(sat->sat_range.r_netrange.nr_firstnet));
-       }
-       return mybuf;
-}
-
-
-/* what == 0 for addr only == 3 */
-/*         1 for net */
-/*         2 for host */
-/*         4 for port */
-/*         8 for numeric only */
-char *
-atalk_print(struct sockaddr *sa, int what)
-{
-       struct sockaddr_at *sat = (struct sockaddr_at *)sa;
-       static  char mybuf[50];
-       int numeric = (what & 0x08);
-
-       mybuf[0] = 0;
-       switch (what & 0x13) {
-       case 0:
-               mybuf[0] = 0;
-               break;
-       case 1:
-               sprintf(mybuf,"%s",at_pr_net(sat, numeric));
-               break;
-       case 2:
-               sprintf(mybuf,"%s",at_pr_host(sat, numeric));
-               break;
-       case 3:
-               sprintf(mybuf,"%s.%s",
-                               at_pr_net(sat, numeric),
-                               at_pr_host(sat, numeric));
-               break;
-       case 0x10:
-               sprintf(mybuf,"%s", at_pr_range(sat));
-       }
-       if (what & 4) {
-               sprintf(mybuf+strlen(mybuf),".%s",at_pr_port(sat));
-       }
-       return mybuf;
-}
-
-char *
-atalk_print2(struct sockaddr *sa, struct sockaddr *mask, int what)
-{
-  int n;
-  static char buf[100];
-  struct sockaddr_at *sat1, *sat2;
-  struct sockaddr_at thesockaddr;
-  struct sockaddr *sa2;
-
-  sat1 = (struct sockaddr_at *)sa;
-  sat2 = (struct sockaddr_at *)mask;
-  sa2 = (struct sockaddr *)&thesockaddr;
-
-  thesockaddr.sat_addr.s_net = sat1->sat_addr.s_net & sat2->sat_addr.s_net;
-  n = snprintf(buf, sizeof(buf), "%s", atalk_print(sa2, 1 |(what & 8)));
-  if(sat2->sat_addr.s_net != 0xFFFF) {
-    thesockaddr.sat_addr.s_net = sat1->sat_addr.s_net | ~sat2->sat_addr.s_net;
-    n += snprintf(buf + n, sizeof(buf) - n,
-               "-%s", atalk_print(sa2, 1 |(what & 8)));
-  }
-  if(what & 2)
-  n += snprintf(buf + n, sizeof(buf) - n, ".%s", atalk_print(sa, what&(~1)));
-  return(buf);
-}
-
-void
-atalkprotopr(u_long off __unused, const char *name, int af1 __unused)
-{
-       struct ddpcb *this, *next;
-
-       if (off == 0)
-               return;
-       kread(off, (char *)&this, sizeof (struct ddpcb *));
-       for ( ; this != NULL; this = next) {
-               kread((u_long)this, (char *)&ddpcb, sizeof (ddpcb));
-               next = ddpcb.ddp_next;
-#if 0
-               if (!aflag && atalk_nullhost(ddpcb.ddp_lsat) ) {
-                       continue;
-               }
-#endif
-               kread((u_long)ddpcb.ddp_socket, (char *)&sockb, sizeof (sockb));
-               if (first) {
-                       printf("Active ATALK connections");
-                       if (aflag)
-                               printf(" (including servers)");
-                       putchar('\n');
-                       if (Aflag)
-                               printf("%-8.8s ", "PCB");
-                       printf(Aflag ?
-                               "%-5.5s %-6.6s %-6.6s  %-18.18s %-18.18s %s\n" :
-                               "%-5.5s %-6.6s %-6.6s  %-22.22s %-22.22s %s\n",
-                               "Proto", "Recv-Q", "Send-Q",
-                               "Local Address", "Foreign Address", "(state)");
-                       first = 0;
-               }
-               if (Aflag)
-                       printf("%8lx ", (u_long) this);
-               printf("%-5.5s %6lu %6lu ", name, sockb.so_rcv.ssb_cc,
-                       sockb.so_snd.ssb_cc);
-               printf(Aflag?" %-18.18s":" %-22.22s", atalk_print(
-                                       (struct sockaddr *)&ddpcb.ddp_lsat,7));
-               printf(Aflag?" %-18.18s":" %-22.22s", atalk_print(
-                                       (struct sockaddr *)&ddpcb.ddp_fsat,7));
-               putchar('\n');
-       }
-}
-
-#define ANY(x,y,z) if (x || sflag <= 1) \
-       printf("\t%lu %s%s%s\n",x,y,plural(x),z)
-
-/*
- * Dump DDP statistics structure.
- */
-void
-ddp_stats(u_long off __unused, const char *name, int af1 __unused)
-{
-       struct ddpstat ddpstat;
-
-       if (off == 0)
-               return;
-       kread(off, (char *)&ddpstat, sizeof (ddpstat));
-       printf("%s:\n", name);
-       ANY(ddpstat.ddps_short, "packet", " with short headers ");
-       ANY(ddpstat.ddps_long, "packet", " with long headers ");
-       ANY(ddpstat.ddps_nosum, "packet", " with no checksum ");
-       ANY(ddpstat.ddps_tooshort, "packet", " too short ");
-       ANY(ddpstat.ddps_badsum, "packet", " with bad checksum ");
-       ANY(ddpstat.ddps_toosmall, "packet", " with not enough data ");
-       ANY(ddpstat.ddps_forward, "packet", " forwarded ");
-       ANY(ddpstat.ddps_encap, "packet", " encapsulated ");
-       ANY(ddpstat.ddps_cantforward, "packet", " rcvd for unreachable dest ");
-       ANY(ddpstat.ddps_nosockspace, "packet", " dropped due to no socket space ");
-}
index 9390f5a..533f943 100644 (file)
@@ -32,7 +32,6 @@
  *
  * @(#)if.c    8.3 (Berkeley) 4/28/95
  * $FreeBSD: src/usr.bin/netstat/if.c,v 1.32.2.9 2001/09/17 14:35:46 ru Exp $
- * $DragonFly: src/usr.bin/netstat/if.c,v 1.12 2008/03/07 11:34:21 sephe Exp $
  */
 
 #define _KERNEL_STRUCTURES
@@ -311,10 +310,6 @@ intpr(int interval1, u_long ifnetaddr, void (*pfunc)(char *))
                                }
                                break;
 
-                       case AF_APPLETALK:
-                               printf("atalk:%-12.12s ",atalk_print(sa,0x10) );
-                               printf("%-9.9s  ",atalk_print(sa,0x0b) );
-                               break;
                        case AF_LINK:
                                {
                                struct sockaddr_dl *sdl =
index b5586eb..7cd4bc7 100644 (file)
@@ -33,7 +33,6 @@
  * @(#) Copyright (c) 1983, 1988, 1993 Regents of the University of California.  All rights reserved.
  * @(#)main.c  8.4 (Berkeley) 3/1/94
  * $FreeBSD: src/usr.bin/netstat/main.c,v 1.34.2.12 2001/09/17 15:17:46 ru Exp $
- * $DragonFly: src/usr.bin/netstat/main.c,v 1.16 2008/07/11 23:09:18 thomas Exp $
  */
 
 #include <sys/param.h>
@@ -110,10 +109,6 @@ static struct nlist nl[] = {
        { .n_name = "_ipxstat"},
 #define N_SPXSTAT      24
        { .n_name = "_spx_istat"},
-#define N_DDPSTAT      25
-       { .n_name = "_ddpstat"},
-#define N_DDPCB                26
-       { .n_name = "_ddpcb"},
 #define N_NGSOCKS      27
        { .n_name = "_ngsocklist"},
 #define N_IP6STAT      28
@@ -223,13 +218,6 @@ struct protox pfkeyprotox[] = {
 };
 #endif
 
-struct protox atalkprotox[] = {
-       { N_DDPCB,      N_DDPSTAT,      1,      atalkprotopr,
-         ddp_stats,    NULL,           "ddp",  0 },
-       { -1,           -1,             0,      0,
-         0,            NULL,           NULL,   0 }
-};
-
 struct protox netgraphprotox[] = {
        { N_NGSOCKS,    -1,             1,      netgraphprotopr,
          NULL,         NULL,           "ctrl", 0 },
@@ -271,7 +259,7 @@ struct protox *protoprotox[] = {
 #ifdef IPSEC
                                         pfkeyprotox,
 #endif
-                                        ipxprotox, atalkprotox,
+                                        ipxprotox,
 #ifdef ISO
                                         isoprotox, 
 #endif
@@ -357,8 +345,6 @@ main(int argc, char **argv)
 #endif /*INET6*/
                        else if (strcmp(optarg, "unix") == 0)
                                af = AF_UNIX;
-                       else if (strcmp(optarg, "atalk") == 0)
-                               af = AF_APPLETALK;
                        else if (strcmp(optarg, "ng") == 0
                            || strcmp(optarg, "netgraph") == 0)
                                af = AF_NETGRAPH;
@@ -561,9 +547,6 @@ main(int argc, char **argv)
                for (tp = ipxprotox; tp->pr_name; tp++)
                        printproto(tp, tp->pr_name);
        }
-       if (af == AF_APPLETALK || af == AF_UNSPEC)
-               for (tp = atalkprotox; tp->pr_name; tp++)
-                       printproto(tp, tp->pr_name);
        if (af == AF_NETGRAPH || af == AF_UNSPEC)
                for (tp = netgraphprotox; tp->pr_name; tp++)
                        printproto(tp, tp->pr_name);
index 13be40d..fda60d3 100644 (file)
@@ -31,7 +31,6 @@
 .\"
 .\"    @(#)netstat.1   8.8 (Berkeley) 4/18/94
 .\" $FreeBSD: src/usr.bin/netstat/netstat.1,v 1.22.2.13 2003/05/03 22:10:02 keramida Exp $
-.\" $DragonFly: src/usr.bin/netstat/netstat.1,v 1.9 2008/07/11 23:09:18 thomas Exp $
 .\"
 .Dd July 12, 2008
 .Dt NETSTAT 1
@@ -290,8 +289,6 @@ The following address families, protocol families and protocols are recognized:
 .Cm carp , icmp6 , ip6 , ipsec6 , rip6 , tcp , udp
 .It Cm pfkey Pq Dv AF_KEY PF_KEY
 .Cm pfkey
-.It Cm atalk Pq Dv AF_APPLETALK PF_APPLETALK
-.Cm ddp
 .It Cm netgraph , ng Pq Dv AF_NETGRAPH PF_NETGRAPH
 .Cm ctrl , data
 .It Cm ipx Pq Dv AF_IPX PF_IPX
index 95d202c..7b75061 100644 (file)
@@ -32,7 +32,6 @@
  *
  * @(#)route.c 8.6 (Berkeley) 4/28/95
  * $FreeBSD: src/usr.bin/netstat/route.c,v 1.41.2.14 2002/07/17 02:22:22 kbyanc Exp $
- * $DragonFly: src/usr.bin/netstat/route.c,v 1.13 2008/07/07 22:02:10 nant Exp $
  */
 
 #include <sys/kinfo.h>
@@ -49,7 +48,6 @@
 
 #include <netinet/in.h>
 #include <netipx/ipx.h>
-#include <netatalk/at.h>
 #include <netgraph/socket/ng_socket.h>
 
 #include <netproto/mpls/mpls.h>
@@ -207,9 +205,6 @@ pr_family(int af1)
        case AF_ISO:
                afname = "ISO";
                break;
-       case AF_APPLETALK:
-               afname = "AppleTalk";
-               break;
        case AF_CCITT:
                afname = "X.25";
                break;
@@ -646,14 +641,6 @@ fmt_sockaddr(struct sockaddr *sa, struct sockaddr *mask, int flags)
                        cp = ipx_print(sa);
                break;
            }
-       case AF_APPLETALK:
-           {
-               if (!(flags & RTF_HOST) && mask)
-                       cp = atalk_print2(sa,mask,9);
-               else
-                       cp = atalk_print(sa,11);
-               break;
-           }
        case AF_NETGRAPH:
            {
                printf("%s", ((struct sockaddr_ng *)sa)->sg_data);