Use rtcache_validate() instead of rtcache_getrt().
This commit is contained in:
parent
19dd9ed4a7
commit
688ff775ce
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: clnp_er.c,v 1.23 2007/12/20 19:53:34 dyoung Exp $ */
|
/* $NetBSD: clnp_er.c,v 1.24 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -59,7 +59,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: clnp_er.c,v 1.23 2007/12/20 19:53:34 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: clnp_er.c,v 1.24 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mbuf.h>
|
#include <sys/mbuf.h>
|
||||||
@ -370,7 +370,7 @@ clnp_emit_er(m, reason)
|
|||||||
|
|
||||||
/* send packet */
|
/* send packet */
|
||||||
INCSTAT(cns_er_outhist[clnp_er_index(reason)]);
|
INCSTAT(cns_er_outhist[clnp_er_index(reason)]);
|
||||||
(void) (*ifp->if_output) (ifp, m, first_hop, rtcache_getrt(&route));
|
(void) (*ifp->if_output) (ifp, m, first_hop, rtcache_validate(&route));
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
bad:
|
bad:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: clnp_output.c,v 1.21 2007/12/20 19:53:34 dyoung Exp $ */
|
/* $NetBSD: clnp_output.c,v 1.22 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -59,7 +59,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: clnp_output.c,v 1.21 2007/12/20 19:53:34 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: clnp_output.c,v 1.22 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mbuf.h>
|
#include <sys/mbuf.h>
|
||||||
@ -243,7 +243,7 @@ clnp_output(struct mbuf *m0, ...)
|
|||||||
printf("\tclc_dst %s\n", clnp_iso_addrp(&clcp->clc_dst));
|
printf("\tclc_dst %s\n", clnp_iso_addrp(&clcp->clc_dst));
|
||||||
printf("\tisop_opts %p, clc_opts %p\n",
|
printf("\tisop_opts %p, clc_opts %p\n",
|
||||||
isop->isop_options, clcp->clc_options);
|
isop->isop_options, clcp->clc_options);
|
||||||
if ((rt = rtcache_getrt(&isop->isop_route)) != NULL)
|
if ((rt = rtcache_validate(&isop->isop_route)) != NULL)
|
||||||
printf("\trt %p, rt_flags x%x\n",
|
printf("\trt %p, rt_flags x%x\n",
|
||||||
rt, rt->rt_flags);
|
rt, rt->rt_flags);
|
||||||
printf("\tflags x%x, clc_flags x%x\n", flags,
|
printf("\tflags x%x, clc_flags x%x\n", flags,
|
||||||
@ -255,7 +255,7 @@ clnp_output(struct mbuf *m0, ...)
|
|||||||
if ((clcp != NULL) && /* cache exists */
|
if ((clcp != NULL) && /* cache exists */
|
||||||
(isop->isop_options == clcp->clc_options) && /* same options */
|
(isop->isop_options == clcp->clc_options) && /* same options */
|
||||||
(iso_addrmatch1(dst, &clcp->clc_dst)) && /* dst still same */
|
(iso_addrmatch1(dst, &clcp->clc_dst)) && /* dst still same */
|
||||||
(rt = rtcache_getrt(&isop->isop_route)) != NULL && /* route exists */
|
(rt = rtcache_validate(&isop->isop_route)) != NULL && /* route exists */
|
||||||
rt == clcp->clc_rt && /* and is cached */
|
rt == clcp->clc_rt && /* and is cached */
|
||||||
(rt->rt_flags & RTF_UP) && /* route still up */
|
(rt->rt_flags & RTF_UP) && /* route still up */
|
||||||
(flags == clcp->clc_flags) && /* same flags */
|
(flags == clcp->clc_flags) && /* same flags */
|
||||||
@ -459,7 +459,7 @@ clnp_output(struct mbuf *m0, ...)
|
|||||||
#endif
|
#endif
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
clcp->clc_rt = rtcache_getrt(&isop->isop_route);/* XXX */
|
clcp->clc_rt = rtcache_validate(&isop->isop_route);/* XXX */
|
||||||
clcp->clc_ifp = clcp->clc_ifa->ia_ifp; /* XXX */
|
clcp->clc_ifp = clcp->clc_ifa->ia_ifp; /* XXX */
|
||||||
|
|
||||||
#ifdef ARGO_DEBUG
|
#ifdef ARGO_DEBUG
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: clnp_subr.c,v 1.30 2007/12/20 19:53:34 dyoung Exp $ */
|
/* $NetBSD: clnp_subr.c,v 1.31 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -59,7 +59,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: clnp_subr.c,v 1.30 2007/12/20 19:53:34 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: clnp_subr.c,v 1.31 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
#include "opt_iso.h"
|
#include "opt_iso.h"
|
||||||
|
|
||||||
@ -263,6 +263,7 @@ clnp_forward(
|
|||||||
struct ifnet *ifp; /* ptr to outgoing interface */
|
struct ifnet *ifp; /* ptr to outgoing interface */
|
||||||
struct iso_ifaddr *ia = 0; /* ptr to iso name for ifp */
|
struct iso_ifaddr *ia = 0; /* ptr to iso name for ifp */
|
||||||
struct route route; /* filled in by clnp_route */
|
struct route route; /* filled in by clnp_route */
|
||||||
|
struct rtentry *rt;
|
||||||
extern int iso_systype;
|
extern int iso_systype;
|
||||||
|
|
||||||
clnp = mtod(m, struct clnp_fixed *);
|
clnp = mtod(m, struct clnp_fixed *);
|
||||||
@ -346,7 +347,7 @@ clnp_forward(
|
|||||||
*/
|
*/
|
||||||
if ((iso_systype & SNPA_IS) && (inbound_shp) &&
|
if ((iso_systype & SNPA_IS) && (inbound_shp) &&
|
||||||
(ifp == inbound_shp->snh_ifp))
|
(ifp == inbound_shp->snh_ifp))
|
||||||
esis_rdoutput(inbound_shp, m, oidx, dst, rtcache_getrt(&route));
|
esis_rdoutput(inbound_shp, m, oidx, dst, rtcache_validate(&route));
|
||||||
/*
|
/*
|
||||||
* If options are present, update them
|
* If options are present, update them
|
||||||
*/
|
*/
|
||||||
@ -391,11 +392,13 @@ clnp_forward(
|
|||||||
/*
|
/*
|
||||||
* Dispatch the datagram if it is small enough, otherwise fragment
|
* Dispatch the datagram if it is small enough, otherwise fragment
|
||||||
*/
|
*/
|
||||||
if (len <= SN_MTU(ifp, rtcache_getrt(&route))) {
|
if ((rt = rtcache_validate(&route)) == NULL)
|
||||||
|
;
|
||||||
|
else if (len <= SN_MTU(ifp, rt)) {
|
||||||
iso_gen_csum(m, CLNP_CKSUM_OFF, (int) clnp->cnf_hdr_len);
|
iso_gen_csum(m, CLNP_CKSUM_OFF, (int) clnp->cnf_hdr_len);
|
||||||
(void) (*ifp->if_output) (ifp, m, next_hop, rtcache_getrt(&route));
|
(void) (*ifp->if_output) (ifp, m, next_hop, rt);
|
||||||
} else {
|
} else {
|
||||||
(void) clnp_fragment(ifp, m, next_hop, len, seg_off, /* flags */ 0, rtcache_getrt(&route));
|
(void) clnp_fragment(ifp, m, next_hop, len, seg_off, /* flags */ 0, rt);
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: if_eon.c,v 1.64 2008/01/10 08:04:44 dyoung Exp $ */
|
/* $NetBSD: if_eon.c,v 1.65 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -67,7 +67,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: if_eon.c,v 1.64 2008/01/10 08:04:44 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: if_eon.c,v 1.65 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
#include "opt_eon.h"
|
#include "opt_eon.h"
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ eonrtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info)
|
|||||||
}
|
}
|
||||||
el->el_flags |= RTF_UP;
|
el->el_flags |= RTF_UP;
|
||||||
eoniphdr(&el->el_ei, ipaddrloc, &el->el_iproute, EON_NORMAL_ADDR);
|
eoniphdr(&el->el_ei, ipaddrloc, &el->el_iproute, EON_NORMAL_ADDR);
|
||||||
if ((nrt = rtcache_getrt(&el->el_iproute)) != NULL)
|
if ((nrt = rtcache_validate(&el->el_iproute)) != NULL)
|
||||||
rt->rt_rmx.rmx_mtu = nrt->rt_rmx.rmx_mtu - sizeof(el->el_ei);
|
rt->rt_rmx.rmx_mtu = nrt->rt_rmx.rmx_mtu - sizeof(el->el_ei);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: iso_pcb.c,v 1.41 2007/12/20 19:53:35 dyoung Exp $ */
|
/* $NetBSD: iso_pcb.c,v 1.42 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -62,7 +62,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: iso_pcb.c,v 1.41 2007/12/20 19:53:35 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: iso_pcb.c,v 1.42 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
#include "opt_iso.h"
|
#include "opt_iso.h"
|
||||||
|
|
||||||
@ -334,7 +334,7 @@ iso_pcbconnect(void *v, struct mbuf *nam, struct lwp *l)
|
|||||||
#ifdef ARGO_DEBUG
|
#ifdef ARGO_DEBUG
|
||||||
if (argo_debug[D_ISO]) {
|
if (argo_debug[D_ISO]) {
|
||||||
printf("iso_pcbconnect localzero 2, rt %p",
|
printf("iso_pcbconnect localzero 2, rt %p",
|
||||||
rtcache_getrt(&isop->isop_route));
|
rtcache_validate(&isop->isop_route));
|
||||||
printf(" ia %p\n", ia);
|
printf(" ia %p\n", ia);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: tp_subr2.c,v 1.36 2007/12/20 19:53:35 dyoung Exp $ */
|
/* $NetBSD: tp_subr2.c,v 1.37 2008/01/14 04:17:35 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -66,7 +66,7 @@ SOFTWARE.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: tp_subr2.c,v 1.36 2007/12/20 19:53:35 dyoung Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: tp_subr2.c,v 1.37 2008/01/14 04:17:35 dyoung Exp $");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this def'n is to cause the expansion of this macro in the routine
|
* this def'n is to cause the expansion of this macro in the routine
|
||||||
@ -510,7 +510,7 @@ tp_mss(struct tp_pcb *tpcb, int nhdr_size)
|
|||||||
else
|
else
|
||||||
mss = 1 << tpcb->tp_tpdusize;
|
mss = 1 << tpcb->tp_tpdusize;
|
||||||
so = tpcb->tp_sock;
|
so = tpcb->tp_sock;
|
||||||
if ((rt = rtcache_getrt(tpcb->tp_routep)) == NULL) {
|
if ((rt = rtcache_validate(tpcb->tp_routep)) == NULL) {
|
||||||
bufsize = so->so_rcv.sb_hiwat;
|
bufsize = so->so_rcv.sb_hiwat;
|
||||||
goto punt_route;
|
goto punt_route;
|
||||||
}
|
}
|
||||||
@ -680,7 +680,7 @@ tp_route_to(struct mbuf *m, struct tp_pcb *tpcb, void *channel)
|
|||||||
tpcb->tp_netservice = ISO_CLNS;
|
tpcb->tp_netservice = ISO_CLNS;
|
||||||
if (clnp_route(&siso->siso_addr, &isop->isop_route,
|
if (clnp_route(&siso->siso_addr, &isop->isop_route,
|
||||||
flags, NULL, NULL) == 0) {
|
flags, NULL, NULL) == 0) {
|
||||||
rt = rtcache_getrt(&isop->isop_route);
|
rt = rtcache_validate(&isop->isop_route);
|
||||||
if (rt && rt->rt_flags & RTF_PROTO1)
|
if (rt && rt->rt_flags & RTF_PROTO1)
|
||||||
tpcb->tp_netservice = ISO_CONS;
|
tpcb->tp_netservice = ISO_CONS;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user