[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180207171017.20558-3-sthemmin@microsoft.com>
Date: Wed, 7 Feb 2018 09:10:10 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: dsahern@...il.com
Cc: netdev@...r.kernel.org, Stephen Hemminger <sthemmin@...rosoft.com>,
Stephen Hemminger <stephen@...workplumber.org>
Subject: [PATCH iproute2-next 2/9] iproute: make printing icmpv6 a function
Refactor to reduce size of print_route and improve
readability.
Signed-off-by: Stephen Hemminger <stephen@...workplumber.org>
---
ip/iproute.c | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index 024f1cd87cbb..da6a4faed836 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -363,6 +363,25 @@ static void print_rt_flags(FILE *fp, unsigned int flags)
fprintf(fp, "unresolved ");
}
+static void print_rt_pref(FILE *fp, unsigned int pref)
+{
+ fprintf(fp, "pref ");
+
+ switch (pref) {
+ case ICMPV6_ROUTER_PREF_LOW:
+ fprintf(fp, "low");
+ break;
+ case ICMPV6_ROUTER_PREF_MEDIUM:
+ fprintf(fp, "medium");
+ break;
+ case ICMPV6_ROUTER_PREF_HIGH:
+ fprintf(fp, "high");
+ break;
+ default:
+ fprintf(fp, "%u", pref);
+ }
+}
+
int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
{
FILE *fp = (FILE *)arg;
@@ -740,25 +759,10 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
nh = RTNH_NEXT(nh);
}
}
- if (tb[RTA_PREF]) {
- unsigned int pref = rta_getattr_u8(tb[RTA_PREF]);
- fprintf(fp, "pref ");
+ if (tb[RTA_PREF])
+ print_rt_pref(fp, rta_getattr_u8(tb[RTA_PREF]));
- switch (pref) {
- case ICMPV6_ROUTER_PREF_LOW:
- fprintf(fp, "low");
- break;
- case ICMPV6_ROUTER_PREF_MEDIUM:
- fprintf(fp, "medium");
- break;
- case ICMPV6_ROUTER_PREF_HIGH:
- fprintf(fp, "high");
- break;
- default:
- fprintf(fp, "%u", pref);
- }
- }
if (tb[RTA_TTL_PROPAGATE]) {
fprintf(fp, "ttl-propagate ");
if (rta_getattr_u8(tb[RTA_TTL_PROPAGATE]))
--
2.15.1
Powered by blists - more mailing lists