From: Serhey Popovych <serhe.popovych@gmail.com>
To: netdev@vger.kernel.org
Subject: [PATCH iproute2 v2 3/9] ip/tunnel: Simplify and unify tos printing
Date: Thu, 18 Jan 2018 16:04:30 +0200 [thread overview]
Message-ID: <1516284276-10942-4-git-send-email-serhe.popovych@gmail.com> (raw)
In-Reply-To: <1516284276-10942-1-git-send-email-serhe.popovych@gmail.com>
For ip tunnels tos can be 0 when not configured, 1 when
inherited from encapsulated packet and rest specifying
diffserv (rfc2474) or tos (rfc1349) bits. It is stored
in packet tos/diffserv field and returned in tos
netlink attribute to userspace.
Simplify and unify tos printing by using print_0xhex()
and print_string() instead of fprintf() to output values.
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
---
ip/iplink_geneve.c | 23 ++++++++---------------
ip/iplink_vxlan.c | 19 ++++++++-----------
ip/link_gre.c | 23 ++++++++---------------
ip/link_iptnl.c | 22 ++++++++--------------
4 files changed, 32 insertions(+), 55 deletions(-)
diff --git a/ip/iplink_geneve.c b/ip/iplink_geneve.c
index 5a0afd4..2d0a041 100644
--- a/ip/iplink_geneve.c
+++ b/ip/iplink_geneve.c
@@ -228,7 +228,7 @@ static void geneve_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
{
__u32 vni;
__u8 ttl = 0;
- __u8 tos;
+ __u8 tos = 0;
if (!tb)
return;
@@ -270,20 +270,13 @@ static void geneve_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
else
print_string(PRINT_FP, NULL, "ttl %s ", "inherit");
- if (tb[IFLA_GENEVE_TOS] &&
- (tos = rta_getattr_u8(tb[IFLA_GENEVE_TOS]))) {
- if (is_json_context()) {
- print_0xhex(PRINT_JSON, "tos", "%#x", tos);
- } else {
- if (tos == 1) {
- print_string(PRINT_FP,
- "tos",
- "tos %s ",
- "inherit");
- } else {
- fprintf(f, "tos %#x ", tos);
- }
- }
+ if (tb[IFLA_GENEVE_TOS])
+ tos = rta_getattr_u8(tb[IFLA_GENEVE_TOS]);
+ if (tos) {
+ if (is_json_context() || tos != 1)
+ print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
+ else
+ print_string(PRINT_FP, NULL, "tos %s ", "inherit");
}
if (tb[IFLA_GENEVE_LABEL]) {
diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c
index b9c335d..88b5662 100644
--- a/ip/iplink_vxlan.c
+++ b/ip/iplink_vxlan.c
@@ -395,7 +395,7 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
{
__u32 vni;
__u8 ttl = 0;
- __u8 tos;
+ __u8 tos = 0;
__u32 maxaddr;
if (!tb)
@@ -515,16 +515,13 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_VXLAN_L3MISS] && rta_getattr_u8(tb[IFLA_VXLAN_L3MISS]))
print_bool(PRINT_ANY, "l3miss", "l3miss ", true);
- if (tb[IFLA_VXLAN_TOS] &&
- (tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]))) {
- if (is_json_context()) {
- print_0xhex(PRINT_JSON, "tos", "%#x", tos);
- } else {
- if (tos == 1)
- fprintf(f, "tos %s ", "inherit");
- else
- fprintf(f, "tos %#x ", tos);
- }
+ if (tb[IFLA_VXLAN_TOS])
+ tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]);
+ if (tos) {
+ if (is_json_context() || tos != 1)
+ print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
+ else
+ print_string(PRINT_FP, NULL, "tos %s ", "inherit");
}
if (tb[IFLA_VXLAN_TTL])
diff --git a/ip/link_gre.c b/ip/link_gre.c
index 1cf7f4e..490d7db 100644
--- a/ip/link_gre.c
+++ b/ip/link_gre.c
@@ -362,6 +362,7 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
unsigned int iflags = 0;
unsigned int oflags = 0;
__u8 ttl = 0;
+ __u8 tos = 0;
if (tb[IFLA_GRE_REMOTE]) {
unsigned int addr = rta_getattr_u32(tb[IFLA_GRE_REMOTE]);
@@ -397,21 +398,13 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
else
print_string(PRINT_FP, NULL, "ttl %s ", "inherit");
- if (tb[IFLA_GRE_TOS] && rta_getattr_u8(tb[IFLA_GRE_TOS])) {
- int tos = rta_getattr_u8(tb[IFLA_GRE_TOS]);
-
- if (is_json_context()) {
- SPRINT_BUF(b1);
-
- snprintf(b1, sizeof(b1), "0x%x", tos);
- print_string(PRINT_JSON, "tos", NULL, b1);
- } else {
- fputs("tos ", f);
- if (tos == 1)
- fputs("inherit ", f);
- else
- fprintf(f, "0x%x ", tos);
- }
+ if (tb[IFLA_GRE_TOS])
+ tos = rta_getattr_u8(tb[IFLA_GRE_TOS]);
+ if (tos) {
+ if (is_json_context() || tos != 1)
+ print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
+ else
+ print_string(PRINT_FP, NULL, "tos %s ", "inherit");
}
if (tb[IFLA_GRE_PMTUDISC]) {
diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c
index 93e1a1b..7fda580 100644
--- a/ip/link_iptnl.c
+++ b/ip/link_iptnl.c
@@ -366,6 +366,7 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[
const char *remote = "any";
__u16 prefixlen, type;
__u8 ttl = 0;
+ __u8 tos = 0;
if (!tb)
return;
@@ -424,20 +425,13 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[
else
print_string(PRINT_FP, NULL, "ttl %s ", "inherit");
- if (tb[IFLA_IPTUN_TOS]) {
- int tos = rta_getattr_u8(tb[IFLA_IPTUN_TOS]);
-
- if (tos) {
- if (is_json_context()) {
- print_0xhex(PRINT_JSON, "tos", "%#x", tos);
- } else {
- fputs("tos ", f);
- if (tos == 1)
- fputs("inherit ", f);
- else
- fprintf(f, "0x%x ", tos);
- }
- }
+ if (tb[IFLA_IPTUN_TOS])
+ tos = rta_getattr_u8(tb[IFLA_IPTUN_TOS]);
+ if (tos) {
+ if (is_json_context() || tos != 1)
+ print_0xhex(PRINT_ANY, "tos", "tos 0x%x ", tos);
+ else
+ print_string(PRINT_FP, NULL, "tos %s ", "inherit");
}
if (tb[IFLA_IPTUN_PMTUDISC] && rta_getattr_u8(tb[IFLA_IPTUN_PMTUDISC]))
--
1.7.10.4
next prev parent reply other threads:[~2018-01-18 14:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-18 14:04 [PATCH iproute2 v2 0/9] ip/tunnel: Improve tunnel parameters printing Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 1/9] iplink: Use ll_index_to_name() instead of if_indextoname() Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 2/9] ip/tunnel: Correct and unify ttl/hoplimit printing Serhey Popovych
2018-01-18 14:04 ` Serhey Popovych [this message]
2018-01-18 14:04 ` [PATCH iproute2 v2 4/9] ip/tunnel: Use print_0xhex() instead of print_string() Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 5/9] ip/tunnel: Abstract tunnel encapsulation options printing Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 6/9] gre/tunnel: Print erspan_index using print_uint() Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 7/9] vti/tunnel: Unify ikey/okey printing Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 8/9] vti6/tunnel: Unify and simplify link type help functions Serhey Popovych
2018-01-18 14:04 ` [PATCH iproute2 v2 9/9] tunnel: Return constant string without copying it Serhey Popovych
2018-01-19 0:35 ` [PATCH iproute2 v2 0/9] ip/tunnel: Improve tunnel parameters printing Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1516284276-10942-4-git-send-email-serhe.popovych@gmail.com \
--to=serhe.popovych@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).