On 09/22/2017 04:21 PM, Andrew Lunn wrote: > On Fri, Sep 22, 2017 at 11:36:59AM +0300, Yotam Gigi wrote: >> On 09/21/2017 06:26 PM, Andrew Lunn wrote: >>>> +static void mlxsw_sp_mr_route_stats_update(struct mlxsw_sp *mlxsw_sp, >>>> + struct mlxsw_sp_mr_route *mr_route) >>>> +{ >>>> + struct mlxsw_sp_mr *mr = mlxsw_sp->mr; >>>> + u64 packets, bytes; >>>> + >>>> + if (mr_route->route_action == MLXSW_SP_MR_ROUTE_ACTION_TRAP) >>>> + return; >>>> + >>>> + mr->mr_ops->route_stats(mlxsw_sp, mr_route->route_priv, &packets, >>>> + &bytes); >>>> + >>>> + switch (mr_route->mr_table->proto) { >>>> + case MLXSW_SP_L3_PROTO_IPV4: >>>> + mr_route->mfc4->mfc_un.res.pkt = packets; >>>> + mr_route->mfc4->mfc_un.res.bytes = bytes; >>> What about wrong_if and lastuse? > Hi Yotam > >> wronf_if is updated by ipmr as it is trapped to the CPU. > Great. > >> We did not address lastuse currently, though it can be easily >> addressed here. > Please do. I've written multicast routing daemons, where i use it to > flush out MFCs which are no longer in use. Having it always 0 is going > to break daemons.
I will. Thanks for the feedback! > >>> Is an mfc with iif on the host, not the switch, not offloaded? >> >> I am not sure I followed. What do you mean MFC with iif on the host? you mean >> MFC with iif that is an external NIC which is not part of the spectrum ASIC? > Yes. We probably have different perspectives on the world. To > Mellanox, everything is a switch in a box. In the DSA world, we tend > to think of having a general purpose machine which also has a switch > connected. Think of a wireless access point, set top box, passenger > entertainment system. We have applications on the general purpose > computer, we have wifi interfaces, cable modems, etc. Think about all > the different packages in LEDE. We might have a multicast video > stream, coming from the cable modem being sent over ports of the > switch to clients. > > So when i look at these patches, i try to make sure the general use > cases works, not just the plain boring Ethernet switch box use cases > :-) So when doing it, we did think about multi-ASIC situations, so I think it should fit :) > >> in this case, the route will not be offloaded and all traffic will >> pass in slowpath. > O.K. I was just thinking if those counters need to be +=, not =. But > either the iif is on the host, or it is in the switch. It cannot be > both. So = is O.K. > > Thanks > Andrew