From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-f67.google.com ([209.85.214.67]:34113 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1034000AbeCASpt (ORCPT ); Thu, 1 Mar 2018 13:45:49 -0500 Received: by mail-it0-f67.google.com with SMTP id n128so9030532ith.1 for ; Thu, 01 Mar 2018 10:45:48 -0800 (PST) From: Roman Mashak To: davem@davemloft.net Cc: netdev@vger.kernel.org, jhs@mojatatu.com, jiri@resnulli.us, xiyou.wangcong@gmail.com, Roman Mashak Subject: [PATCH 0/5] Fix event generation for actions batch Add/Delete mode Date: Thu, 1 Mar 2018 13:45:26 -0500 Message-Id: <1519929931-1119-1-git-send-email-mrv@mojatatu.com> Sender: netdev-owner@vger.kernel.org List-ID: When adding or deleting a batch of entries, the kernel sends upto TCA_ACT_MAX_PRIO entries in an event to user space. However it does not consider that the action sizes may vary and require different skb sizes. For example : % cat tc-batch.sh #!/bin/bash TC="sudo /mnt/iproute2.git/tc/tc" $TC actions flush action gact for i in `seq 1 $1`; do cmd="action pass index $i " args=$args$cmd done $TC actions add $args % % ./tc-batch.sh 32 Error: Failed to fill netlink attributes while deleting TC action. We have an error talking to the kernel % This patchset introduces new callback in tc_action_ops, which calculates the action size, and passes size to tcf_add_notify()/tcf_del_notify(). The patch fixes act_gact and act_police, and the rest of actions will be updated in the follow-up patches. Roman Mashak (5): net sched actions: routines to calculate common TLVs size net sched actions: add new tc_action_ops callback net sched actions: calculate add/delete event message size. net sched actions: implement get_fill_size routine in act_gact net sched actions: implement get_fill_size routine in act_police include/net/act_api.h | 6 ++++- net/sched/act_api.c | 62 +++++++++++++++++++++++++++++++++++++++++++------- net/sched/act_gact.c | 18 +++++++++++++++ net/sched/act_police.c | 9 ++++++++ net/sched/cls_api.c | 3 ++- 5 files changed, 88 insertions(+), 10 deletions(-) -- 2.7.4