1 /*- 2 * Copyright (c) 2013 The NetBSD Foundation, Inc. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The NetBSD Foundation 6 * by Christos Zoulas. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. Neither the name of The NetBSD Foundation nor the names of its 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 #define RT_AFLAG __BIT(0) /* show address field */ 34 #define RT_TFLAG __BIT(1) /* show tag field */ 35 #define RT_VFLAG __BIT(2) /* show verbose statistics */ 36 #define RT_NFLAG __BIT(3) /* numeric output */ 37 #define RT_LFLAG __BIT(4) /* don't show LLINFO entries */ 38 39 void p_rttables(int, int, int, int); 40 void p_rthdr(int, int); 41 void p_family(int); 42 void p_sockaddr(const struct sockaddr *, const struct sockaddr *, int, int, int); 43 void p_flags(int); 44 struct rt_metrics; 45 void p_rtrmx(const struct rt_metrics *); 46 void p_addr(const struct sockaddr *sa, const struct sockaddr *mask, int, int); 47 void p_gwaddr(const struct sockaddr *sa, int, int); 48 49 char *routename(const struct sockaddr *sa, int); 50 char *routename4(in_addr_t, int); 51 #ifdef INET6 52 char *routename6(const struct sockaddr_in6 *, int); 53 char *netname6(const struct sockaddr_in6 *, const struct sockaddr_in6 *, int); 54 #endif 55 char *netname(const struct sockaddr *, const struct sockaddr *, int); 56 char *netname4(const struct sockaddr_in *, const struct sockaddr_in *, int); 57 58 char *mpls_ntoa(const struct sockaddr *); 59 char *any_ntoa(const struct sockaddr *); 60