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
TC="sudo /mnt/iproute2.git/tc/tc"

$TC actions flush action mirred
for i in `seq 1 $1`;
do
   cmd="action mirred egress redirect dev lo index $i "
   args=$args$cmd
done
$TC actions add $args
%
% ./tc-batch.sh 32
Error: Failed to fill netlink attributes while adding TC action.
We have an error talking to the kernel
%

patch 1 adds callback in tc_action_ops of mirred action, which calculates
the action size, and passes size to tcf_add_notify()/tcf_del_notify().

patch 2 updates the TDC test suite with relevant test cases.

Roman Mashak (2):
  net sched: update mirred action for batched events operations
  tc-testing: updated mirred action tests with batch create/delete

 net/sched/act_mirred.c                             |  6 ++
 .../tc-testing/tc-tests/actions/mirred.json        | 94 ++++++++++++++++++++++
 2 files changed, 100 insertions(+)

-- 
2.7.4

Reply via email to