diff options
author | julian <julian@FreeBSD.org> | 1996-07-23 01:18:47 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1996-07-23 01:18:47 +0000 |
commit | 7805978130bff3d12577cd0f7ab22e16fcf455ed (patch) | |
tree | 2385f2536a83e74266993dc1005df7f95645ba32 /sys/netatalk/aarp.c | |
parent | b38885b4106ac83ac9d14b4d9d6a8567a51abbbe (diff) | |
download | FreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.zip FreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.tar.gz |
Submitted by: archie@whistle.com
appletalk cleanups
Diffstat (limited to 'sys/netatalk/aarp.c')
-rw-r--r-- | sys/netatalk/aarp.c | 217 |
1 files changed, 6 insertions, 211 deletions
diff --git a/sys/netatalk/aarp.c b/sys/netatalk/aarp.c index 84beef4..68c243f 100644 --- a/sys/netatalk/aarp.c +++ b/sys/netatalk/aarp.c @@ -8,30 +8,17 @@ #include <sys/socket.h> #include <sys/syslog.h> #include <sys/param.h> -#if defined( __FreeBSD__ ) #include <machine/endian.h> #include <sys/systm.h> #include <sys/proc.h> -#endif #include <sys/mbuf.h> #include <sys/time.h> -#ifndef _IBMR2 #include <sys/kernel.h> -#endif _IBMR2 #include <net/if.h> #include <net/route.h> -#if !defined( __FreeBSD__ ) -#include <net/af.h> -#endif #include <netinet/in.h> #undef s_net #include <netinet/if_ether.h> -#ifdef _IBMR2 -#include <netinet/in_netarp.h> -#include <net/spl.h> -#include <sys/errno.h> -#include <sys/err_rec.h> -#endif _IBMR2 #include <netatalk/at.h> #include <netatalk/at_var.h> @@ -43,13 +30,8 @@ static void aarptfree( struct aarptab *aat); static void at_aarpinput( struct arpcom *ac, struct mbuf *m); -#ifdef GATEWAY -#define AARPTAB_BSIZ 16 -#define AARPTAB_NB 37 -#else #define AARPTAB_BSIZ 9 #define AARPTAB_NB 19 -#endif GATEWAY #define AARPTAB_SIZE (AARPTAB_BSIZ * AARPTAB_NB) struct aarptab aarptab[AARPTAB_SIZE]; int aarptab_size = AARPTAB_SIZE; @@ -72,13 +54,9 @@ int aarptab_size = AARPTAB_SIZE; #define AARPT_KILLC 20 #define AARPT_KILLI 3 -#ifdef sun -extern struct ether_addr etherbroadcastaddr; -#else sun # if !defined( __FreeBSD__ ) extern u_char etherbroadcastaddr[6]; # endif __FreeBSD__ -#endif sun u_char atmulticastaddr[ 6 ] = { 0x09, 0x00, 0x07, 0xff, 0xff, 0xff, @@ -116,10 +94,8 @@ at_ifawithnet( sat, ifa ) struct sockaddr_at *sat; struct ifaddr *ifa; { - struct at_ifaddr *aa; for (; ifa; ifa = ifa->ifa_next ) { -#ifdef BSD4_4 if ( ifa->ifa_addr->sa_family != AF_APPLETALK ) { continue; } @@ -127,16 +103,6 @@ at_ifawithnet( sat, ifa ) sat->sat_addr.s_net ) { break; } -#else BSD4_4 - if ( ifa->ifa_addr.sa_family != AF_APPLETALK ) { - continue; - } - aa = (struct at_ifaddr *)ifa; - if ( ntohs( sat->sat_addr.s_net ) >= ntohs( aa->aa_firstnet ) && - ntohs( sat->sat_addr.s_net ) <= ntohs( aa->aa_lastnet )) { - break; - } -#endif BSD4_4 } return( ifa ); } @@ -151,20 +117,12 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat ) struct llc *llc; struct sockaddr sa; -#ifdef BSD4_4 if (( m = m_gethdr( M_DONTWAIT, MT_DATA )) == NULL ) { return; } m->m_len = sizeof( *ea ); m->m_pkthdr.len = sizeof( *ea ); MH_ALIGN( m, sizeof( *ea )); -#else BSD4_4 - if (( m = m_get( M_DONTWAIT, MT_DATA )) == NULL ) { - return; - } - m->m_len = sizeof( *ea ); - m->m_off = MMAXOFF - sizeof( *ea ); -#endif BSD4_4 ea = mtod( m, struct ether_aarp *); bzero((caddr_t)ea, sizeof( *ea )); @@ -174,13 +132,8 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat ) ea->aarp_hln = sizeof( ea->aarp_sha ); ea->aarp_pln = sizeof( ea->aarp_spu ); ea->aarp_op = htons( AARPOP_REQUEST ); -#ifdef sun - bcopy((caddr_t)&ac->ac_enaddr, (caddr_t)ea->aarp_sha, - sizeof( ea->aarp_sha )); -#else sun bcopy((caddr_t)ac->ac_enaddr, (caddr_t)ea->aarp_sha, sizeof( ea->aarp_sha )); -#endif sun /* * We need to check whether the output ethernet type should @@ -198,24 +151,10 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat ) eh = (struct ether_header *)sa.sa_data; if ( aa->aa_flags & AFA_PHASE2 ) { -#ifdef sun - bcopy((caddr_t)atmulticastaddr, (caddr_t)&eh->ether_dhost, - sizeof( eh->ether_dhost )); -#else sun bcopy((caddr_t)atmulticastaddr, (caddr_t)eh->ether_dhost, sizeof( eh->ether_dhost )); -#endif sun -#if defined(sun) && defined(i386) eh->ether_type = htons(sizeof(struct llc) + sizeof(struct ether_aarp)); -#else - eh->ether_type = sizeof(struct llc) + sizeof(struct ether_aarp); -#endif -#ifdef BSD4_4 M_PREPEND( m, sizeof( struct llc ), M_WAIT ); -#else BSD4_4 - m->m_len += sizeof( struct llc ); - m->m_off -= sizeof( struct llc ); -#endif BSD4_4 llc = mtod( m, struct llc *); llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP; llc->llc_control = LLC_UI; @@ -229,18 +168,9 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat ) ea->aarp_spnode = AA_SAT( aa )->sat_addr.s_node; ea->aarp_tpnode = sat->sat_addr.s_node; } else { -#ifdef sun - bcopy((caddr_t)ðerbroadcastaddr, (caddr_t)&eh->ether_dhost, - sizeof( eh->ether_dhost )); -#else sun bcopy((caddr_t)etherbroadcastaddr, (caddr_t)eh->ether_dhost, sizeof( eh->ether_dhost )); -#endif sun -#if defined(sun) && defined(i386) eh->ether_type = htons( ETHERTYPE_AARP ); -#else - eh->ether_type = ETHERTYPE_AARP; -#endif ea->aarp_spa = AA_SAT( aa )->sat_addr.s_node; ea->aarp_tpa = sat->sat_addr.s_node; @@ -252,15 +182,10 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat ) AA_SAT( aa )->sat_addr.s_node); #endif NETATALKDEBUG -#ifdef BSD4_4 sa.sa_len = sizeof( struct sockaddr ); -#endif BSD4_4 sa.sa_family = AF_UNSPEC; - (*ac->ac_if.if_output)(&ac->ac_if, m, &sa -#if defined( __FreeBSD__ ) - , NULL /* XXX should be routing information */ -#endif __FreeBSD__ - ); + (*ac->ac_if.if_output)(&ac->ac_if, + m, &sa, NULL); /* XXX NULL should be routing information */ } int @@ -268,14 +193,9 @@ aarpresolve( ac, m, destsat, desten ) struct arpcom *ac; struct mbuf *m; struct sockaddr_at *destsat; -#ifdef sun - struct ether_addr *desten; -#else sun u_char *desten; -#endif sun { struct at_ifaddr *aa; - struct ifaddr ifa; struct aarptab *aat; int s; @@ -289,13 +209,8 @@ aarpresolve( ac, m, destsat, desten ) bcopy( (caddr_t)atmulticastaddr, (caddr_t)desten, sizeof( atmulticastaddr )); } else { -#ifdef sun - bcopy( (caddr_t)ðerbroadcastaddr, (caddr_t)desten, - sizeof( etherbroadcastaddr )); -#else sun bcopy( (caddr_t)etherbroadcastaddr, (caddr_t)desten, sizeof( etherbroadcastaddr )); -#endif sun } return( 1 ); } @@ -340,10 +255,6 @@ aarpinput( ac, m ) if ( ac->ac_if.if_flags & IFF_NOARP ) goto out; -#ifndef BSD4_4 - IF_ADJ( m ); -#endif BSD4_4 - if ( m->m_len < sizeof( struct arphdr )) { goto out; } @@ -374,7 +285,6 @@ out: static void at_aarpinput( struct arpcom *ac, struct mbuf *m) { - struct mbuf *m0; struct ether_aarp *ea; struct at_ifaddr *aa; struct aarptab *aat; @@ -383,33 +293,23 @@ at_aarpinput( struct arpcom *ac, struct mbuf *m) struct sockaddr_at sat; struct sockaddr sa; struct at_addr spa, tpa, ma; - int op, s; + int op; u_short net; ea = mtod( m, struct ether_aarp *); /* Check to see if from my hardware address */ -#ifdef sun - if ( !bcmp(( caddr_t )ea->aarp_sha, ( caddr_t )&ac->ac_enaddr, - sizeof( ac->ac_enaddr ))) { - m_freem( m ); - return; - } -#else sun if ( !bcmp(( caddr_t )ea->aarp_sha, ( caddr_t )ac->ac_enaddr, sizeof( ac->ac_enaddr ))) { m_freem( m ); return; } -#endif sun op = ntohs( ea->aarp_op ); bcopy( ea->aarp_tpnet, &net, sizeof( net )); if ( net != 0 ) { /* should be ATADDR_ANYNET? */ -#ifdef BSD4_4 sat.sat_len = sizeof(struct sockaddr_at); -#endif BSD4_4 sat.sat_family = AF_APPLETALK; sat.sat_addr.s_net = net; if (( aa = (struct at_ifaddr *)at_ifawithnet( &sat, @@ -463,16 +363,10 @@ at_aarpinput( struct arpcom *ac, struct mbuf *m) * that someone's saying they have the same source address * as the one we're using. Get upset... */ -#ifndef _IBMR2 -#ifdef ultrix - mprintf( LOG_ERR, -#else ultrix log( LOG_ERR, -#endif ultrix "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 ]); -#endif _IBMR2 m_freem( m ); return; } @@ -495,32 +389,11 @@ at_aarpinput( struct arpcom *ac, struct mbuf *m) sizeof( ea->aarp_sha )); aat->aat_flags |= ATF_COM; if ( aat->aat_hold ) { -#ifdef _IBMR2 - /* - * Like in ddp_output(), we can't rely on the if_output - * routine to resolve AF_APPLETALK addresses, on the rs6k. - * So, we fill the destination ethernet address here. - * - * This should really be replaced with something like - * rsif_output(). XXX Will have to be for phase 2. - */ - /* XXX maybe fill in the rest of the frame header */ - sat.sat_family = AF_UNSPEC; - bcopy( aat->aat_enaddr, (*(struct sockaddr *)&sat).sa_data, - sizeof( aat->aat_enaddr )); -#else _IBMR2 -#ifdef BSD4_4 sat.sat_len = sizeof(struct sockaddr_at); -#endif BSD4_4 sat.sat_family = AF_APPLETALK; sat.sat_addr = spa; -#endif _IBMR2 (*ac->ac_if.if_output)( &ac->ac_if, aat->aat_hold, - (struct sockaddr *)&sat -#if defined( __FreeBSD__ ) - , NULL /* XXX */ -#endif __FreeBSD__ - ); + (struct sockaddr *)&sat, NULL); /* XXX */ aat->aat_hold = 0; } } @@ -546,47 +419,21 @@ at_aarpinput( struct arpcom *ac, struct mbuf *m) bcopy(( caddr_t )ea->aarp_sha, ( caddr_t )ea->aarp_tha, sizeof( ea->aarp_sha )); -#ifdef sun - bcopy(( caddr_t )&ac->ac_enaddr, ( caddr_t )ea->aarp_sha, - sizeof( ea->aarp_sha )); -#else sun bcopy(( caddr_t )ac->ac_enaddr, ( caddr_t )ea->aarp_sha, sizeof( ea->aarp_sha )); -#endif sun /* XXX */ eh = (struct ether_header *)sa.sa_data; -#ifdef sun - bcopy(( caddr_t )ea->aarp_tha, ( caddr_t )&eh->ether_dhost, - sizeof( eh->ether_dhost )); -#else sun bcopy(( caddr_t )ea->aarp_tha, ( caddr_t )eh->ether_dhost, sizeof( eh->ether_dhost )); -#endif sun if ( aa->aa_flags & AFA_PHASE2 ) { -#if defined(sun) && defined(i386) eh->ether_type = htons( sizeof( struct llc ) + sizeof( struct ether_aarp )); -#else - eh->ether_type = sizeof( struct llc ) + sizeof( struct ether_aarp ); -#endif -#ifdef BSD4_4 M_PREPEND( m, sizeof( struct llc ), M_DONTWAIT ); if ( m == NULL ) { return; } -#else BSD4_4 - MGET( m0, M_DONTWAIT, MT_HEADER ); - if ( m0 == NULL ) { - m_freem( m ); - return; - } - m0->m_next = m; - m = m0; - m->m_off = MMAXOFF - sizeof( struct llc ); - m->m_len = sizeof ( struct llc ); -#endif BSD4_4 llc = mtod( m, struct llc *); llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP; llc->llc_control = LLC_UI; @@ -596,26 +443,16 @@ at_aarpinput( struct arpcom *ac, struct mbuf *m) bcopy( ea->aarp_spnet, ea->aarp_tpnet, sizeof( ea->aarp_tpnet )); bcopy( &ma.s_net, ea->aarp_spnet, sizeof( ea->aarp_spnet )); } else { -#if defined(sun) && defined(i386) eh->ether_type = htons( ETHERTYPE_AARP ); -#else - eh->ether_type = ETHERTYPE_AARP; -#endif } ea->aarp_tpnode = ea->aarp_spnode; ea->aarp_spnode = ma.s_node; ea->aarp_op = htons( AARPOP_RESPONSE ); -#ifdef BSD4_4 sa.sa_len = sizeof( struct sockaddr ); -#endif BSD4_4 sa.sa_family = AF_UNSPEC; - (*ac->ac_if.if_output)( &ac->ac_if, m, &sa -#if defined( __FreeBSD__ ) - , NULL /* XXX */ -#endif - ); + (*ac->ac_if.if_output)( &ac->ac_if, m, &sa, NULL); /* XXX */ return; } @@ -703,20 +540,12 @@ aarpprobe( struct arpcom *ac ) timeout( (timeout_func_t)aarpprobe, (caddr_t)ac, hz / 5 ); } -#ifdef BSD4_4 if (( m = m_gethdr( M_DONTWAIT, MT_DATA )) == NULL ) { return; } m->m_len = sizeof( *ea ); m->m_pkthdr.len = sizeof( *ea ); MH_ALIGN( m, sizeof( *ea )); -#else BSD4_4 - if (( m = m_get( M_DONTWAIT, MT_DATA )) == NULL ) { - return; - } - m->m_len = sizeof( *ea ); - m->m_off = MMAXOFF - sizeof( *ea ); -#endif BSD4_4 ea = mtod( m, struct ether_aarp *); bzero((caddr_t)ea, sizeof( *ea )); @@ -726,36 +555,17 @@ aarpprobe( struct arpcom *ac ) ea->aarp_hln = sizeof( ea->aarp_sha ); ea->aarp_pln = sizeof( ea->aarp_spu ); ea->aarp_op = htons( AARPOP_PROBE ); -#ifdef sun - bcopy((caddr_t)&ac->ac_enaddr, (caddr_t)ea->aarp_sha, - sizeof( ea->aarp_sha )); -#else sun bcopy((caddr_t)ac->ac_enaddr, (caddr_t)ea->aarp_sha, sizeof( ea->aarp_sha )); -#endif sun eh = (struct ether_header *)sa.sa_data; if ( aa->aa_flags & AFA_PHASE2 ) { -#ifdef sun - bcopy((caddr_t)atmulticastaddr, (caddr_t)&eh->ether_dhost, - sizeof( eh->ether_dhost )); -#else sun bcopy((caddr_t)atmulticastaddr, (caddr_t)eh->ether_dhost, sizeof( eh->ether_dhost )); -#endif sun -#if defined(sun) && defined(i386) eh->ether_type = htons( sizeof( struct llc ) + sizeof( struct ether_aarp )); -#else - eh->ether_type = sizeof( struct llc ) + sizeof( struct ether_aarp ); -#endif -#ifdef BSD4_4 M_PREPEND( m, sizeof( struct llc ), M_WAIT ); -#else BSD4_4 - m->m_len += sizeof( struct llc ); - m->m_off -= sizeof( struct llc ); -#endif BSD4_4 llc = mtod( m, struct llc *); llc->llc_dsap = llc->llc_ssap = LLC_SNAP_LSAP; llc->llc_control = LLC_UI; @@ -768,18 +578,9 @@ aarpprobe( struct arpcom *ac ) sizeof( ea->aarp_tpnet )); ea->aarp_spnode = ea->aarp_tpnode = AA_SAT( aa )->sat_addr.s_node; } else { -#ifdef sun - bcopy((caddr_t)ðerbroadcastaddr, (caddr_t)&eh->ether_dhost, - sizeof( eh->ether_dhost )); -#else sun bcopy((caddr_t)etherbroadcastaddr, (caddr_t)eh->ether_dhost, sizeof( eh->ether_dhost )); -#endif sun -#if defined(sun) && defined(i386) eh->ether_type = htons( ETHERTYPE_AARP ); -#else - eh->ether_type = ETHERTYPE_AARP; -#endif ea->aarp_spa = ea->aarp_tpa = AA_SAT( aa )->sat_addr.s_node; } @@ -789,15 +590,9 @@ aarpprobe( struct arpcom *ac ) AA_SAT( aa )->sat_addr.s_node); #endif NETATALKDEBUG -#ifdef BSD4_4 sa.sa_len = sizeof( struct sockaddr ); -#endif BSD4_4 sa.sa_family = AF_UNSPEC; - (*ac->ac_if.if_output)(&ac->ac_if, m, &sa -#if defined( __FreeBSD__ ) - , NULL /* XXX */ -#endif __FreeBSD__ - ); + (*ac->ac_if.if_output)(&ac->ac_if, m, &sa, NULL); /* XXX */ aa->aa_probcnt--; } |