Re: [PATCH] ip/link_vti*.c: Fix output for ikey/okey

2017-08-08 Thread Christian Langrock
Using hex values sounds reasonable.

BR,

Christian


Updated Patch:

Subject: [PATCH] ip/link_vti*.c: Fix output for ikey/okey

ikey and okey are normal u32 values. There's no reason to print them as
IPv4/IPv6 addresses. Instead print them as hex values.

Signed-off-by: Christian Langrock <christian.langr...@secunet.com>
---
 ip/link_vti.c  | 10 --
 ip/link_vti6.c | 10 --
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/ip/link_vti.c b/ip/link_vti.c
index d5242ac..f87623b 100644
--- a/ip/link_vti.c
+++ b/ip/link_vti.c
@@ -244,14 +244,12 @@ static void vti_print_opt(struct link_util *lu,
FILE *f, struct rtattr *tb[])
fprintf(f, "dev %u ", link);
}
 -   if (tb[IFLA_VTI_IKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_IKEY]), s2,
sizeof(s2));
-   fprintf(f, "ikey %s ", s2);
+   if (tb[IFLA_VTI_IKEY] && rta_getattr_u32(tb[IFLA_VTI_IKEY])) {
+   fprintf(f, "ikey 0x%x ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_IKEY])));
}
 -   if (tb[IFLA_VTI_OKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_OKEY]), s2,
sizeof(s2));
-   fprintf(f, "okey %s ", s2);
+   if (tb[IFLA_VTI_OKEY] && rta_getattr_u32(tb[IFLA_VTI_OKEY])) {
+   fprintf(f, "okey 0x%x ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_OKEY])));
}
 if (tb[IFLA_VTI_FWMARK] && rta_getattr_u32(tb[IFLA_VTI_FWMARK])) {
diff --git a/ip/link_vti6.c b/ip/link_vti6.c
index 220b7df..6ae87dd 100644
--- a/ip/link_vti6.c
+++ b/ip/link_vti6.c
@@ -247,14 +247,12 @@ static void vti6_print_opt(struct link_util *lu,
FILE *f, struct rtattr *tb[])
fprintf(f, "dev %u ", link);
}
 -   if (tb[IFLA_VTI_IKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_IKEY]), s2,
sizeof(s2));
-   fprintf(f, "ikey %s ", s2);
+   if (tb[IFLA_VTI_IKEY] && rta_getattr_u32(tb[IFLA_VTI_IKEY])) {
+   fprintf(f, "ikey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_IKEY])));
}
 -   if (tb[IFLA_VTI_OKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_OKEY]), s2,
sizeof(s2));
-   fprintf(f, "okey %s ", s2);
+   if (tb[IFLA_VTI_OKEY] && rta_getattr_u32(tb[IFLA_VTI_OKEY])) {
+   fprintf(f, "okey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_OKEY])));
}
 if (tb[IFLA_VTI_FWMARK] && rta_getattr_u32(tb[IFLA_VTI_FWMARK])) {
-- 
2.7.4






Am 08.08.2017 um 00:38 schrieb Stephen Hemminger:
> On Mon, 7 Aug 2017 11:59:28 +0200
> Christian Langrock <christian.langr...@secunet.com> wrote:
>
>> ikey and okey are normal u32 values. There's no reason to print them as
>> IPv4/IPv6 addresses.
>>
>> Signed-off-by: Christian Langrock <christian.langr...@secunet.com>
> Changing output format breaks scripts that parse output.
> But on the other hand, the VTI code breaks the assumption that ip command
> output should be the same as input.
>
> More likely the original output format was done to match Cisco output.
>
>
> Why not print in hex like fwmark?
>
>
>
>
>





signature.asc
Description: OpenPGP digital signature


Re: [PATCH] ip/link_vti*.c: Fix output for ikey/okey

2017-08-07 Thread Stephen Hemminger
On Mon, 7 Aug 2017 11:59:28 +0200
Christian Langrock  wrote:

> ikey and okey are normal u32 values. There's no reason to print them as
> IPv4/IPv6 addresses.
> 
> Signed-off-by: Christian Langrock 

Changing output format breaks scripts that parse output.
But on the other hand, the VTI code breaks the assumption that ip command
output should be the same as input.

More likely the original output format was done to match Cisco output.


Why not print in hex like fwmark?







pgpymvaMpWU8J.pgp
Description: OpenPGP digital signature


[PATCH] ip/link_vti*.c: Fix output for ikey/okey

2017-08-07 Thread Christian Langrock
ikey and okey are normal u32 values. There's no reason to print them as
IPv4/IPv6 addresses.

Signed-off-by: Christian Langrock 
---
 ip/link_vti.c  | 10 --
 ip/link_vti6.c | 10 --
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/ip/link_vti.c b/ip/link_vti.c
index d5242ac..a694ec4 100644
--- a/ip/link_vti.c
+++ b/ip/link_vti.c
@@ -244,14 +244,12 @@ static void vti_print_opt(struct link_util *lu,
FILE *f, struct rtattr *tb[])
fprintf(f, "dev %u ", link);
}
 
-   if (tb[IFLA_VTI_IKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_IKEY]), s2,
sizeof(s2));
-   fprintf(f, "ikey %s ", s2);
+   if (tb[IFLA_VTI_IKEY] && rta_getattr_u32(tb[IFLA_VTI_IKEY])) {
+   fprintf(f, "ikey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_IKEY])));
}
 
-   if (tb[IFLA_VTI_OKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_OKEY]), s2,
sizeof(s2));
-   fprintf(f, "okey %s ", s2);
+   if (tb[IFLA_VTI_OKEY] && rta_getattr_u32(tb[IFLA_VTI_OKEY])) {
+   fprintf(f, "okey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_OKEY])));
}
 
if (tb[IFLA_VTI_FWMARK] && rta_getattr_u32(tb[IFLA_VTI_FWMARK])) {
diff --git a/ip/link_vti6.c b/ip/link_vti6.c
index 220b7df..6ae87dd 100644
--- a/ip/link_vti6.c
+++ b/ip/link_vti6.c
@@ -247,14 +247,12 @@ static void vti6_print_opt(struct link_util *lu,
FILE *f, struct rtattr *tb[])
fprintf(f, "dev %u ", link);
}
 
-   if (tb[IFLA_VTI_IKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_IKEY]), s2,
sizeof(s2));
-   fprintf(f, "ikey %s ", s2);
+   if (tb[IFLA_VTI_IKEY] && rta_getattr_u32(tb[IFLA_VTI_IKEY])) {
+   fprintf(f, "ikey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_IKEY])));
}
 
-   if (tb[IFLA_VTI_OKEY]) {
-   inet_ntop(AF_INET, RTA_DATA(tb[IFLA_VTI_OKEY]), s2,
sizeof(s2));
-   fprintf(f, "okey %s ", s2);
+   if (tb[IFLA_VTI_OKEY] && rta_getattr_u32(tb[IFLA_VTI_OKEY])) {
+   fprintf(f, "okey %u ",
ntohl(rta_getattr_u32(tb[IFLA_VTI_OKEY])));
}
 
if (tb[IFLA_VTI_FWMARK] && rta_getattr_u32(tb[IFLA_VTI_FWMARK])) {
-- 
2.7.4



0x82EB6B5E.asc
Description: application/pgp-keys


signature.asc
Description: OpenPGP digital signature