Page MenuHomeFreeBSD

D24604.1784931123.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D24604.1784931123.diff

Index: sys/net/if_var.h
===================================================================
--- sys/net/if_var.h
+++ sys/net/if_var.h
@@ -61,6 +61,7 @@
*/
struct rtentry; /* ifa_rtrequest */
+struct nhop_object; /* ifa_rtrequest */
struct rt_addrinfo; /* ifa_rtrequest */
struct socket;
struct carp_if;
@@ -551,7 +552,8 @@
struct carp_softc *ifa_carp; /* pointer to CARP data */
CK_STAILQ_ENTRY(ifaddr) ifa_link; /* queue macro glue */
void (*ifa_rtrequest) /* check or clean routes (+ or -)'d */
- (int, struct rtentry *, struct rt_addrinfo *);
+ (int, struct rtentry *, struct nhop_object *,
+ struct rt_addrinfo *);
u_short ifa_flags; /* mostly rt_flags for cloning */
#define IFA_ROUTE RTF_UP /* route installed */
#define IFA_RTSELF RTF_HOST /* loopback route to self installed */
Index: sys/net/route.c
===================================================================
--- sys/net/route.c
+++ sys/net/route.c
@@ -1239,7 +1239,7 @@
*/
ifa = rt->rt_ifa;
if (ifa != NULL && ifa->ifa_rtrequest != NULL)
- ifa->ifa_rtrequest(RTM_DELETE, rt, info);
+ ifa->ifa_rtrequest(RTM_DELETE, rt, rt->rt_nhop, info);
/*
* One more rtentry floating around that is not
@@ -1761,7 +1761,7 @@
* allow it to do that as well.
*/
if (ifa->ifa_rtrequest)
- ifa->ifa_rtrequest(RTM_ADD, rt, info);
+ ifa->ifa_rtrequest(RTM_ADD, rt, rt->rt_nhop, info);
/*
* actually return a resultant rtentry and
@@ -1886,7 +1886,8 @@
if (info->rti_ifa != NULL && info->rti_ifa != rt->rt_ifa &&
rt->rt_ifa != NULL) {
if (rt->rt_ifa->ifa_rtrequest != NULL)
- rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, info);
+ rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, rt->rt_nhop,
+ info);
ifa_free(rt->rt_ifa);
rt->rt_ifa = NULL;
}
@@ -1910,7 +1911,7 @@
rt->rt_flags |= info->rti_flags & RTF_FMASK;
if (rt->rt_ifa && rt->rt_ifa->ifa_rtrequest != NULL)
- rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, info);
+ rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, nh, info);
/* Alter route MTU if necessary */
if (rt->rt_ifp != NULL) {
Index: sys/netinet6/nd6.c
===================================================================
--- sys/netinet6/nd6.c
+++ sys/netinet6/nd6.c
@@ -1561,13 +1561,12 @@
* processing.
*/
void
-nd6_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info)
+nd6_rtrequest(int req, struct rtentry *rt, struct nhop_object *nh,
+ struct rt_addrinfo *info)
{
struct sockaddr_in6 *gateway;
struct nd_defrouter *dr;
- struct nhop_object *nh;
- nh = rt->rt_nhop;
gateway = &nh->gw6_sa;
switch (req) {

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 24, 10:12 PM (2 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29250241
Default Alt Text
D24604.1784931123.diff (2 KB)

Event Timeline