/* Copyright 1985 by the Massachusetts Institute of Technology */
#include <notice.h>

/* ARP support for chaosnet */

/* Written by David Bridgham (Dec 1985)
 */

#include <types.h>
#include <sys.h>
#include <sysext.h>
#include "../src/const.h"
#include "../src/param.h"
#include "../src/defs.h"
#include "../src/macs.h"
#include "../src/net.h"
#include "../src/ext.h"

#include "../ch/ch.h"
#include "../ch/chext.h"
#include "arp.h"

/* Returns ~0 if this ARP packet should be replied to.  Else returns 0.
 */
arp_ch_myaddp(netp, caddr)
net *netp;
reg chaddr *caddr;
{
    reg chia *iap;

    iap = chiatlst[netp->n_net];
    while (iap != NULL) {
	if (caddr->oc_word == mkcha(iap->chia_addr)->oc_word)
	  return ~0;
	iap = iap->chia_link;
    }
    return 0;
}

/* Returns a pointer to my chaosnet address for this net */
unsb *arp_ch_myaddr(netp)
net *netp;
{
    return ((unsb *)(chiatlst[netp->n_net]->chia_addr));
}

/* Fills a character buffer with a chaosnet address for printing. */
char *arp_ch_paddr(buflen, buf, caddr)
int buflen;
char *buf;
chaddr *caddr;
{
    char *snprintf();

    return (snprintf(buflen, buf, "%o/%o", mkscha(caddr)));
}
