From nobody Sun Jul 31 09:03:52 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Lwb085wrzz4XgxP; Sun, 31 Jul 2022 09:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Lwb084lmLz3HX5; Sun, 31 Jul 2022 09:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659258232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=An7mD4SS74qpgeTZTrYq5k3JqE+l81TV791ydMi5laY=; b=gxrISyjdkMdgKB+OqoDOnDU2lnCLndcGcpUvY1b+YDtU419hxUExSFh/yPi1qd1jlBJYcW Av5AZsSYYK3ELglwDkhltaXMxqRE0LfQFWEUve9VqlTbZzK8Gmv3O+GjsxfMkYx+LNpGIP RAYGeu/9JwcalAxNp6cYKvIjZH5khPcUqiIi2MbZVwoh0JffxPu1YH5nmdczOdaofLmr7M PNl+bFrRlIL590dzuJgRJZZjnn9+zmPEZcILQeS0voltdJWY5Ekg/bpd+mhZxupQeK0fP4 ILhSJz4Niqb3TtNbBGaSgPeamXnmqr4UOmtW2jWT9xXN5plkWYHqraMMt/ZFPg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Lwb083Tzxznpv; Sun, 31 Jul 2022 09:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 26V93qo3052932; Sun, 31 Jul 2022 09:03:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 26V93qOc052931; Sun, 31 Jul 2022 09:03:52 GMT (envelope-from git) Date: Sun, 31 Jul 2022 09:03:52 GMT Message-Id: <202207310903.26V93qOc052931@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 27f107e1b434 - main - routing: add debug printing helpers for rtentry and RTM* cmds. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 27f107e1b434aae073a0bffebdf426125e7d83aa Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659258232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=An7mD4SS74qpgeTZTrYq5k3JqE+l81TV791ydMi5laY=; b=e0q8y2GoxA0tXYoP6ILIliaO8Z35iKAHW1ITUP0bbidyMF79jBwWcREEJah9jYqoIWP5DS SBWzwUE6sefqLzei6UMC9o3juxVwAViqoOf8FQSP2oGEljbuSL5ozW6yXRrrv8tFe1olJp +We2nO+X5I/4S0jBVKxebUOBQ8R62uiK5mk94mthjs2sGZw3qk1JxjgUdDOR1Cu2WuCf3h Yy4Phb+bgKeI+odMSJ5g8YR2o+09f02Q601bC/NNtL797JYAEbHgFQDcdegcTKORD5mHYC 0083ex/z+80TC6fsHiVMMiZVClN/SJ/MWF2p9JlAz1I5VHMzNN+JIhWbq2S2qw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1659258232; a=rsa-sha256; cv=none; b=FpDgSx75Im6CgwwDEAbXZxILmg3uhOOz5uQw6MbJyYk5kICZiH3C14whW5oV1nzh1k+OLC +fL6BVD8wImJqu1QkX7EctI9x9XfQTzmpaJC/QH0oiRIspwW7gHUqJ7D6NHqf4QJNC2aE+ aZB8Ge61AiB9bUhlNGKy34RSaD8Y1bHvm5Vu8Mmczrh8kMSPnuF0YAopBPijMjCv/A5kUR hhw0cnwAPyDEQSsRuoiE9HARiExdpa3rPuHG37UGbaimSnLUNRHrAWXtHicHYO3sNW3PUu kV8GbnLLAEfEOFaAs2qie4Z38SSPORn8P2DZ9uQbEX+ScbvOnpo5h4lPHAcZHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=27f107e1b434aae073a0bffebdf426125e7d83aa commit 27f107e1b434aae073a0bffebdf426125e7d83aa Author: Alexander V. Chernikov AuthorDate: 2022-07-31 09:00:42 +0000 Commit: Alexander V. Chernikov CommitDate: 2022-07-31 09:01:42 +0000 routing: add debug printing helpers for rtentry and RTM* cmds. MFC after: 2 weeks --- sys/net/route/route_debug.h | 3 +++ sys/net/route/route_helpers.c | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/sys/net/route/route_debug.h b/sys/net/route/route_debug.h index b2bb8426a816..30d2a1c9a99f 100644 --- a/sys/net/route/route_debug.h +++ b/sys/net/route/route_debug.h @@ -152,6 +152,7 @@ struct nhop_object; struct nhgrp_object; struct llentry; struct nhop_neigh; +struct rtentry; #define NHOP_PRINT_BUFSIZE 48 char *nhop_print_buf(const struct nhop_object *nh, char *buf, size_t bufsize); @@ -161,5 +162,7 @@ char *llentry_print_buf(const struct llentry *lle, struct ifnet *ifp, int family size_t bufsize); char *llentry_print_buf_lltable(const struct llentry *lle, char *buf, size_t bufsize); char *neigh_print_buf(const struct nhop_neigh *nn, char *buf, size_t bufsize); +char *rt_print_buf(const struct rtentry *rt, char *buf, size_t bufsize); +const char *rib_print_cmd(int rib_cmd); #endif diff --git a/sys/net/route/route_helpers.c b/sys/net/route/route_helpers.c index ff6688a8434f..001ebc5e388b 100644 --- a/sys/net/route/route_helpers.c +++ b/sys/net/route/route_helpers.c @@ -565,3 +565,60 @@ rt_get_inet6_parent(uint32_t fibnum, const struct in6_addr *paddr, int plen) return (NULL); } #endif + +/* + * Prints rtentry @rt data in the provided @buf. + * Example: rt/192.168.0.0/24 + */ +char * +rt_print_buf(const struct rtentry *rt, char *buf, size_t bufsize) +{ + char abuf[INET6_ADDRSTRLEN]; + uint32_t scopeid; + int plen; + + switch (rt_get_family(rt)) { +#ifdef INET + case AF_INET: + { + struct in_addr addr4; + rt_get_inet_prefix_plen(rt, &addr4, &plen, &scopeid); + inet_ntop(AF_INET, &addr4, abuf, sizeof(abuf)); + snprintf(buf, bufsize, "rt/%s/%d", abuf, plen); + } + break; +#endif +#ifdef INET6 + case AF_INET6: + { + struct in6_addr addr6; + rt_get_inet6_prefix_plen(rt, &addr6, &plen, &scopeid); + inet_ntop(AF_INET6, &addr6, abuf, sizeof(abuf)); + snprintf(buf, bufsize, "rt/%s/%d", abuf, plen); + } + break; +#endif + default: + snprintf(buf, bufsize, "rt/unknown_af#%d", rt_get_family(rt)); + break; + } + + return (buf); +} + +const char * +rib_print_cmd(int rib_cmd) +{ + switch (rib_cmd) { + case RTM_ADD: + return ("RTM_ADD"); + case RTM_CHANGE: + return ("RTM_CHANGE"); + case RTM_DELETE: + return ("RTM_DELETE"); + case RTM_GET: + return ("RTM_GET"); + } + + return ("UNKNOWN"); +}