• Pablo Neira Ayuso's avatar
    netfilter: rework user-space expectation helper support · 3d058d7b
    Pablo Neira Ayuso authored
    This partially reworks bc01befd
    which added userspace expectation support.
    
    This patch removes the nf_ct_userspace_expect_list since now we
    force to use the new iptables CT target feature to add the helper
    extension for conntracks that have attached expectations from
    userspace.
    
    A new version of the proof-of-concept code to implement userspace
    helpers from userspace is available at:
    
    http://people.netfilter.org/pablo/userspace-conntrack-helpers/nf-ftp-helper-POC.tar.bz2
    
    This patch also modifies the CT target to allow to set the
    conntrack's userspace helper status flags. This flag is used
    to tell the conntrack system to explicitly allocate the helper
    extension.
    
    This helper extension is useful to link the userspace expectations
    with the master conntrack that is being tracked from one userspace
    helper.
    
    This feature fixes a problem in the current approach of the
    userspace helper support. Basically, if the master conntrack that
    has got a userspace expectation vanishes, the expectations point to
    one invalid memory address. Thus, triggering an oops in the
    expectation deletion event path.
    
    I decided not to add a new revision of the CT target because
    I only needed to add a new flag for it. I'll document in this
    issue in the iptables manpage. I have also changed the return
    value from EINVAL to EOPNOTSUPP if one flag not supported is
    specified. Thus, in the future adding new features that only
    require a new flag can be added without a new revision.
    
    There is no official code using this in userspace (apart from
    the proof-of-concept) that uses this infrastructure but there
    will be some by beginning 2012.
    Reported-by: default avatarSam Roberts <vieuxtech@gmail.com>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    3d058d7b
nf_conntrack_helper.c 7.58 KB