aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/performance
AgeCommit message (Collapse)AuthorFilesLines
2022-05-03feat(astf): Support framesizes for ASTFVratko Polak3-75/+188
- 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>
2022-04-11feat(telemetry): T-Rex runtimePeter Mikus1-1/+36
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I2829b5931e5a63a33f524e1d14ffb20c27f4ce5a
2022-02-08fix(iperf3): Compare string literals using !=Vratko Polak1-3/+3
The previous code leads to warnings from Robot. Change-Id: I323f2abb277ae26d43ee5540a3b21e01a8dd9ef1 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-12-15UTI: Export resultsVratko Polak2-7/+44
+ 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>
2021-10-04FIX: Set correct teardown rate in NDRPDRVratko Polak1-1/+1
It should be in transactions per second, so target rate (min rate). Change-Id: I56a12d65466320fe5e4b2ee7d3b9946c9b3c414f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-09-29MLRsearch: Increase timeout to 20 minutesVratko Polak1-2/+2
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>
2021-09-17Performance keywords: Use matching runtime rateVratko Polak1-0/+1
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>
2021-06-17Core: Rework CPU allocationpmikus1-1/+1
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I6826add7b3032041632c3952c45a3c64409400b0
2021-06-16ip6lisp: Do not fail on string overhead valueVratko Polak1-1/+2
+ Set overhead in those suites to numeric values. + Change the library to tolerate string representations anyway. Change-Id: Ic6215840f7797801c994a38db5637999eb85a034 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-06-11FIX: GSO testspmikus1-3/+4
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I00372b5528752186a814e83af092e1b0123e4683
2021-05-28Framework: Telemetry retakepmikus2-115/+62
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I2f019a083916aec9f7816266f6ad5b92dcc31fa0
2021-03-26STL traffic: Use the sleep+stop logicVratko Polak1-1/+1
+ PPS limit for AWS set to 1.2 Mpps. + The logic is very similar to that one in ASTF driver. + This helps for testbeds with high duration stretching (e.g. AWS). + Difference: No transaction scale, and we deal with floats. + Update loss counting to count unsent packets as lost. + Also count "unsent" transactions for other transaction types. + If nonzero, log the number of unsent packets/transactions. + Make STL and ASTF time overhead constant (called delay) configurable. + Subtract delay from approximated_duration, also for ASTF. Change-Id: I6ee6aa6fba4f110ba1636e1b0ff76cac64383e33 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-03-22MLRsearch: Support other than just two ratiosVratko Polak2-23/+20
+ Change some method names and argument types: + Do not mention NDR and PDR, except as examples. + Return list of ReceiveRateInterval instead of NdrPdrResult. + The resulting intervals can be degenerate when hitting min/max rate. + Rename quantity name parts from "fraction" to "ratio". + Intervals are no longer tracked for each target ratio. + They are found dynamically from known results. + Add effective_loss_ratio field to avoid loss inversion effects. + Move some functions to separate files. + Bound search logic moved to MeasurementDatabase.py + ProgressState moved to its file. + WidthArithmetics.py holds small computation functions. + Use parameter expansion_coefficient instead of "doublings". + Do uneven bisect to save time when width is not power of two times goal. + Timeout now correctly tracked for the whole search, not just the current phase. + Make logging (debug) function pluggable. + Added debug log messages for initial phase. + Do not mark as subclass if contructor signature differs. + Avoid re-measure on scale-limited (ASTF) profiles. + Remove outdated comments. + Bump copyright years. Change-Id: I93f693b4f186f59030ee5ac21b78acc890109813 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-02-05NAT44ed: Add pure throuhput bidir testsVratko Polak2-35/+82
+ With ramp-up, without reset, with session verification. + Uses the same profile as pps tests. + Ramp up duration is not specified, as duration is computed. + Timeout tracking with automated ramp-up. + Correct computation of next duration. + Checking both early and late sessions. + No loss measurement also acts as a ramp-up. + Return ReceiveRateMeasurement from send_traffic_on_tg_internal, as that is needed for detecting whether trial is ok as ramp up. - Udp needs quite low ramp-up rate after recent regression. - Max scale has higher rate (so failing) to avoid session timeouts. + Bump copyright year. Change-Id: I50c928659cd5b985b490a2e5fb69c5cd790600b0 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-01-21Reconf: Fix bidir/unidir mismatchVratko Polak1-14/+15
Results if NDR search is in TPS (so unidir) since https://gerrit.fd.io/r/c/csit/+/28208 The bug was causing all reconf tests report zero loss, as they used half of NDR load during reconfiguration. + Small improvements to descriptions of other traffic keywords. Change-Id: Ib9af5861cc09e698eb762feb3f0a019571d17962 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2021-01-14perf: GENEVE tunnel test, l3 modeJan Gelety1-1/+3
Jira: CSIT-1768 Change-Id: I888ae1a5754fa07297d4cdf65c2be0e3e49d89a5 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2021-01-04GSO: TAP/VHOST use casepmikus2-2/+168
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: Ibafaaca4438587284d1e255c764f0701002941e8
2020-10-29Support existing test types with ASTFVratko Polak5-705/+1222
+ 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>
2020-09-30Framework: Add possibility to send ramp-up trafficJan Gelety1-22/+37
Change-Id: Ie24184ca4ac2d6c7abc32f0f103e10bc402ad93b Signed-off-by: Jan Gelety <jgelety@cisco.com>
2020-09-30Framework: main heap size value multiplicationJan Gelety1-0/+4
- 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>
2020-09-24test: nat44det - add session number checkJan Gelety1-3/+19
- 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>
2020-09-03Framework: Code aligmentspmikus1-1/+1
+ 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
2020-09-03Framework: Bump DPDK 20.08pmikus1-1/+7
+ DPDK 20.08 + Migrate make -> meson + Fix all trending issues Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I31dcb22627c0f8d17ec63c5b138a2da958b006f4
2020-08-07Perf: NAT44 endpoint-dependent mode - udp, part IJan Gelety2-78/+168
- 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>
2020-08-17Measure latency only in special casesVratko Polak1-1/+1
+ 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>
2020-07-23T-Rex: Add advanced stateful modeJan Gelety1-22/+27
- provide base routines to run T-Rex in advanced stateful mode Change-Id: Ib0dc5f2919c370753335f6446860683dc4b12d93 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2020-07-31Framework: Perf stat capturingPeter Mikus1-6/+14
Change-Id: I3bbe1fe0073ddeead5219993675f24955e8c3dfd Signed-off-by: Peter Mikus <pmikus@cisco.com>
2020-07-30Introduce per DUT configurable statspmikus1-17/+65
- test/suite/global - binary logic is not working Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: Ia3d81cbf2c5f04d1093a0a408c84a9ffc6f3eef0
2020-07-24NDRPDR: Allow smaller min_rate, 9001 ppsVratko Polak1-12/+16
+ Latency measurements need more than 9000 pps. - Previously 0% measurement used 9500 pps. Change-Id: Ic0841de096dfa8a61329f98aa1ba6d3f0ce60c66 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2020-07-13Soak: Fix failure conditionVratko Polak1-3/+3
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>
2020-07-09Framework: Allow change of MRR settingspmikus1-24/+39
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: Ie88f0df239725a4de62d727e1923cdb3ad040809
2020-04-27Performance: TRex approximatedDuration and approximateRatePeter Mikus1-2/+6
- API to provide duration for send and receive traffic Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Id186a200be66b7703348e6fd3099ffd405e915ae
2020-04-06Improve pf layerPeter Mikus1-215/+0
+ 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
2020-01-29Display target_tr for ndr/pdr resultsVratko Polak1-5/+5
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>
2020-01-29Ndrpdr: Remove unused latency measurementsVratko Polak1-23/+14
+ Improve keyword Documentation. + Reorder measurements, higher loads first. Change-Id: I1aeab1c8ada268422e9f421e075aff2ac9eec23f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2020-01-28Check interval validity in reconf testsVratko Polak1-0/+2
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>
2020-01-27Increase min_rate for NDRPDR testsVratko Polak1-2/+4
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>
2020-01-27Restore PDR stat run for NDRPDRVratko Polak1-2/+6
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>
2020-01-21Ndrpdr: Add latency trials for smaller loadsVratko Polak1-11/+78
Change-Id: I46bd4b58bdd02a3deed38c158214e1e9977dde05 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2019-12-18python3: fix RF 'only continuation marker' warningDave Wallace1-5/+5
Change-Id: I250ffd196045bc623d5d38f30f16a08bcaea137c Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-12-17Telemetry: Add more operational dataPeter Mikus1-108/+31
+ Add both NDR and PDR telemetry capture + Speedup sockets + Adjust privileges Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ia6fd5d405e6fb410651d8b705c921653753aea10
2019-11-28Python3: resources and librariesJan Gelety3-134/+135
Change-Id: I1392c06b1d64f62b141d24c0d42a8e36913b15e2 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2019-10-25FIX: Limitation for NICsPeter Mikus1-2/+4
Change-Id: I8e0a14f59e20d61096e069bb80a0e2c00977ac5c Signed-off-by: Peter Mikus <pmikus@cisco.com>
2019-10-25Introduce pre-initialize driver layerPeter Mikus1-25/+0
+ 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
2019-09-24Add support for HDRhistogramVratko Polak1-1/+1
+ 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>
2019-09-24Reconf tests: Fix async measurementsVratko Polak1-3/+8
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>
2019-09-12Support unidirection in all searchesVratko Polak1-61/+84
+ 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>
2019-09-10Refactor getting telemetryPeter Mikus1-3/+4
+ Ability to get stats from CNF via SocketPAPI - Remove obsolete functions Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: I4d1b32a7279244592be96644e4f8a530c4f29a15
2019-09-06Read environment variables in Constants.pyVratko Polak1-2/+3
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>
2019-08-23Introduce reconfig suites, for dot1q+ip4+vxlanVratko Polak2-12/+136
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>