Alvaro Neira Ayuso (5):
      table: add function to export tables in JSON format
      examples: nft-table-get: export in JSON format
      chain: add function to export tables in JSON format
      examples: nft-chain-get: export in JSON format
      rule: json: fix returned string length

Ana Rey (5):
      expr: log: fix missing \0 when sending log prefix to kernel
      expr: target: fix wrong info length in nft_rule_expr_target_parse
      expr: log: fix wrong attribute type in nft_rule_expr_log_parse
      table/chain: add u8 setter and getter for family values
      tests: add unit tests for libnftables

Arturo Borrero (55):
      chain: delete useless castings
      expr: bitwise: xml: fix wrong casting
      nat: xml: fix wrong offset in snprintf
      rule: xml: delete trailing space
      examples: unset chain & rule handle
      expr: xml: don't print target and match info
      byteorder: xml: op as string
      src: xml: convert family values to string
      src: xml: consolidate parsing of data_reg via nft_mxml_data_reg_parse
      set: add xml output
      bitwise: xml: export len node
      src: add nft_*_list_is_empty() functions
      src: xml: consolidate common XML code via nft_mxml_num_parse
      src: utils: add verdict2str and use it
      immediate: xml: fix name inconsistency
      tests: xml: add realistic XML tests files
      set: xml: change XML attributes to nodes.
      set: add XML parsing
      xml: expr: limit: fix wrong assignation when parsing
      tests: xml: reorder XML elements in sets
      chain: xml: delete <use> node
      nat: xml: fix wrong node name in snprintf
      utils: fix error path for nft_strtoi
      rule: xml/json: support rule position attribute
      chain: xml: fix parsing of optional attributes
      set: xml: fix key_type parsing
      set_elem: xml: avoid code duplication
      src: snprintf: fix buffer lengths
      src: add low-level ruleset API
      test: xml: fix malformed ruleset testfile
      tests: update to fit latest limit changes
      tests: xml: fix truncated ruleset testfile
      ruleset: refactorize json/xml tagging
      src: add fprintf API functions
      test: return EXIT_FAILURE if some error was found
      test: fix memleak in XML testing
      test: report errors building XML tree
      test: report compilation without support
      tests: fix reference to undefined symbol
      tests: extend test-script.sh to run XML and JSON tests
      tests: expr-target: fix deprecation warning
      mxml: add error reference of the top node
      set_elem: add json parsing to API
      src: rework and generalize the build/parse system
      src: add interface to parse from file
      tests: nft-parsing-test: use nft_ruleset_parse_file()
      set: xml: data_type/data_len are optional
      mxml: add optional/mandatory flag to nft_mxml_reg_parse
      lookup: xml: conditional output of dreg
      tests: xml: delete comments
      expr: ct: fix missing NFT_CT_L3PROTOCOL in ctkey2str_array
      expr: ct: direction is optional
      utils: fix nft_str2verdict return value
      data_reg: fix verdict format approach
      ct: use a string with 'dir' attribute

Arturo Borrero Gonzalez (56):
      src: add XML output support
      examples: add XML output for table/chain/rule
      expr: match: Delete unused includes
      src: change XML output format to use element instead of attributes
      expr: match: Fix a typo
      src: allow to get and to set NFT_*_ATTR_FAMILY
      expr: basic support for printing nft_data_reg in XML format
      src: rule: fix compat XML output
      rule: fix snprintf XML output offset for rule.
      src: remove trailing newlines, tabs and spaces from XML format
      src: delete exporting internal flags in XML
      src: add support for XML parsing
      examples: XML parsing examples
      rule: fix table flag not being set at XML parsing
      data_reg: Delete trailing space in snprintf_xml
      data_reg: remove conditional XML printing if parsing is disabled
      data_reg: xml: fix using bad temp variable
      data_reg: xml: delete unreachable code
      rule: fix bad offset returned by _snprintf
      src: xml: add versioning
      src: add nft_*_unset functions
      data_reg: xml: delete unreachable code in _veredict_xml_parse()
      nat: xml: fix crash during parsing if non-mandatory element is not present
      rule: xml: conditional display of compat info
      bitwise: xml: mask and xor use same number of data registers
      expr: xml: registers must be <= NFT_REG_MAX
      chain: add hooknum2str
      nat: xml: change nat types string to dnat/snat
      nat: xml: fix node names for sreg_addr_{min|max}
      ct: xml: add extra dir check
      ct: xml: use key names instead of numbers
      exthdr: xml: fix mandatory elements
      chain: xml: use string for policy
      data_reg: xml: fix len node, it should show byte length
      data_reg: xml: display register in big endian
      target&match: xml: don't print rev number
      payload: xml: use string for base attribute
      exthdr: xml: use string for type node
      meta: xml: use string to represent key attribute
      nat: snprintf: fix buffer offset
      nat: xml: rename node type to nat_type
      exthdr: xml: rename type node to exthdr_type
      test: add testbench for XML
      expr: ct: fix setting of NFT_EXPR_CT_DIR
      chain: fix nft_str2hooknum return value
      src: xml: table/chain delete properties
      chain: fix compilation warning due to unused nft_str2hooknum()
      chain: Use nft_str2hooknum() in the XML parsing code.
      src: xml: use nodes instead of attributes
      set: xml: use nft_mxml_family_parse
      src: xml: delete unneeded XML prefixes
      src: constify nft_*_parse input data
      src: xml: add parsing optional/mandatory flag
      src: xml: avoid unecessary tree to text to tree conversions
      src: xml: refactor XML parsing code
      build: fix build error

Douglas Freed (1):
      build: properly handle --without-{xml,json}-parsing

Eric Leblond (7):
      examples: nft-events: add newline to output
      expr: immediate: fix display of dreg expression
      expr: payload: fix incorrect length and base in default output
      rule: add support for position attribute
      examples: add insert rule example
      rule: display position in default printf
      src: constify parameter of nft_*_is_set

Florian Westphal (2):
      expr: log: use real length when fetching attributes
      expr: limit: s/seconds/second/

Giuseppe Longo (1):
      src: improve default text output

Jan Engelhardt (2):
      build: resolve automake 1.12 warning
      build: resolve build errors in dependent programs

Pablo Neira Ayuso (131):
      initial version of libnftables
      examples: add nft-compat-get
      examples: add nft-events
      expr: add bitwise
      rule: use 64-bits handle instead of 16-bits
      chain: add support for chain types
      table: use internal flags for attribute
      table: support NFTA_TABLE_FLAGS
      table: add nft_table_attr_set_u32 and nft_table_attr_get_u32
      examples: table: add example of dormant tables
      set: add initial support
      chain: support Patrick's chain rename approach
      include: update internal copy of headers
      expr: add type and flags to snprintf interface
      chain: add nft_chain_list_del
      chain: fix setting packet statistics
      rule: add support for rule flags
      rule: add protocol and flags support for xtables over nftables
      set: complete support
      set: add support to add elements to sets
      expr: add lookup expression for set-based lookups
      examples: fix rule addition
      rule: fix wrong symbol export
      expr: lookup: fix missing registration
      src: constify nft_*_attr_set and nft_*_attr_set_str
      src: remove trailing \n from all nft_*_snprintf functions
      table: add nft_table_attr_[set|table]_str
      chain: add nft_chain_attr_set_str
      examples: nft-rule-add: remove unexistent libnftables/payload.h include
      examples: nft-rule-add: fix compilation warning
      src: fix nft_*_unset function attribute that don't release data
      set_elem: add NFT_SET_ELEM_ATTR_DATA to set data for mapping
      expr: add log expression
      build: fix missing interlibrary dependency
      expr: add exthdr
      expr: add ct
      expr: add byteorder
      expr: add limit
      src: add nft_*_list_foreach
      src: add nft_*_attr_is_set
      set: add NFT_SET_ATTR_FAMILY
      src: constify first parameter of all nft_*_get
      include: add stdbool.h to libnftables/expr.h
      chain: fix nft_chain_attr_set_str
      src: set NFT_*_ATTR_FAMILY in nft_*_parse function
      set_elem: fix wrong flags set for NFT_SET_ELEM_ATTR_FLAGS
      set: fix nft_set_attr_get with NFT_SET_ATTR_KEY_FLAGS
      set: add missing set/unset support for NFT_SET_ATTR_DATA_[TYPE|LEN]
      set_elem: fix wrong flags setting in nft_set_elems_parse2
      set_elem: fix nft_set_elem_attr_get with NFT_SET_ELEM_ATTR_CHAIN
      expr: add nft_rule_expr_snprintf
      set_elem: add nft_set_elem_attr_set_str
      tests: remove several wrong XML nodes in tests
      tests: nft-parsing-test: restore default terminal color after test
      src: consolidate XML parsing of expressions via nft_mxml_expr_parse
      src: consolidate XML parsing of expressions via nft_mxml_reg_parse
      src: xml: fix compilation without XML parsing enabled
      src: expr: data_reg: fix printing data register content
      set: fix printing of key and data registers
      expr: payload: fix printing of base
      examples: remove LIBXML_LIBS from LDADD
      examples: nft-{table,chain,rule}-xml-add: fix missing NLM_F_CREATE
      expr: use __attribute__((constructor)) to register expression
      expr: add nft_expr_data to replace explicit casting to obtain expression data
      include: update include/linux/netfilter/nf_tables.h
      expr: limit: fix getter
      src: add nft_*_list_add_tail
      utils: ARP family is number 3
      examples: add arp support
      examples: nft-chain-get: allow to list chain from all families
      examples: nft-chain-add: allow to create custom chains
      src: simplify getter logic
      src: remove default case from nft_*_attr_unset
      expr: refactor nft_rule_expr_get
      expr: counter: use nft_mxml_num_parse
      expr: cmp: cmpdata is mandatory node
      src: xml: consolidate common XML code via nft_mxml_str_parse
      expr: payload: use nft_mxml_num_parse
      expr: ct: use nft_mxml_str_parse
      mxml: nft_mxml_str_parse returns copy of the string
      expr: don't override errno value if nft_mxml_num_parse is used
      utils: nft_str2family sets errno
      table: json: fix returned errno value while parsing
      src: remove version from XML and JSON representations
      src: add xfree and use it
      src: fully constify nft_*_get functions
      src: xml: consolidate error path in table and chain objects
      set_elem: constify nft_set_elem_attr_get_str
      rule: constify char * fields
      src: remove useless casting
      src: xml: cleanup set element parsing
      expr: payload: fix missing base setting in XML parser
      tests: xml: remove \t and \n from all the files
      tests: remove superfluous if checking in test_json
      rule: release expressions that are part of rules
      src: xml: don't duplicate string in nft_table_xml_parse
      chain: xml: use nft_mxml_str_parse
      rule: xml: consolidate error path
      expr: log: group and qthreshold are 16 bits long
      expr: add nft_rule_expr_get_u16 and nft_rule_expr_set_u16
      src: json: s/nft_jansson_value_parse_str/nft_jansson_parse_str/g
      src: json: s/nft_jansson_value_parse_val/nft_jansson_parse_val/g
      src: json: s/nft_jansson_value_parse_reg/nft_jansson_parse_reg/g
      build: display configuration after ./configure
      examples: nft-{chain,rule,table}-get allows unspec family
      chain: use human readable netfilter hook
      src: add nft_*_list_del
      rule: don't put NFTA_RULE_EXPRESSION into messages
      src: replace size_t by uint32_t in set/get interfaces
      rule: get rid of NFTA_RULE_FLAGS
      rule: json: fix wrong indentation in nft_rule_snprintf_json
      examples: nft-set-get: retrieve all sets per family
      set: json: fix returned string length
      ruleset: fix compilation warning
      set_elem: fix access after free in case of parsing errors
      expr: limit: avoid huge rodata array
      rule: remove NFT_RULE_ATTR_FLAGS
      expr: add reject
      include: fix missing struct nlmsghdr without definition
      expr: fix leak in target and match expressions
      build: fix make distcheck
      expr: match: fix wrong flag setting in nft_rule_expr_match_parse
      expr: log: release prefix
      include: fix possible clash in ifdef namespace
      src: consolidate netlink build header function
      examples: nft-rule-add: use existing batch infrastructure
      expr: fix incorrect data type for several expression object fields
      update COPYING
      expr: meta: statify meta_key2str_array
      expr: ct: fix compilation warning when json/xml support is missing
      rename library to libnftnl

Phil Oester (2):
      expr: limit: operational limit match
      src: fix possible null pointer dereference in nft_*_attr_get_*

Tomasz Bursztyka (12):
      chain: Handle fixed sized name
      chain: Add support for NFTA_CHAIN_NEW_NAME attribute
      expr: Add support for NAT expressions
      rule: Add a function to get rule's family
      git: add a .gitignore file
      build: add an autogen.sh script
      rule: declare nft_rule_list structure at a proper place
      expr: remove non implemented function
      map: fix missing nft_rule_expr_build_payload export
      expr: Fix header inclusion for integer types
      src: Fix a build issue on header inclusion in internal.h
      include: update netlink.h to 3.13

Álvaro Neira Ayuso (49):
      src: support JSON format in chain, rule and expressions
      examples: add JSON support
      set: add json output
      examples: nft-table-get: add json support
      set: json: fix incomplete output
      chain: json: use string to identify policy
      chain: json: fix wrong display of table and family
      table: Add json parser support
      tests: table: test json parsing support
      examples: Add nft-table-json-add
      chain: remove duplicated policy2str
      jansson: Add helper function for building the tree and use it
      table: remove the properties node in Json output
      chain: remove the properties node in Json output
      chain: Add json parser support
      tests: chain: add json parsing support
      examples: Add nft-chain-json-add
      src: expr: missing commas in json output support
      src: expr: missing curly braces in json output support
      src: expr: fix wrong value in the chain field of data_reg
      src: fix display of compat_flag and compat_proto
      expr: ct: optional output in ct
      json: bitwise: add missing node len
      src: json: delete unneeded JSON prefixes
      expr: bytecode: add nft_str2ntoh function
      expr: cmp: add nft_str2cmp function
      expr: nat: add nft_str2nat function
      expr: payload: add nft_str2base function
      example: nft-rule-get: family parameter added
      jansson: Add nft_jansson_family function
      src: expr: use the function base2str in payload
      tests: better parsing validation
      json: fixed some leaks in the json parsing function
      tests: fix memory leaks in jansson test
      rule: Add json parser support
      tests: rule: add json parsing support
      examples: Add nft-rule-json-add
      tests: remove unnecessary variable initialization
      set: Add json parser support
      tests: set: add json parsing support
      examples: Add nft-set-json-add
      rule: use helper function nft_jansson_free_root
      src: json: refactor json parsing to allow tree based navigation
      set: fix compilation warning
      src: json: remove spaces
      tests: json: remove rule flags in ruleset test file
      src: unify parse and output types
      src: rename the parameter tag to node_name in jansson function
      src: new error reporting approach for XML/JSON parsers