Message ID | 20230414194841.31030-1-stephen@networkplumber.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 0f32ef97babcbe77140a69218917937e6a50fb6c |
Headers | show |
Series | iproute_lwtunnel: fix JSON output | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
Hello: This patch was applied to iproute2/iproute2.git (main) by Stephen Hemminger <stephen@networkplumber.org>: On Fri, 14 Apr 2023 12:48:41 -0700 you wrote: > The same tag "dst" was being used for both the route destination > and the encap destination. This made it hard for JSON parsers. > Change to put the per-encap information under a nested JSON > object (similar to ip link type info). > > Original output > [ { > "dst": "192.168.11.0/24", > "encap": "ip6", > "id": 0, > "src": "::", > "dst": "fd00::c0a8:2dd", > "hoplimit": 0, > "tc": 0, > "protocol": "5", > "scope": "link", > "flags": [ ] > } ] > > [...] Here is the summary with links: - iproute_lwtunnel: fix JSON output https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=0f32ef97babc You are awesome, thank you!
diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c index 8b7f3742b71e..9fcbdeac3e77 100644 --- a/ip/iproute_lwtunnel.c +++ b/ip/iproute_lwtunnel.c @@ -840,8 +840,9 @@ void lwt_print_encap(FILE *fp, struct rtattr *encap_type, return; et = rta_getattr_u16(encap_type); - - print_string(PRINT_ANY, "encap", " encap %s ", format_encap_type(et)); + open_json_object("encap"); + print_string(PRINT_ANY, "encap_type", " encap %s ", + format_encap_type(et)); switch (et) { case LWTUNNEL_ENCAP_MPLS: @@ -875,6 +876,7 @@ void lwt_print_encap(FILE *fp, struct rtattr *encap_type, print_encap_xfrm(fp, encap); break; } + close_json_object(); } static struct ipv6_sr_hdr *parse_srh(char *segbuf, int hmac, bool encap)
The same tag "dst" was being used for both the route destination and the encap destination. This made it hard for JSON parsers. Change to put the per-encap information under a nested JSON object (similar to ip link type info). Original output [ { "dst": "192.168.11.0/24", "encap": "ip6", "id": 0, "src": "::", "dst": "fd00::c0a8:2dd", "hoplimit": 0, "tc": 0, "protocol": "5", "scope": "link", "flags": [ ] } ] Revised output [ { "dst": "192.168.11.0/24", "encap": { "encap_type": "ip6", "id": 0, "src": "::", "dst": "fd00::c0a8:2dd", "hoplimit": 0, "tc": 0 }, "protocol": "5", "scope": "link", "flags": [ ] } ] Reported-by: Lars Ekman <uablrek@gmail.com> Fixes: 663c3cb23103 ("iproute: implement JSON and color output") Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- ip/iproute_lwtunnel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)