• Cong Wang's avatar
    net_sched: refactor TC action init API · 695176bf
    Cong Wang authored
    TC action ->init() API has 10 parameters, it becomes harder
    to read. Some of them are just boolean and can be replaced
    by flags. Similarly for the internal API tcf_action_init()
    and tcf_exts_validate().
    
    This patch converts them to flags and fold them into
    the upper 16 bits of "flags", whose lower 16 bits are still
    reserved for user-space. More specifically, the following
    kernel flags are introduced:
    
    TCA_ACT_FLAGS_POLICE replace 'name' in a few contexts, to
    distinguish whether it is compatible with policer.
    
    TCA_ACT_FLAGS_BIND replaces 'bind', to indicate whether
    this action is bound to a filter.
    
    TCA_ACT_FLAGS_REPLACE  replaces 'ovr' in most contexts,
    means we are replacing an existing action.
    
    TCA_ACT_FLAGS_NO_RTNL replaces 'rtnl_held' but has the
    opposite meaning, because we still hold RTNL in most
    cases.
    
    The only user-space flag TCA_ACT_FLAGS_NO_PERCPU_STATS is
    untouched and still stored as before.
    
    I have tested this patch with tdc and I do not see any
    failure related to this patch.
    Tested-by: default avatarVlad Buslov <vladbu@nvidia.com>
    Acked-by: Jamal Hadi Salim<jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: default avatarCong Wang <cong.wang@bytedance.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    695176bf
act_ctinfo.c 10.7 KB