• Holger Eitzenberger's avatar
    netfilter: ctnetlink: add callbacks to the per-proto nlattrs · d0dba725
    Holger Eitzenberger authored
    There is added a single callback for the l3 proto helper.  The two
    callbacks for the l4 protos are necessary because of the general
    structure of a ctnetlink event, which is in short:
    
     CTA_TUPLE_ORIG
       <l3/l4-proto-attributes>
     CTA_TUPLE_REPLY
       <l3/l4-proto-attributes>
     CTA_ID
     ...
     CTA_PROTOINFO
       <l4-proto-attributes>
     CTA_TUPLE_MASTER
       <l3/l4-proto-attributes>
    
    Therefore the formular is
    
     size := sizeof(generic-nlas) + 3 * sizeof(tuple_nlas) + sizeof(protoinfo_nlas)
    
    Some of the NLAs are optional, e. g. CTA_TUPLE_MASTER, which is only
    set if it's an expected connection.  But the number of optional NLAs is
    small enough to prevent netlink_trim() from reallocating if calculated
    properly.
    Signed-off-by: default avatarHolger Eitzenberger <holger@eitzenberger.org>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    d0dba725
nf_conntrack_proto.c 9.19 KB