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>