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 adding 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 the rest of actions will be updated in the follow-up patches. v2: Restructured patches to make them bisectable. Roman Mashak (4): net sched actions: update Add/Delete action API with new argument 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 include/net/act_api.h | 4 +++- net/sched/act_api.c | 63 ++++++++++++++++++++++++++++++++++++++++++++------- net/sched/act_gact.c | 14 ++++++++++++ net/sched/cls_api.c | 3 ++- 4 files changed, 74 insertions(+), 10 deletions(-) -- 2.7.4