mbox series

[nft,0/9] JSON schema review

Message ID 20180829142328.9891-1-phil@nwl.cc
Headers show
Series JSON schema review | expand

Message

Phil Sutter Aug. 29, 2018, 2:23 p.m. UTC
This series addresses feedback gathered during NFWS2018:

Patches 1 and 2 contain fixes for libnftables-json man page. Patches 3
to 8 change objects and property names for better extensibility and
readability. Finally, patch 9 adds a special object containing meta info
to all JSON output.

Phil Sutter (9):
  doc: Improve example in libnftables-json(5)
  doc: Review libnftables-json.adoc
  JSON: Make meta statement/expression extensible
  JSON: Review verdict statement and expression
  JSON: Review payload expression
  JSON: Rename (v)map expression properties
  JSON: Rename mangle statement properties
  JSON: Make match op mandatory, introduce 'in' operator
  JSON: Add metainfo object to all output

 doc/libnftables-json.adoc             | 318 ++++++++++--------
 include/json.h                        |   2 +
 src/json.c                            |  78 ++---
 src/parser_json.c                     | 189 ++++++-----
 tests/py/any/ct.t.json                | 121 ++++---
 tests/py/any/ct.t.json.output         |  43 ++-
 tests/py/any/dup.t.json               |   6 +-
 tests/py/any/fwd.t.json               |   6 +-
 tests/py/any/fwd.t.json.output        |   6 +-
 tests/py/any/meta.t.json              | 445 +++++++++++++++-----------
 tests/py/any/meta.t.json.output       | 131 ++++----
 tests/py/any/rawpayload.t.json        |  21 +-
 tests/py/any/rawpayload.t.json.output |  10 +-
 tests/py/any/rt.t.json                |   1 +
 tests/py/arp/arp.t.json               | 135 ++++----
 tests/py/arp/arp.t.json.output        |  30 +-
 tests/py/bridge/ether.t.json          |  45 ++-
 tests/py/bridge/ether.t.json.output   |  18 +-
 tests/py/bridge/icmpX.t.json          |  18 +-
 tests/py/bridge/icmpX.t.json.output   |  12 +-
 tests/py/bridge/meta.t.json           |   6 +-
 tests/py/bridge/reject.t.json         |  12 +-
 tests/py/bridge/reject.t.json.output  |  39 ++-
 tests/py/bridge/vlan.t.json           | 101 ++++--
 tests/py/inet/ah.t.json               |  75 +++--
 tests/py/inet/comp.t.json             |  42 ++-
 tests/py/inet/comp.t.json.output      |  22 +-
 tests/py/inet/ct.t.json               |   5 +-
 tests/py/inet/ct.t.json.output        |   1 +
 tests/py/inet/dccp.t.json             |  44 ++-
 tests/py/inet/dccp.t.json.output      |   3 +-
 tests/py/inet/esp.t.json              |  36 ++-
 tests/py/inet/ether-ip.t.json         |  21 +-
 tests/py/inet/ether-ip.t.json.output  |   9 +-
 tests/py/inet/ether.t.json            |  18 +-
 tests/py/inet/ether.t.json.output     |   6 +-
 tests/py/inet/fib.t.json              |   8 +-
 tests/py/inet/fib.t.json.output       |   4 +-
 tests/py/inet/icmp.t.json             |  30 +-
 tests/py/inet/icmp.t.json.output      |   6 +-
 tests/py/inet/icmpX.t.json            |  27 +-
 tests/py/inet/icmpX.t.json.output     |  21 +-
 tests/py/inet/ip.t.json               |   7 +-
 tests/py/inet/ip_tcp.t.json           |  36 ++-
 tests/py/inet/ip_tcp.t.json.output    |  27 +-
 tests/py/inet/map.t.json              |  24 +-
 tests/py/inet/map.t.json.output       |  24 +-
 tests/py/inet/meta.t.json             |  47 ++-
 tests/py/inet/meta.t.json.output      |   9 +-
 tests/py/inet/reject.t.json           |  15 +-
 tests/py/inet/reject.t.json.output    |  39 ++-
 tests/py/inet/rt.t.json               |   9 +-
 tests/py/inet/rt.t.json.output        |   4 +-
 tests/py/inet/sctp.t.json             |  80 +++--
 tests/py/inet/sets.t.json             |   5 +-
 tests/py/inet/socket.t.json           |   2 +
 tests/py/inet/tcp.t.json              | 228 +++++++------
 tests/py/inet/tcp.t.json.output       |  23 +-
 tests/py/inet/tcpopt.t.json           |  31 +-
 tests/py/inet/tcpopt.t.json.output    |   2 +
 tests/py/inet/udp.t.json              | 103 +++---
 tests/py/inet/udplite.t.json          |  65 ++--
 tests/py/ip/ct.t.json                 |  13 +
 tests/py/ip/ct.t.json.output          |   2 +
 tests/py/ip/dnat.t.json               |  43 ++-
 tests/py/ip/dnat.t.json.output        |  10 +-
 tests/py/ip/dup.t.json                |   6 +-
 tests/py/ip/ether.t.json              |  36 ++-
 tests/py/ip/ether.t.json.output       |   9 +-
 tests/py/ip/flowtable.t.json          |   2 +-
 tests/py/ip/hash.t.json               |  50 +--
 tests/py/ip/icmp.t.json               | 188 ++++++-----
 tests/py/ip/icmp.t.json.output        |   8 +-
 tests/py/ip/ip.t.json                 | 303 +++++++++++-------
 tests/py/ip/ip.t.json.output          |  32 +-
 tests/py/ip/ip_tcp.t.json             |  18 +-
 tests/py/ip/ip_tcp.t.json.output      |  15 +-
 tests/py/ip/masquerade.t.json         |  58 ++--
 tests/py/ip/masquerade.t.json.output  |  15 +-
 tests/py/ip/meta.t.json               |  24 +-
 tests/py/ip/meta.t.json.output        |   9 +-
 tests/py/ip/numgen.t.json             |  16 +-
 tests/py/ip/numgen.t.json.output      |  12 +-
 tests/py/ip/objects.t.json            |  33 +-
 tests/py/ip/objects.t.json.output     |  12 +-
 tests/py/ip/redirect.t.json           |  91 ++++--
 tests/py/ip/redirect.t.json.output    |  18 +-
 tests/py/ip/reject.t.json             |   3 +-
 tests/py/ip/reject.t.json.output      |   3 +-
 tests/py/ip/rt.t.json                 |   1 +
 tests/py/ip/sets.t.json               |  25 +-
 tests/py/ip/snat.t.json               |  27 +-
 tests/py/ip/snat.t.json.output        |  11 +-
 tests/py/ip/tcp.t.json                |  11 +-
 tests/py/ip/tcp.t.json.output         |   8 +-
 tests/py/ip/tcpopt.t.json             |  26 ++
 tests/py/ip/tcpopt.t.json.output      |   1 +
 tests/py/ip6/dnat.t.json              |   9 +-
 tests/py/ip6/dst.t.json               |  10 +
 tests/py/ip6/dst.t.json.output        |   2 +
 tests/py/ip6/dup.t.json               |   6 +-
 tests/py/ip6/ether.t.json             |  36 ++-
 tests/py/ip6/ether.t.json.output      |   9 +-
 tests/py/ip6/exthdr.t.json            |   8 +
 tests/py/ip6/exthdr.t.json.output     |   4 +
 tests/py/ip6/flowtable.t.json         |   8 +-
 tests/py/ip6/flowtable.t.json.output  |   8 +-
 tests/py/ip6/frag.t.json              |  20 ++
 tests/py/ip6/frag.t.json.output       |   4 +
 tests/py/ip6/hbh.t.json               |  10 +
 tests/py/ip6/hbh.t.json.output        |   2 +
 tests/py/ip6/icmpv6.t.json            | 163 ++++++----
 tests/py/ip6/icmpv6.t.json.output     |  11 +-
 tests/py/ip6/ip6.t.json               | 308 +++++++++++-------
 tests/py/ip6/ip6.t.json.output        |  61 ++--
 tests/py/ip6/map.t.json               |  12 +-
 tests/py/ip6/map.t.json.output        |  12 +-
 tests/py/ip6/masquerade.t.json        |  58 ++--
 tests/py/ip6/masquerade.t.json.output |  12 +-
 tests/py/ip6/meta.t.json              |  24 +-
 tests/py/ip6/meta.t.json.output       |   9 +-
 tests/py/ip6/mh.t.json                |  21 ++
 tests/py/ip6/mh.t.json.output         |   2 +
 tests/py/ip6/redirect.t.json          |  85 +++--
 tests/py/ip6/redirect.t.json.output   |  18 +-
 tests/py/ip6/reject.t.json            |   3 +-
 tests/py/ip6/reject.t.json.output     |   3 +-
 tests/py/ip6/rt.t.json                |  19 ++
 tests/py/ip6/rt.t.json.output         |   2 +
 tests/py/ip6/rt0.t.json               |   1 +
 tests/py/ip6/sets.t.json              |  14 +-
 tests/py/ip6/snat.t.json              |   6 +-
 tests/py/ip6/srh.t.json               |  11 +
 tests/py/ip6/srh.t.json.output        |   1 +
 tests/py/ip6/tcpopt.t.json            |  26 ++
 tests/py/ip6/tcpopt.t.json.output     |   1 +
 tests/py/ip6/vmap.t.json              | 252 +++++++--------
 tests/py/ip6/vmap.t.json.output       |  78 ++---
 tests/py/nft-test.py                  |   4 +-
 139 files changed, 3358 insertions(+), 2085 deletions(-)

Comments

Pablo Neira Ayuso Aug. 30, 2018, 10:22 a.m. UTC | #1
On Wed, Aug 29, 2018 at 04:23:19PM +0200, Phil Sutter wrote:
> This series addresses feedback gathered during NFWS2018:
> 
> Patches 1 and 2 contain fixes for libnftables-json man page. Patches 3
> to 8 change objects and property names for better extensibility and
> readability. Finally, patch 9 adds a special object containing meta info
> to all JSON output.

Series applied, thanks Phil.