summaryrefslogtreecommitdiffstats
path: root/sys/netatalk/aarp.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1996-07-23 01:18:47 +0000
committerjulian <julian@FreeBSD.org>1996-07-23 01:18:47 +0000
commit7805978130bff3d12577cd0f7ab22e16fcf455ed (patch)
tree2385f2536a83e74266993dc1005df7f95645ba32 /sys/netatalk/aarp.c
parentb38885b4106ac83ac9d14b4d9d6a8567a51abbbe (diff)
downloadFreeBSD-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.c217
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)&etherbroadcastaddr, (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)&etherbroadcastaddr, (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)&etherbroadcastaddr, (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--;
}
OpenPOWER on IntegriCloud