nftables Changelog

What's new in nftables 0.4

Dec 16, 2014
  • It provides access to a lot of new features, including global ruleset operations, improved logging support, masquerading and NAT, redirect support (will need a 3.19 kernel), and a lot of fixes.

New in nftables 0.099 (Jan 21, 2014)

  • nft: scanner: fixed problem with ipv6 address
  • nftables: delete debian/ directory
  • mnl: fix inconsistent name usage in nft_*_nlmsg_build_hdr calls
  • src: fix return code
  • files: replace interpreter during installation
  • rule: add flag to display rule handle as comment
  • doc: fix inversion of operator and object.
  • rule: list elements in set in any case
  • cli: add quit command
  • cli: reset terminal when CTRL+d is pressed
  • rule: display hook info
  • src: fix counter restoration
  • src: Add support for insertion inside rule list
  • src: Add icmpv6 support
  • nat: add mandatory family attribute
  • Suppress non working examples.
  • Update chain creation format.
  • display family in table listing
  • netlink: fix IPv6 prefix computation
  • src: Add support for IPv6 NAT
  • mnl: fix typo in comment
  • netlink: suppress useless variable
  • netlink: only flush asked table/chain
  • netlink: fix nft flush operation
  • expression: fix indent
  • jump: fix logic in netlink linearize
  • verdict: fix delinearize in case of jump
  • netlink: only display wanted chain in listing
  • log: s/threshold/queue-threshold/
  • meta: iif/oifname should be host byte order
  • statement: avoid huge rodata array
  • nftables: drop hard coded install using root user owner and group
  • expression: fix output of verdict maps
  • tests: fix test, commands now comes before the family and table name
  • rule: allow to list of existing tables
  • rule: fix nft list chain
  • netlink: return error if chain not found
  • main: fix error checking in nft_parse
  • tests: family-ipv4: update test to use current syntax
  • tests: expr-ct: update examples to use the current syntax
  • src: fix crash if nft -f wrong_file is passed
  • tests: family-ipv6: update to use the current syntax
  • payload: accept ethertype in hexadecimal
  • tests: family-bridge: update to use the current syntax
  • tests: feat-adjancent-load-merging: remove ip protocol from rule
  • meta: accept uid/gid in numerical
  • tests: expr-meta: update examples to use the current syntax
  • tests: obj-chain: update examples to use the current syntax
  • tests: dictionary: update examples to use the current syntax
  • tests: set: update examples to use the current syntax
  • tests: obj-table: update examples to use the current syntax
  • cli: complete basic functionality of the interactive mode
  • datatype: concat expression only releases dynamically allocated datatype
  • evaluate: fix range and comparison evaluation
  • src: get it sync with current include/linux/netfilter/nf_tables.h
  • rule: family field in struct handle is unsigned
  • meta: use if_nametoindex and if_indextoname
  • meta: replace rtnl_tc_handle2str and rtnl_tc_str2handle
  • src: use libnftables
  • netlink: fix network address prefix
  • datatype: fix table listing if name resolution is not available
  • mnl: use nft_*_list_add_tail
  • datatype: fix crash if wrong integer type is passed
  • log: convert group and qthreshold to use u16
  • datatype: fix wrong endianess in numeric ports
  • src: allow to specify the base chain type
  • meta: fix output display of meta length
  • datatype: fix mark parsing if string is used
  • payload: fix endianess of ARP operation code
  • netlink: use uint32_t instead of size_t for attribute length
  • src: add rule batching support
  • netlink_linearize: finish reject support
  • payload: fix ethernet type protocol matching
  • parser: fix warning on deprecated directive in bison
  • build: relax compilation not to break on warning
  • datatype: fix missing nul-terminated string in string_type_print
  • netlink: improve rule deletion per chain
  • meta: fix endianness in UID/GID
  • meta: relax restriction on UID/GID parsing
  • src: fix rule flushing atomically
  • mnl: don't set NLM_F_ACK flag in mnl_nft_rule_batch_[add|del]
  • mnl: print netlink message if if --debug=netlink in mnl_talk()
  • netlink: fix dictionary feature with data mappings
  • netlink: fix wrong type in attributes
  • scanner: rename address selector from 'eth' to 'ether'
  • scanner: add aliases to symbols for easier interaction with most shells
  • segtree: add new segtree debugging option
  • netlink: use stdout for debugging
  • parser: fix parsing of ethernet protocol types
  • payload: fix crash when wrong ethernet protocol type is used
  • payload: fix inconsistency in ethertype output
  • src: add new --debug=mnl option to enable libmnl debugging
  • src: use ':' instead of '=>' in dictionaries
  • datatype: add time type parser and adapt output
  • mnl: fix chain type autoloading
  • use new libnftnl library name
  • build: work around docbook2x-man inability to specify output file
  • templates: add IPv6 raw table template
  • netlink: wrap libnl object dumping in #ifdef DEBUG
  • lexer: fix some whitespace errors
  • Fix use of reserved names in header sandwich
  • kill obsolete TODO item
  • Allow newlines in sets and maps
  • Allow newlines in regular maps
  • build: remove double subdir in build output
  • build: fix installation when docs are not built
  • Add installation instructions
  • parser: fix common_block usage in chain and table blocks
  • parser: consistently use $@ for location of entire grouping
  • Add support for scoping and symbol binding
  • Add support for user-defined symbolic constants
  • Add more notes to INSTALL
  • expr: add support for cloning expressions
  • Fix multiple references to the same user defined symbolic expression
  • Release scopes during cleanup
  • Fix some memory leaks
  • netlink_linearize: remove two debugging printfs
  • ct: resync netlink header and properly add ct l3protocol support
  • netlink: add helper function for socket callback modification
  • netlink: consistent naming fixes
  • netlink: use libnl OBJ_CAST macro
  • netlink: move data related functions to netlink.c
  • datatype: maintain table of all datatypes and add registration/lookup function
  • datatype: add/move size and byte order information into data types
  • expressions: kill seperate sym_type datatype for symbols
  • add support for new set API and standalone sets
  • debug: allow runtime control of debugging output
  • netlink: fix bitmask element reconstruction
  • netlink: dump all chains when listing rules
  • netlink: fix binop RHS byteorder
  • payload: add DCCP packet type definitions
  • payload: fix two datatypes
  • parser: support bison >= 2.4
  • build: add 'archive' target
  • build: fix endless recursion with SUBDIRS=...
  • debug: properly parse debug levels
  • netlink: fix byteorder of RHS of relational meta expression
  • utils: fix invalid assertion in xrealloc()
  • netlink: fix creation of base chains with hooknum and priority 0
  • payload: fix crash with uncombinable protocols
  • netlink: fix nat stmt linearization/parsing
  • nat: validate protocol context when performing transport protocol mappings
  • netlink: add debugging for missing objects
  • don't use internal_location for files specified on command line
  • datatype: reject incompletely parsed integers in integer_type_parse()
  • add bridge filter table definitions
  • parser: fix parsing protocol names for protocols which are also keywords
  • evaluate: reintroduce type chekcs for relational expressions
  • segtree: fix segtree to properly support mappings
  • tests: add verdict map test
  • seqtree: update mapping data when keeping the base
  • payload: kill redundant payload protocol expressions during netlink postprocessing
  • expression: fix constant expression splicing
  • rules: change rule handle to 64 bit
  • netlink: fix endless loop on 64 bit when parsing binops
  • sets: fix sets using intervals
  • rule: reenable adjacent payload merging
  • cmd: fix handle use after free for implicit set declarations
  • tests: add loop detection tests
  • netlink: fix query requests
  • chains: add chain rename support
  • rule: add rule insertion (prepend) support
  • chains: add rename testcases
  • netlink_delinearize: don't reset source register after read
  • expr: kill EXPR_F_PRIMARY
  • datatype: parse/print in all basetypes subsequently
  • types: add ethernet address type
  • expr: fix concat expression type propagation
  • cmd/netlink: make sure we always have a location in netlink operations
  • mark: fix numeric mark value parsing
  • expr: catch missing and excess elements in concatenations
  • parser: include leading '.' in concat subexpression location
  • parser: fix size of internet protocol expressions matching keywords
  • nftables: fix supression of "permission denied" errors
  • nftables: shorten "could not process rule in batch" message
  • erec: fix error markup for errors starting at column 0
  • datatype: revert "fix crash if wrong integer type is passed"
  • meta: fix crash when parsing unresolvable mark values
  • parser: replace "vmap" keyword by "map"
  • Revert "parser: replace "vmap" keyword by "map""
  • expr: remove secmark from ct and meta expression
  • meta: don't require "meta" keyword for a subset of meta expressions
  • meta: fix mismerge
  • payload: fix name of eth_proto
  • expr: relational: don't surpress '==' for LHS binops in output
  • parser: fix compilation breakage
  • segtree: only use prefix expressions for ranges for selected datatypes
  • segtree: fix decomposition of unclosed intervals
  • build: fix recursive parser.h inclusion
  • set: make set flags output parsable
  • set: make set initializer parsable
  • datatype: validate port number in inet_service_type_parse
  • datatype: allow protocols by number in inet_protocol_type_parse
  • nftables: add additional --numeric level
  • src: operational limit match
  • parser: segfault in top scope define
  • examples: adjust new chain type syntax in sets_and_maps file
  • rule: missing set cleanup in do_command_list
  • parser: add 'delete map' syntax
  • help: fix of the -I option in help display
  • netlink: Use the right datatype for verdict
  • evaluate: Remove useless variable in expr_evaluate_bitwise()
  • erec: Handle returned value properly in erec_print
  • expression: Differentiate expr among anonymous structures in struct expr
  • src: Fix base chain printing
  • INSTALL: Update dependency list and repository URLs
  • src: Wrap netfilter hooks around human readable strings
  • src: Add priority keyword on base chain description
  • tests: Update bate chain creation according to latest syntax changes
  • src: Better error reporting if chain type is invalid
  • include: cache a copy of nfnetlink.h
  • debug: include verbose message in all BUG statements