* SUCH DAMAGE.
*
* from: @(#)iso_snpac.c 7.14 (Berkeley) 6/27/91
- * $Id: iso_snpac.c,v 1.2 1993/10/16 21:05:26 rgrimes Exp $
+ * $Id: iso_snpac.c,v 1.3 1993/11/07 17:49:46 wollman Exp $
*/
/***********************************************************
#include "types.h"
#include "param.h"
#include "systm.h"
+#include "kernel.h"
#include "mbuf.h"
#include "domain.h"
#include "protosw.h"
#include "esis.h"
#include "argo_debug.h"
+static void snpac_logdefis(struct rtentry *);
+
struct llinfo_llc llinfo_llc;
-int iso_systype = SNPA_ES; /* default to be an ES */
+int iso_systype = SNPA_ES; /* default to be an ES */
extern short esis_holding_time, esis_config_time, esis_esconfig_time;
-extern struct timeval time;
-extern int esis_config(), hz;
+extern int esis_config();
static void snpac_fixdstandmask();
struct sockaddr_iso blank_siso = {sizeof(blank_siso), AF_ISO};
*
* NOTES: This does a lot of obscure magic;
*/
+void
llc_rtrequest(req, rt, sa)
-int req;
-register struct rtentry *rt;
-struct sockaddr *sa;
+ int req;
+ register struct rtentry *rt;
+ struct sockaddr *sa;
{
register union sockunion *gate = (union sockunion *)rt->rt_gateway;
register struct llinfo_llc *lc = (struct llinfo_llc *)rt->rt_llinfo, *lc2;
if (rt->rt_flags & RTF_CLONING) {
register struct ifaddr *ifa;
register struct sockaddr *sa;
- for (ifa = ifp->if_addrlist; ifa; ifa->ifa_next)
+ for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next)
if ((sa = ifa->ifa_addr)->sa_family == AF_LINK) {
if (sa->sa_len > gate->sa.sa_len)
log(LOG_DEBUG, "llc_rtrequest: cloning address too small\n");
* A mechanism is needed to prevent this function from
* being invoked if the system is an IS.
*/
+int
iso_snparesolve(ifp, dest, snpa, snpa_len)
struct ifnet *ifp; /* outgoing interface */
struct sockaddr_iso *dest; /* destination */
* NOTES: If there is a route entry associated with cache
* entry, then delete that as well
*/
+void
snpac_free(lc)
register struct llinfo_llc *lc; /* entry to free */
{
*
* NOTES: If entry already exists, then update holding time.
*/
+int
snpac_add(ifp, nsap, snpa, type, ht, nsellength)
struct ifnet *ifp; /* interface info is related to */
struct iso_addr *nsap; /* nsap to add */
static void
snpac_fixdstandmask(nsellength)
+ int nsellength;
{
register char *cp = msk.siso_data, *cplim;
*
* NOTES:
*/
+int
snpac_ioctl (so, cmd, data)
struct socket *so;
int cmd; /* ioctl to process */
*
* NOTES:
*/
+static void
snpac_logdefis(sc)
-register struct rtentry *sc;
+ register struct rtentry *sc;
{
register struct iso_addr *r;
register struct sockaddr_dl *sdl = (struct sockaddr_dl *)sc->rt_gateway;
* would time out entries where expiry date is older
* than the current time.
*/
+void
snpac_age()
{
register struct llinfo_llc *lc, *nlc;
* as interm kludge until
* real multicast addresses can be configured
*/
+int
snpac_ownmulti(snpa, len)
caddr_t snpa;
u_int len;
*
* NOTES:
*/
+void
snpac_flushifp(ifp)
struct ifnet *ifp;
{
* NOTES: In the future, this should make a request of a user
* level routing daemon.
*/
+void
snpac_rtrequest(req, host, gateway, netmask, flags, ret_nrt)
int req;
struct iso_addr *host;
* This could be made more efficient by checking
* the existing route before adding a new one.
*/
+void
snpac_addrt(ifp, host, gateway, netmask)
struct ifnet *ifp;
struct iso_addr *host, *gateway, *netmask;