• Pablo Neira Ayuso's avatar
    netfilter: ecache: always set events bits, filter them later · 3db7e93d
    Pablo Neira Ayuso authored
    For the following rule:
    
    iptables -I PREROUTING -t raw -j CT --ctevents assured
    
    The event delivered looks like the following:
    
     [UPDATE] tcp      6 src=192.168.0.2 dst=192.168.1.2 sport=37041 dport=80 src=192.168.1.2 dst=192.168.1.100 sport=80 dport=37041 [ASSURED]
    
    Note that the TCP protocol state is not included. For that reason
    the CT event filtering is not very useful for conntrackd.
    
    To resolve this issue, instead of conditionally setting the CT events
    bits based on the ctmask, we always set them and perform the filtering
    in the late stage, just before the delivery.
    
    Thus, the event delivered looks like the following:
    
     [UPDATE] tcp      6 432000 ESTABLISHED src=192.168.0.2 dst=192.168.1.2 sport=37041 dport=80 src=192.168.1.2 dst=192.168.1.100 sport=80 dport=37041 [ASSURED]
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    3db7e93d
nf_conntrack_ecache.c 6.56 KB