mbox series

[nft,00/14] JSON: Some minor schema changes

Message ID 20180528134819.13625-1-phil@nwl.cc
Headers show
Series JSON: Some minor schema changes | expand

Message

Phil Sutter May 28, 2018, 1:48 p.m. UTC
While writing JSON schema documentation, a number of ugly/broken bits
were identified which this series addresses in patches 1-7.

Patches 8-11 contain some fixes and improvements to parser_json.c which
don't change the schema.

Patches 12 and 13 contain fixes for JSON part of tests/py, identified
while testing the above.

In patch 14, there is a change which affects standard syntax: Printing
of the default meter size is removed - if the user didn't specify it, he
will not expect it as part of the output. If he did, it not being part
of the output indicates that it wasn't necessary, like with other
redundant expressions which are optimized away.

Phil Sutter (14):
  objref: Use "ct helper" for NFT_OBJECT_CT_HELPER
  JSON: Use "type" for CT helper object
  JSON: Disallow non-array concat expression values
  JSON: Sort out rule position and handles in general
  JSON: Review meter statement support
  JSON: Review set elem expressions
  JSON: Fix parsing and printing of limit objects
  JSON: Simplify tcp option expression parsing a bit
  JSON: Improve prefix expression parsing error message a bit
  JSON: Fix parsing of meter statement key
  JSON: Simplify immediate value parsing
  tests/py: Adjust JSON for changes in any/ct.t
  tests/py: Add missing JSON equivalent for inet/sets.t
  meter: Don't print default size value

 include/statement.h                 |   2 +
 src/json.c                          |  92 +++++++-------
 src/parser_bison.y                  |   1 -
 src/parser_json.c                   | 183 +++++++++++++---------------
 src/statement.c                     |  12 +-
 tests/py/any/ct.t.json              |  39 +++++-
 tests/py/any/ct.t.json.output       |  59 +++++++++
 tests/py/inet/sets.t.json           |  37 ++++++
 tests/py/ip/flowtable.t             |   2 +-
 tests/py/ip/flowtable.t.json        |   5 +-
 tests/py/ip/flowtable.t.json.output |  23 ++++
 tests/py/ip/flowtable.t.payload     |   4 +-
 tests/py/ip/objects.t.json          |   4 +-
 tests/py/ip6/flowtable.t            |   4 +-
 tests/py/ip6/flowtable.t.json       |   4 +-
 tests/py/nft-test.py                |  10 +-
 16 files changed, 305 insertions(+), 176 deletions(-)
 create mode 100644 tests/py/inet/sets.t.json
 create mode 100644 tests/py/ip/flowtable.t.json.output