Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Ibafaaca4438587284d1e255c764f0701002941e8
|
|
+ Add UDP_CPS, TCP_CPS, UDP_PPS and TCP_PPS suites.
+ Update existing cps traffic profiles.
+ Add missing traffic profiles.
+ UDP:
+ Single burst of 32 packets was confirmed as safe enough for TRex.
+ Maybe 64 could work, but not enough testing for that.
+ Multiple bursts have lead to reduced TRex performance,
as overlaping bursts (from different client instances)
tend to fill up the buffers.
+ TCP:
+ Data size set to 11111 bytes, completely arbitrarily.
+ Results look reasonable, so I have kept that.
- MSS not set at all
- No tested support for frame size other than 64B.
- Frame size does not even factor into TCP profiles.
+ So other frame sizes are skipped in autogen.
+ Update tags in related suites.
- HOSTS_{n} and SRC_USER_{n} should be unified.
- Questionable clarification on difference between IP4BASE and SCALE.
+ Add NAT state resetters to tests that need them.
+ Resetter is called (if set) before each measurement.
+ If ramp-up is detected, resetter is not set.
+ Rename "mult" argument to "multiplier".
+ Abstracted from packets to transactions.
+ Transaction corresponds to profile.
+ TRex multiplier argument sets target rate in transactions per second.
+ The familiar STL traffic:
+ Bidirectional is considered to be 2 packets per transaction.
+ Unidirectional is considered to be 1 packet per transaction.
+ The newer ASTF traffic:
+ 4 subtypes, each has different number of packets per transaction.
+ For max rate computation:
+ Packets in the more numerous direction are considered.
+ Rely on TRex reported traffic duration for ASTF:
+ Use the server side value.
- Client side value is higher by an overhead.
- TRex is not sending traffic during that time.
+ Remove delays from traffic profiles.
- Those delays would increase the reprted traffic time.
+ Support for scale lmited trials.
+ Only for ASTF profiles, each ASTF profile has limited scale.
+ Scale defined in suite variables.
+ For TRex to send all transactions provided duration value is ignored.
+ The appropriate value is computed in TrafficGenerator.
+ An ad-hoc time constant is added to match the TRex client side time overhead.
+ The profile driver receives the computed duration.
+ Measurement for PLRsearch add a sleep if the computed duration is smaller.
+ Alternative argument for search algos if scale is limited.
+ Both need higher timeout to accomodate big scales.
+ MLRsearch can afford fewer phases.
+ Added a parameter to optionally shorten the duration.
+ Use short duration for runtime stats trial and failure stats trial.
+ Use very large keepalive values in udp profiles to avoid ka packets.
+ No polling in ASTF profile driver.
- Polling could eliminate the time overhead value.
+ But polling proved to introduce some loss, affecting the results.
+ Handle duration stretching in ASTF by stopping traffic.
+ The stop has several steps so that:
+ The traffic is really stopped entirely.
+ Late packets do not count (maybe as errors).
+ Stats are preserved to read for results (and cleared afterwards).
+ Several quantities added to ReceiveRateMeasurement:
+ Original target duration is preserved (algos need that).
+ Input estimate (tps) for early search iterations.
+ Output estimate (maybe pps) for MRR output.
+ Strict result (unsent counts as loss) for NDR.
+ Use L2 counters (opackets, ipackets) where possible.
- TRex has trouble processing packets for the L7 ones at high loads.
+ Remove warmup from profile drivers and keywords.
+ Suites should call "Send ramp-up traffic" explicitly if needed.
+ Added parsing for few more counters.
+ Both to use in formulas or just for debug purposes.
- Only 64B cases in autogen, framesize support to be added later.
+ Latency streams during search can be enabled via PERF_USE_LATENCY env var.
+ MLRsearch improvments:
+ Rename argument names to min_rate and max_rate.
+ Use relative receive rate in initial phase.
+ PLRsearch improvements:
+ Careful computation when output (pps) does not match input (tps).
+ Use geometric distribution (instead of Poisson).
+ Helps agains math errors.
+ This should improve estimate stability.
- But in practice big losses still lead to significant jumps.
+ Traffic generator improvements:
+ send_traffic_on_tg now calls the full set_rate_provider_defaults.
+ _send_traffic_on_tg_internal for the logic without provider defaults.
+ As the internal function is re-used by measure() without affecting defaults.
+ Move _parse_traffic_results just before get_measurement_result.
+ As the latter uses fields set bu the former, it is now easier to read.
+ Multiple sources for approximate duration.
+ Tried from more precise to more available.
+ Includes logic for _pps tests (added in later change).
+ Move explicit type conversions to earlier occurences.
+ Profile driver output field uses semicolons to simplify parsing.
+ Performance Robot lib file split to several smaller ones.
+ performance_actions.robot:
+ Hosts Additional Statistics Action For * keywords.
+ performance_display.robot:
+ Hosts keyword for displaying and verifying results.
+ Change test message to use the correct unit (pps or cps).
+ performance_limits.robot renamed to performance_vars.robot
+ Added many keywords, mostly for accessing test variables.
+ Moved variables for Policer into a new keyword there.
+ Some keywords need sophisticated logic.
- Other are basically Get Variable Value.
+ But in future more logic can be added, without editing callers.
+ Documentation for the new keywords acts as a documentation for test variables.
+ performance_utils.robot has the rest.
+ Eliminated arguments if the value is in test variable.
+ Small improvements to documentation.
- Still not enough cleanup with respect to arguments and test variables.
+ Keywords are sorted alphabetically now in each one.
+ Suites:
+ Unified variables table:
+ No colons in comments.
+ ${n_hosts}, ${n_ports} and use them instead hardcoded numbers.
+ Add -cps to existing cps suite names.
+ Remove "trial data overwrite".
+ Compute max rate as in STL suites.
+ Each NAT suite has ip4base suite to compare results to.
- Those act as indirect TRex calibration.
- VPP does not lose packets in those.
+ Latency in ASTF suites is disabled hard.
- As we do not support latency in ASTF profiles yet.
+ Unidirectional tests governed by suite variable, not an argument.
+ Write long argument lists vertically.
+ Prefer to use argument names.
+ In Python, also the last argument is followed by comma.
+ It makes renaming and reordering easier.
+ Similarly applies to prints with long lists of values.
+ A TODO to update api crc file comments.
Change-Id: I84729355edbec051298a9de1162107f88ff5737d
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Change-Id: Ie24184ca4ac2d6c7abc32f0f103e10bc402ad93b
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
- default value for main heap size set to 2G
- allow allocation of n x 2G in tests that need it
Change-Id: I02dafe6bc61649d2823486a3e983f66f5a213a88
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
- some tests need to reduce rate for ramp-up phase
- some tests need to extend trail duration in ramp-up phase
- removed 2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p63-s63 suite
as nat out ports are randomly selected from available port range
so T-Rex stateless is not able to provide required out2in traffic
Change-Id: I1145496610d202f81d911e68aa819844d7600918
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
+ Unifying code structures
- To easily plug another DUT
+ New PCI PassThrough templates
+ Improved perf stat on cores allocated in test.
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I325f17b977314f93cb91818feddfddf3e607eb8a
|
|
+ DPDK 20.08
+ Migrate make -> meson
+ Fix all trending issues
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I31dcb22627c0f8d17ec63c5b138a2da958b006f4
|
|
- continuation of https://gerrit.fd.io/r/c/csit/+/26898 as there was
reached limit of changes (1000)
Jira: CSIT-1711
- udp synthetic profiles w/o data packets
- udp cps perf tests, phase I (no special "search cps" KW)
Part I means that we are using MRR tests to collect traffic data
until there is ready new CPS test type with corresponding algorithm.
Change-Id: I0d30feb9ecf1d0bff937152656f8eb422f831378
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
+ Measure latency in 90/50/10/0% PDR loads in ndrpdr tests.
+ Do not measure latency anywhere else.
- Needs manual editing to re-enable in soak tests.
Change-Id: I69fa11bfcf71012f683061c5effea52a1be91620
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
- provide base routines to run T-Rex in advanced stateful mode
Change-Id: Ib0dc5f2919c370753335f6446860683dc4b12d93
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Change-Id: I3bbe1fe0073ddeead5219993675f24955e8c3dfd
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
- test/suite/global
- binary logic is not working
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Ia3d81cbf2c5f04d1093a0a408c84a9ffc6f3eef0
|
|
+ Latency measurements need more than 9000 pps.
- Previously 0% measurement used 9500 pps.
Change-Id: Ic0841de096dfa8a61329f98aa1ba6d3f0ce60c66
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Previously, number of directions was not taken into account.
Also, ideally PLRsearch never reports value under the hard minimum,
so successful results are now required to be more than 10% better.
Change-Id: I8622726b97bd1da3e139c8044a2932837fc268b7
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Ie88f0df239725a4de62d727e1923cdb3ad040809
|
|
- API to provide duration for send and receive traffic
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Id186a200be66b7703348e6fd3099ffd405e915ae
|
|
+ Merge single/double link
+ Introduce _pf{n}[0] variables so we can access physical function
same way as virtual function
+ Cleanup code by moving complex logic to python
+ Prepare code for multiple vf functions
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ic2e74a38bfa146441357de8f0916aeb638941c49
|
|
Small differences in Tx packet counts can cause
the previous way (which used transmit_rate,
computed from packets sent and nominal duration)
to report lower bounds as higher than upper bounds.
Also, reconf tests need the target (not actual) rate.
Change-Id: If5222dabd9762b8d9c2e22d875c12ad355bc6838
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ Improve keyword Documentation.
+ Reorder measurements, higher loads first.
Change-Id: I1aeab1c8ada268422e9f421e075aff2ac9eec23f
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Without this, if the search part returns min_rate,
then reconf part reports few seconds with a small loss count.
But min_rate means there is a bug or misconfiguration,
so the tests should fail, instead of returning misleading results.
Change-Id: I566608b40ae11d6aaa3fe022a32da97901e1999c
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Latency measurements break for loads less than 9 kpps per direction.
Setting min_rate to 90 kpps prevents 10% latency trial from breaking.
90 kpps should be enough for any type of test.
When some test finds a lower value, this patch will make the fail
with a message saying the loss rate at minimal load is too high
(instead of a cryptic error from 10% measurement without this patch).
Change-Id: I97b8428aa5044da23343b86447857b3a101f6baa
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Before [0], the NDRPDR test ended with two measurements
that perform runtime stats collection, each 2 seconds long.
[0] then decreased that duration to one second,
and removed the PDR measurement.
This change re-adds the PDR measurement,
while keeping the duration at 1 second.
[0] https://gerrit.fd.io/r/c/csit/+/24427
Change-Id: I76828f11863a9e278cdd0cf60f2792d5b614ce43
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Change-Id: I46bd4b58bdd02a3deed38c158214e1e9977dde05
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Change-Id: I250ffd196045bc623d5d38f30f16a08bcaea137c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
|
|
+ Add both NDR and PDR telemetry capture
+ Speedup sockets
+ Adjust privileges
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ia6fd5d405e6fb410651d8b705c921653753aea10
|
|
Change-Id: I1392c06b1d64f62b141d24c0d42a8e36913b15e2
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Change-Id: I8e0a14f59e20d61096e069bb80a0e2c00977ac5c
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
+ This will help unify driver base differences between TCs.
+ Decrease amount of logic needed for suite generator.
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I1e84ba361dc1e829f0612c58a61096e2633ce0c5
|
|
+ Enable hdrh in trex server.
+ Append hdrh coded output after min/avg/max/.
+ Read (not show nor decode) hdrh value in PAL.
+ Also, remove old ndrpdrdisc code.
Change-Id: I99d99f10386a621772b5419ca1f36080fa15aca7
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
TRex does not zero the server counters.
It copies the values to use as reference,
and subtracts them when asked for results.
But the reference is stored in the client (not the server).
And CSIT uses different scripts to start and stop async traffic,
which means different clients.
This patch introduces a workaround.
Async start will return xstats objects to use as reference,
and async stop will use the objects to compute the correct results.
The xstats objects are stored in TrafficGenerator instance.
Sync measurement does not export the counters, to shorten logs.
Other improvements:
+ Make stop_traffic_on_tg return measurement results directly.
+ Rename --async to --async_start as "async" is reserved in Python 3.7
+ Minor pylint, docstring and typo fixes.
Change-Id: I5fc56a0763afb7d62cfa7c0651f96b6867de3e15
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ Rename bool unidirection to int traffic_directions.
+ Rename "untagged" to "initial" for bandwidth calculation.
+ Fix latency measurement for unidirectional traffic.
+ Remove duplicate colon in soak test message.
+ Edit PAL to accept both forms.
+ Fix minor documentation issues.
Change-Id: I6c76f2dc090ae493f2fbd7e9ccd45229d2306dea
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ Ability to get stats from CNF via SocketPAPI
- Remove obsolete functions
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I4d1b32a7279244592be96644e4f8a530c4f29a15
|
|
Instead of using EnsureGlobalVariable,
which is clunky to use from Python.
As a consequence, all caps variables from Constants.py are used directly
and tests/__init__.robot and robot_enhancements.robot are deleted.
+ Rename the CRC global kill switch based on ci-man review.
Change-Id: I10723792475bc83352bf8c3b7f7946ecf885a194
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Ticket: CSIT-1551
+ Config copied from other suites.
+ Layer keywords prepared for additional chains.
+ Renamed "create" argument to "vlan_per_chain".
+ TrafficGenerator result extraction improvements.
+ Also unified TG type and subtype checking.
+ Throughput estimated as PDR for zero PLR.
+ Actual Qemu start is skipped.
+ Parse xstats instead of stats in trex stop scipt.
- Because stats are unconditionally cleared on each script connect.
+ Remember start values to get better ReceiveMeasurementResult at stop.
+ Expose loss count and time as appropriate test message.
+ Autogen support.
+ Multiple chain amounts and core densities.
- Only 1 additional chain.
+ Proper TAGs. Documented.
+ Clarified min framesize tags are for TG-DUT.
+ Added a TODO concerning overhead values.
+ Added 118B tag.
+ Robot performance keywords improvements.
+ Added missing return value documentation.
+ Frame size as required test variable, not an explicit argument.
+ MLRsearch keyword to store result (not into test message).
- TODO: De-duplicate: main keyword to measure, minor to set test message.
- But implementation uses the fact default arguments are different.
+ Keywords for starting and stopping background traffic.
- No checks whether start-stop pair is complete.
+ Multiple minor indentation and logging improvements.
- Missing / TODOs:
- Support also vlan_per_chain=True?
- Support dot1q without vxlan?
- Support also deletion?
- How to package config steps so -reconf can be generated from -ndrpdr?
Change-Id: If0270697f9ffa837c34ef802917220a53f156703
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Logic improvements for rls1908 and post-pylint fixes:
+ Reduce search time to 30 minutes.
+ Use average instead alternating loads.
+ Rework log/exp avg/stdev from two estimates.
+ Introduce and use pessimistic variance of dual trackers.
+ Introduce safe_exp to use when None does not skip code.
+ Use dot relative imports (instead of disabling pylint).
+ Complete docstrings for simpler functions.
+ Append docstrings to named tuples.
+ Somewhat unify docstrings related to the same arguments.
+ Slightly improve intentation.
+ State named tuples as rtype where used.
+ Add returns and rtype to __repr__ where missing.
+ Return what docstring say (or update them).
+ Explicit copying for vector and matrix values.
Change-Id: I884c68b4839c5df5e8bef95e463666599603a0ff
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
- Remove translate TC as they have no perf opposite
- Remove unused keywords
- Merge similar keywords / rename
- Move keywords from perf library to categories
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I6433006136e2497ad8fb17193aa20c578d836999
|
|
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I3721900b91a9c8e9db8766bdcb9771b6bcf95bca
|
|
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ic15a15c426db04defc15840883a772a0eb8e4885
|
|
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ib3620689acb3641b2ec9a49e2ce552bab3f00eef
|
|
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ideddcea56120cf770aec78ca24813baf7d05ba11
|
|
+ Move all base ipv6 related KW to library
+ Remove useless KW to save space in output.xml
+ Remove cross dependency in ip6.robot
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I8c5f72e9852c1017356ab6034c4d271cf7b53265
|
|
+ Move all base ipv4 related KW to library
+ Remove useless KW to save space in output.xml
+ Remove cross dependency in ip4.robot
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: If1e3a6370d36caf4ce7411fb956a0b7d0f939b6b
|
|
Change-Id: I0d3c925ea4a6896a0df98db6ddaf4238e6291bf1
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
Change-Id: I8c8ae1d7eed8cf28fc63ce42b2dc36dd16a5c0da
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
+ NF_density compatible
+ Baseline VM tests compatible
+ Scalability NxM
- 3n variant is missing in VXLAN and DOT1Q due to requests to have it
asymmetrical - TODO
Change-Id: Ia817d7be00622b594b451bc07756240d1a379e04
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
- From unknown reason VAT was more tolerant
Change-Id: Ia740843c67604a18de40d14cc448138b9f079b41
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
- Code not used
Change-Id: I312635f8038c6d4d4db21d93e43df6b3636feb34
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
* replace the current VM image with kernel img
* rework keyword usage to make it consistent with performance tests
* remove resources/libraries/robot/shared/qemu.robot as it's not used
anywhere anymore
Change-Id: Ia5bc19e9e6ed9af031e4d9b5c0c89431fb49fd33
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
|
|
- Alignment with PERF
Change-Id: Id7b2cb91c88e44cf9265c3376330f6aa579abf7a
Signed-off-by: Peter Mikus <pmikus@cisco.com>
|
|
Do not support returning unverified replies anymore.
Basically, ".get_replies().verify_replies()" is now just ".get_replies()".
This allows fairly large simplifications both at call sites
and in PapiExecutor.py
+ Rename get_dumps to get_details.
+ Introduce get_reply and get_sw_if_index.
+ Rename variables holding get_*() value,
+ e.g. get_stats() value is stored to variable named "stats".
+ Rename "item" of subsequent loop to hint the type instead.
+ Rename "details" function argument to "verbose".
+ Process reply details in place, instead of building new list.
- Except hybrid blocks which can return both list or single item.
- Except human readable text building blocks.
+ Rename most similar names to sw_if_index.
- Except "vpp_sw_index" and some function names.
+ Use single run_cli_cmd from PapiExecutor.
+ Do not chain methods over multiple lines.
+ Small space gain is not worth readability loss.
+ Include minor code and docstrings improvement.
+ Add some TODOs.
Change-Id: Ib2110a3d2101a74d5837baab3a58dc46aafc6ce3
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|