feat(MLRsearch): use goal result as in draft05 No effect on NDRPDR results, just different result packaging between the MLRsearch library and the rest of CSIT. - PyPI metadata still to be updated in a separate Change. Change-Id: I547134da189d1d7761594e92f36cc7c1c232ee32 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
feat(MLRseach): Update to v8 conditional throughput Hopefully, with CSIT config values, PDR lower than NDR will not happen. + Bump duration_sum default to an odd number, so users are not surprised by not seeing standard median behavior. For CSIT this should not matter, overheads hide ties and number of trials (at least for STL) should stay the same. Change-Id: Id7130f978c31e71227499612424007c473bcfac2 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
feat(MLRsearch): MLRsearch v7 Replaces MLRv2, suitable for "big bang" upgrade across CSIT. PyPI metadata updated only partially (full edits will come separately). Pylint wants less complexity, but the differences are only minor. + Use the same (new CSIT) defaults everywhere, also in Python library. + Update also PLRsearch to use the new result class. + Make upper bound optional in UTI. + Fix ASTF approximate duration detection. + Do not keep approximated_receive_rate (for MRR) in result structure. Change-Id: I03406f32d5c93f56b527cb3f93791b61955dfd74 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Model: Add bandwidth to mrr Change-Id: I4277f23d94fa191890041bb43e2fcd4eb5e42019 Signed-off-by: Tibor Frank <tifrank@cisco.com>
GSO: Add export of results to json files. Change-Id: Iac742f0571b11e06662af6bf1b680d0b4e196ddd Signed-off-by: Tibor Frank <tifrank@cisco.com>
fix(telemetry): Enable MRR Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: I11896900a73f97194a2935202343dc28756cbb28
fix(core): log but not export from teardown Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: I0f5f1000f55110455e86db4c461fba3c87fb198e
fix(core): Telemetry for iperf3 Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: I16469204c9bb9d521f0ca01bc3ed21ecba2d8824
fix(core): Telemetry oload Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: I1c13afd8cb377c76d65f7099b9652b96613ad087
feat(telemetry): Add telemetry export Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: Ibb8a59fd4e08bc736494c7ab18e689a55f7a98dc
feat(soak): add warmup and stats Specifically on 2n-icx, soak tests are suffering from the first search trial (at half of max rate) reporting unsent packets, thus polluting the results, see CSIT-1867. This adds a plain trial (no stats, result ignored), fixing the issue. To keep the structure similar to NDRPDR tests, stats trial is done after the search, at the discovered critical rate. Ticket: CSIT-1867 Change-Id: I12ff6f58c4eb174594e667bfa86ba1585164b8ef Signed-off-by: Vratko Polak <vrpolak@cisco.com>
fix(robot): replace Run Keyword Unless Use Run Keyword If, with the condition negated. This silences the deprecation warning seen since Robot version bump. Change-Id: I9a88ff551994df3e129d71327f08207133a958a6 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
feat(astf): Support framesizes for ASTF - No support for IMIX. + Fix a bad bug in padding (most ASTF profiles had wrong frame sizes). + Fix a big typo in TCP PPS profiles (s->c was not data, just RST). + Control transaction size via ASTF_N_DATA_FRAMES env variable. - Default value 5 leads to transactions smaller than before. + It ensures transaction is one burst (per direction) even for jumbo. + Edit autogen to set supported frame sizes based on suite id. + Both TCP and UDP use the same values: + 64B for CPS (exact for UDP, nominal for TCP). + 100B, 1518B and 9000B for TPUT and PPS. - TCP TPUT achievable minimum is 70B. + Used 100B to leave room for possible IPv6 ASTF tests. + Separate function for code reused by vpp and trex tests. - I do not really like the new "copy and edit" approach added here. + But it is a quick edit, better autogen refactor is low priority. + Consider both established and transitory sessions as valid. - Mostly for compatibility with 2202 behavior and to avoid ramp-ups. - Assuming both session states have similar enough VPP CPU overhead. + Added a TODO to investigate and maybe reconsider later. + Update the state timeout value to 240s. + That is the default for TCP (for transitory state). - UDP could keep using 300s. + But I prefer UDP and TCP to behave as similarly as possible. + Use TRex tunables to get the exact frame size (for data packets). - It is not clear why the recipe for MSS has to be this complicated. + Move code away from profile init, as frame size is not known there. + Change internal profile API, so values related to MSS are passed. + Lower ramp-up rate for TCP TPUT tests. + Because without lower rate, jumbo fails on packet loss in ramp-up. + UDP TPUT ramp-up rate also lowered (just to keep suites more similar). + Distinguish one-direction and aggregated average frame size. + Update keyword documentation where the distiction matters. + One-direction is needed for turning bandwidth limit to TPS limit. + Aggregated is needed for correct NDRPDR bandwidth result value. - TCP TPUT will always be few percent below bidirectional maximum. + That is unavoidable, as one direction sends more control packets. + Add runtime consistency checks so future refactors are safer. + Fail if padding requested would be negative. + Fail if suite claims unexpected values for packets per transaction. + Edit the 4 types of ASTF profiles to keep them similar to each other. + Move UDP TPUT limit value from a field back to direct argument. + Stop pretending first UDP packet is not data. + Apply small improvements where convenient. + Replace "aggregate" with "aggregated" where possible. + To lower probability of any future typos in variable names. + Avoid calling Set Numeric Frame Sizes twice. + Code formatting, keyword documentation, code comments, ... + Add TODOs for less important code quality improvements. - Postpone updating of methodology pages to a subsequent change. Change-Id: I4b381e5210e69669f972326202fdcc5a2c9c923b Signed-off-by: Vratko Polak <vrpolak@cisco.com>
fix(iperf3): Compare string literals using != The previous code leads to warnings from Robot. Change-Id: I323f2abb277ae26d43ee5540a3b21e01a8dd9ef1 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
UTI: Export results + Model version 1.0.0. - Only some result types are exported. + MRR, NDRPDR and SOAK. - Other result types to be added later. + In contrast, all test types are detected. + Convert custom classes to JSON-serializable equivalents. + Sort dict keys before converting to JSON. + Override the order for some known keys. + Export sets as sorted arrays. + Convert to info content from serialized raw content. + Also export outputs for suite setups and teardowns. + Info files for setup/teardown exist only temporarily. + The data is merged into suite.info.json file. + This simplifies presentation of total suite duration. + Define model via JSON schema: - Just test case, suite setup/teardown/suite to be added later. - Just info, raw to be added later. + Proper descriptions. + Json is generated from yaml. + This is a convenience for maintainers. + The officially used schema is the .json one. + TODOs written into a separate .txt file. + Validate exported instance against the schema. + Include format checking. + Update CSIT requirements for validation dependencies. + This needs python-dateutil==2.8.2, only a patch bump. + Compute bandwidth also for soak tests. + This unifies with NDRPDR to simplify schema definition. - PAL may need an update for parsing soak test message. + Include SSH log items, raw output only. + Generate all outputs in a single filesystem tree. + Move raw outputs into test_output_raw.tar.xz. + Rename existing tar with suites to generated_robot_files.tar.xz. Change-Id: I69ff7b330ed1a14dc435fd0ef008e753c0d7f78c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
MLRsearch: Increase timeout to 20 minutes There are sporadic failures due to timeout. An earlier edit changed how the timeout is applied (now it is for the whole search, previously it was for final phase only) so failures are not unexpected. Increasing timeout value from 12 minutes to 20 minutes (both for NDRPDR and for NDR part of RECONF) as the frequency shows it will not prolong runs much. The timeout is increased both in Robot call site and in Python keyword default argument. Change-Id: I3f07125ba9eeb90ce5819b1450044441b8b3977a Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Performance keywords: Use matching runtime rate Previously, runtime rate was not modified, so max rate was always used, even in ndrpdr with two stats trials. Now, each call to "Send traffic at specified rate" keyword sets the given rate as runtime rate. Change-Id: I3eb41eeadd6b64d23056c67c23a25f9565bb0424 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Core: Rework CPU allocation Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I6826add7b3032041632c3952c45a3c64409400b0
FIX: GSO tests Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I00372b5528752186a814e83af092e1b0123e4683
Framework: Telemetry retake Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I2f019a083916aec9f7816266f6ad5b92dcc31fa0