size calculation wasted cpu time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In /net/netfilter/nfnetlink_queue.c every call of nfqnl_build_packet_message()
make series of call nla_total_size() for 'size' calculations.
I think 'size' is constant value for kernel build and may be define static
variable for this ?

Thank you.

static struct sk_buff *
nfqnl_build_packet_message(struct nfqnl_instance *queue,
                           struct nf_queue_entry *entry)
{
        sk_buff_data_t old_tail;
        size_t size;
        size_t data_len = 0;
        struct sk_buff *skb;
        struct nfqnl_msg_packet_hdr pmsg;
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
        struct sk_buff *entskb = entry->skb;
        struct net_device *indev;
        struct net_device *outdev;

        size =    NLMSG_SPACE(sizeof(struct nfgenmsg))
                + nla_total_size(sizeof(struct nfqnl_msg_packet_hdr))
                + nla_total_size(sizeof(u_int32_t))     /* ifindex */
                + nla_total_size(sizeof(u_int32_t))     /* ifindex */
#ifdef CONFIG_BRIDGE_NETFILTER
                + nla_total_size(sizeof(u_int32_t))     /* ifindex */
                + nla_total_size(sizeof(u_int32_t))     /* ifindex */
#endif
                + nla_total_size(sizeof(u_int32_t))     /* mark */
                + nla_total_size(sizeof(struct nfqnl_msg_packet_hw))
                + nla_total_size(sizeof(struct nfqnl_msg_packet_timestamp));



--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux