• P
    netlink: add NLM_F_NONREC flag for deletion requests · 2335ba70
    Pablo Neira Ayuso 提交于
    In the last NFWS in Faro, Portugal, we discussed that netlink is lacking
    the semantics to request non recursive deletions, ie. do not delete an
    object iff it has child objects that hang from this parent object that
    the user requests to be deleted.
    
    We need this new flag to solve a problem for the iptables-compat
    backward compatibility utility, that runs iptables commands using the
    existing nf_tables netlink interface. Specifically, custom chains in
    iptables cannot be deleted if there are rules in it, however, nf_tables
    allows to remove any chain that is populated with content. To sort out
    this asymmetry, iptables-compat userspace sets this new NLM_F_NONREC
    flag to obtain the same semantics that iptables provides.
    
    This new flag should only be used for deletion requests. Note this new
    flag value overlaps with the existing:
    
    * NLM_F_ROOT for get requests.
    * NLM_F_REPLACE for new requests.
    
    However, those flags should not ever be used in deletion requests.
    Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
    2335ba70
netlink.h 7.6 KB