In commit 45ec4771d40cb367377e4148a2af22f25c20f3bf the function print_0xhex was changed to handle u64 types. However this change caused regression as reported by an OpenWrt user in https://forum.openwrt.org/t/strange-behavior-of-ip-rule/26597. The casting from u32 to an unsigned long long due to json_context being set causes the ip rule fwmark to be displayed incorrectly. Checking the code for further calls to print_0xhex learns the display of other parameters will be impacted as well due to the automatic casting. Not sure about the best way forward to fix this issue as obviously reverting commit 45ec4771d40cb367377e4148a2af22f25c20f3bf reintroduces the issue it was trying to fix.
Hans