Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Oct 2003 10:53:28 -0700 (PDT)
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 40408 for review
Message-ID:  <200310241753.h9OHrSla006334@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=40408

Change 40408 by sam@sam_ebb on 2003/10/24 10:52:50

	add rt_print function to dump a routing table entry;
	needs to be under DIAGNOSTICS or similar and needs more
	work

Affected files ...

.. //depot/projects/netperf/sys/net/route.c#19 edit
.. //depot/projects/netperf/sys/net/route.h#9 edit

Differences ...

==== //depot/projects/netperf/sys/net/route.c#19 (text+ko) ====

@@ -1217,5 +1217,46 @@
 #undef senderr
 }
 
+static void
+rt_print_sockaddr(const char *leader, const char *tag, const struct sockaddr *sa)
+{
+	printf("%s%s: len %u af %u addr %7D\n", leader, tag,
+		sa->sa_len, sa->sa_family,
+		(const unsigned char *) sa->sa_data, ":");
+}
+
+static void
+rt_print1(const char *leader, const char *tag, const struct rtentry *rt)
+{
+	printf("%s%s @%p: refcnt %ld flags 0x%lx\n", leader, tag,
+		rt, rt->rt_refcnt, rt->rt_flags);
+	printf("%sllinfo %p nodes %p %p\n", leader,
+		rt->rt_llinfo, &rt->rt_nodes[0], &rt->rt_nodes[1]);
+	if (rt->rt_gateway)
+		rt_print_sockaddr(leader, "gw", rt->rt_gateway);
+	if (rt_key(rt))
+		rt_print_sockaddr(leader, "key", rt_key(rt));
+	if (rt_mask(rt))
+		rt_print_sockaddr(leader, "mask", rt_mask(rt));
+	if (rt->rt_ifp)
+		printf("%sifp: %p (%s%u)\n", leader,
+			rt->rt_ifp, rt->rt_ifp->if_name, rt->rt_ifp->if_unit);
+	if (rt->rt_ifa)
+		printf("%sifa: %p\n", leader, rt->rt_ifa);	/* XXX expand */
+	if (rt->rt_genmask)
+		rt_print_sockaddr(leader, "genmask", rt->rt_genmask);
+	if (rt->rt_gwroute)
+		rt_print1("   ", "gwroute", rt->rt_gwroute);
+	if (rt->rt_parent)
+		rt_print1("   ", "parent", rt->rt_parent);
+	/* XXX rt_rmx */
+}
+
+void
+rt_print(const struct rtentry *rt)
+{
+	rt_print1("", "route", rt);
+}
+
 /* This must be before ip6_init2(), which is now SI_ORDER_MIDDLE */
 SYSINIT(route, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, 0);

==== //depot/projects/netperf/sys/net/route.h#9 (text+ko) ====

@@ -306,6 +306,7 @@
 	    struct sockaddr *, struct sockaddr *, int, struct rtentry **);
 int	 rtrequest1(int, struct rt_addrinfo *, struct rtentry **);
 int	 rt_check(struct rtentry **, struct rtentry **, struct sockaddr *);
+void	 rt_print(const struct rtentry *);
 #endif
 
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310241753.h9OHrSla006334>