• John Hurley's avatar
    flow_offload: fix block stats · 9f9dc493
    John Hurley authored
    With the introduction of flow_stats_update(), drivers now update the stats
    fields of the passed tc_cls_flower_offload struct, rather than call
    tcf_exts_stats_update() directly to update the stats of offloaded TC
    flower rules. However, if multiple qdiscs are registered to a TC shared
    block and a flower rule is applied, then, when getting stats for the rule,
    multiple callbacks may be made.
    
    Take this into consideration by modifying flow_stats_update to gather the
    stats from all callbacks. Currently, the values in tc_cls_flower_offload
    only account for the last stats callback in the list.
    
    Fixes: 3b1903ef ("flow_offload: add statistics retrieval infrastructure and use it")
    Signed-off-by: default avatarJohn Hurley <john.hurley@netronome.com>
    Reviewed-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Acked-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9f9dc493
flow_offload.h 5.36 KB