On 5 Jun 2023, at 8:25, Adrian Moreno wrote:
> On 6/5/23 08:22, Adrian Moreno wrote: >> >> On 6/2/23 16:13, Adrian Moreno wrote: >>> There are currently two issues that limit our ability to configure QoS >>> on certain cards in linux: >>> >>> 1) Firstly, the maximum link speed (which is used as maximum rate in >>> some tc classes), is obtained from netdev feature bits. >>> This is quite problematic because netdev feature bits do not keep up >>> with the new feature bits being added to ethtool. Therefore, cards whose >>> speed is not supported by OpenFlow currently report an incorrect speed >>> and this can affect QoS configuration. >>> >>> This series addresses this problem by adding a new netdev function that >>> gets the actual link speed so we don't rely on feature bits which are >>> difficult to keep in sync. >>> >>> 2) The tc layer uses 32bit Bps rates which means we cannot express rates >>> higher than ~34Gbps. >>> >>> This series addresses this problem using 64-bit tc attributes when >>> needed. >>> >>> --- >>> v0 -> v1 >>> - Fix style issues. >>> - Add a test that checks we can expose a 50Gbps speed using a tap >>> interface. >>> - Add an implementation of get_speed for netdev-bsd. >>> - Expose both HAVE_TCA_HTB_RATE64 and HAVE_TCA_POLICE_PKTRATE64 as AC >>> variables and skip tests if the running kernel does not support them. >>> >>> Adrian Moreno (7): >>> netdev: add netdev_get_speed() to nedev API >>> netdev-linux: use speed as max rate in tc classes >>> netdev-linux: use 64-bit rtab tables >>> netdev-linux: use 64-bit rates in htb tc classes >>> netdev-linux: remove tc_matchall_fill_police >>> netdev-linux: refactor nl_msg_put_act_police >>> netdev-linux: support 64-bit rates in tc policing >>> >>> acinclude.m4 | 20 ++++ >>> include/openvswitch/netdev.h | 1 + >>> lib/dpif.h | 4 +- >>> lib/netdev-bsd.c | 21 ++++ >>> lib/netdev-dpdk.c | 52 +++++++++ >>> lib/netdev-linux-private.h | 1 + >>> lib/netdev-linux.c | 210 +++++++++++++++++++++-------------- >>> lib/netdev-linux.h | 2 +- >>> lib/netdev-provider.h | 9 ++ >>> lib/netdev.c | 23 ++++ >>> lib/tc.c | 2 + >>> ofproto/ofproto-dpif-sflow.c | 11 +- >>> ofproto/ofproto.c | 6 +- >>> tests/atlocal.in | 5 + >>> tests/system-interface.at | 30 +++++ >>> tests/system-traffic.at | 49 ++++++++ >>> vswitchd/bridge.c | 30 +++-- >>> 17 files changed, 373 insertions(+), 103 deletions(-) >>> >> >> Sorry, I forgot to add v1 to this series. I'll re-send with the right >> version. >> > > Ok, I was just noticed only the cover letter is unversioned. Technically this is v2, as without any version it’s v1 :) I’ll start reviewing this version as is. //Eelco _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
