The key should not be called "to_tbl" because it is exactly
not a FR_ACT_TO_TBL action.
# ip rule add blackhole
# ip -j rule | python -m json.tool
...
{
"priority": 0,
"src": "all",
"to_tbl": "blackhole"
},
Still, as this is already released API from v4.17.0, stick to it.
Only add a comment for this oddity.
Related: 0dd4ccc56c0e ("iprule: add json support")
Signed-off-by: Thomas Haller <[email protected]>
---
If it is still permissible to change the API, I can also send a patch to
rename "to_tbl" key to "action".
ip/iprule.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/ip/iprule.c b/ip/iprule.c
index 2f58d8c2..aea175aa 100644
--- a/ip/iprule.c
+++ b/ip/iprule.c
@@ -459,6 +459,8 @@ int print_rule(struct nlmsghdr *n, void *arg)
} else if (frh->action == FR_ACT_NOP) {
print_null(PRINT_ANY, "nop", "nop", NULL);
} else if (frh->action != FR_ACT_TO_TBL) {
+ /* The action is not(!) to-tbl, however for historic
+ * reasons, this JSON key is called "to_tbl". */
print_string(PRINT_ANY, "to_tbl", "%s",
rtnl_rtntype_n2a(frh->action, b1, sizeof(b1)));
}
--
2.20.1