• Vladimir Oltean's avatar
    net: mscc: ocelot: establish functions for handling VCAP aux resources · c3d427ea
    Vladimir Oltean authored
    Some VCAP filters utilize resources which are global to the switch, like
    for example VCAP IS2 policers take an index into a global policer pool.
    
    In commit c9a7fe12 ("net: mscc: ocelot: add action of police on
    vcap_is2"), Xiaoliang expressed this by hooking into the low-level
    ocelot_vcap_filter_add_to_block() and ocelot_vcap_block_remove_filter()
    functions, and allocating/freeing the policers from there.
    
    Evaluating the code, there probably isn't a better place, but we'll need
    to do something similar for the mirror ports, and the code will start to
    look even more hacked up than it is right now.
    
    Create two ocelot_vcap_filter_{add,del}_aux_resources() functions to
    contain the madness, and pollute less the body of other functions such
    as ocelot_vcap_filter_add_to_block().
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    c3d427ea
ocelot_vcap.c 42.4 KB