From owner-p4-projects@FreeBSD.ORG Fri Oct 24 10:53:30 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE9BA16A4C0; Fri, 24 Oct 2003 10:53:29 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9950116A4B3 for ; Fri, 24 Oct 2003 10:53:29 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A8F3C43FAF for ; Fri, 24 Oct 2003 10:53:28 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h9OHrSXJ006337 for ; Fri, 24 Oct 2003 10:53:28 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h9OHrSla006334 for perforce@freebsd.org; Fri, 24 Oct 2003 10:53:28 -0700 (PDT) (envelope-from sam@freebsd.org) Date: Fri, 24 Oct 2003 10:53:28 -0700 (PDT) Message-Id: <200310241753.h9OHrSla006334@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 40408 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Oct 2003 17:53:30 -0000 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