Age | Commit message (Collapse) | Author | Files | Lines |
|
There is only one call site (VppCounters.vpp_show_runtime)
which uses a single path ("^/sys/node"),
so we do not need to split the replies anymore.
This simplifies investigating bugs related to VPP stats.
Change-Id: Idfc029c795cd78cf6d41c2f461f7844aed53410d
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
We're hitting a SSHTimeout exception when copying the framework,
increase the timeout to fix this.
Change-Id: Ic72b9b8b96290c3f0e705d79742bbd39b0bf1e71
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I6edd980cb72111a008ae7fa19e1a4df279febdb2
|
|
Useful for verifying how much is SUT ready for requirements.txt content.
Change-Id: I1e8443f2f9391d646e79a451a88df961845700e4
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Add more granularity test policy tests. Mirror the number of tunnels in
other IPsec tests under 1000 tunnels.
Change-Id: I9bde7447a5d809bab05db132bf6cb524e97e19b3
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
When a trial has explicit stop instead of duration
(e.g. for show run), the computation of unsent packets is wrong,
so simply do not log the result.
Change-Id: I7722c85b156f92e456eda212104abdb216e78b04
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Add 2n1l udir 1 and 1000 tunnel sw policy IPsec tests to mirror the
existing 3n tests.
Add static ip neighbor mac entries which can't be retrieved in 2node
setups.
Change-Id: I13dd557cbeed7f907fa9b4c21e4e245d48916513
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
+ Extract the stats keyword into a library.
Change-Id: Icfaaa32c2a97d479ba0339acf34b865006949a89
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ 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>
|
|
Additional configuration can provide performance boosts when running in virtual environments
If set to 0, uses default DPDK value
By tuning this value it's also possible to run T-Rex 2.88 with ENA NICs on AWS
Signed-off-by: Tomas Alexy <tomas.alexy@pantheon.tech>
Change-Id: I43c86ea1d9aa854a1087f07fe544ac77a5b80397
|
|
Framework extraction in Arm jobs is taking longer than the current
timeout. Increase the timeout to fix this.
Change-Id: I436d3131fcd7c25fd1f9607095712b4a8aa2d28c
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
Any uncaught exception in a thread running setup_node or cleanup_node
will prevent the result of that thread's execution from being passed
to the main thread. Since the main thread assumes there will be a result
for each thread, this leads to false positives. Catch all exceptions
in those background threads to fix this.
Change-Id: I64013dfc671e576290c8376a58c754ed21b9ba3e
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
Change-Id: I8b20134ad10abd9c021270b98c3110bd186946d5
Signed-off-by: Tibor Frank <tifrank@cisco.com>
|
|
+ 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>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I73f7a1095b7cee52fade8a31285e405727548394
|
|
Otherwise setup "passes" leading to confusing errors later.
Example: https://logs.fd.io/production/vex-yul-rot-jenkins-1/csit-vpp-perf-mrr-daily-master-2n-skx/1251/archives/log.html.gz#s1-s1-s1-k1-k2
Change-Id: I56b14e2eb75679c7c10b00b3f9c6bf07902e5166
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
1. wrong symbol link path for MLRsearch.
2. self._received force to integer in _parse_traffic_results function.
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Change-Id: Ie86a549b222d28b8cecc889807044476975dffb1
|
|
The tunnel specification in "ipsec sa add" has changed. Update the cli
the reflect this.
Change-Id: I11d788798419b96b1289c53052eedb9767252df6
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I0341a1564ba510acf46bda3e24225209abef2f82
|
|
+ Mellanox 4.6 is not for Ubuntu 20.04
+ Mellanox for ubuntu 20.04 is 4.9+
+ T-Rex 2.86 is not for Mellanox 4.6+
+ T-Rex for Mellanox 5.2 is 2.88+
==================================
= Bump
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I902dfc2a43e6718b385e89f31a34260e09d61bd3
|
|
In that case we want to pass by returning an empty dict,
as docstring already describes.
Before this, the code failed when checking for included version.
Change-Id: Ia0d6b81a64ad0e7027ac7daf15c72ace1f6982ce
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
If options are not present in .api.json file
(e.g. old PVP build), use an empty dict.
If a message is used in CSIT, check its options.
Tolerate vat_help, but print warning for others.
This aims to discover in-progress and obsolete APIs.
If .api.json version is not detected, or starts with "0.",
add a "version" item to options, so they get reported.
Change-Id: Ic5a9423157728a58f7ad306c7bd9eaef3bd92488
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Some tests use a crypto algorithm with no integrity algorithm.
Generate empty binary strings as fake integrity keys
to keep return values of low level methods consistent.
+ Add return_keys argument to avoid returning long lists.
+ Improve various docstrings.
Change-Id: Idae1877bdde32d194ce4e3bb3053c8dba39d377a
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
This patch is to add test suites for vpp plugin crypto_sw_scheduler,
IPsec sync mode is to do crypto and packet forward work in same worker cores,
crypto_sw_scheduler can schedule crypto work to other async crypto cores to
improve whole crypto processing capability.
This test suites configure fixed 1 rx queues per port, then measure IPsec
performance with 1, 2, 3 crypto cores.
This patchset include 1, 2, 4, 8 ipsec tunnels test cases.
+Vratko help to change to count total physical cores instead of previous only
count crypto cores in test cases.
Change-Id: I0e67182e3d13273890a23703d838101900e25126
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Signed-off-by: pmikus <pmikus@cisco.com>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Idcee623abbc5568fc6ca49113bc2ff8add179046
|
|
The mesages are the newest present in last common ancestor
of master and rls2101 (so not yet ipsec_sad_entry_add_del_v3).
Added a TODO for the RDMA create improvement,
to be implemented in a separate change.
Change-Id: I94bcd2f1bc109fb995c4dd6df44f8928865634f5
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I874568aebbe50c38e634438eb1201ca737bd18ad
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I8692b53c02773dbe5a5e02f959dfed8599cb8a4d
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I33fefddda9055524c1817b13b5c99bb1b97ebff4
|
|
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I6b058ff30628c7e066372fec2141a8bcc18c3997
|
|
The behavior was already documented, just not implemented properly.
Change-Id: Ib8c232c004e91032e1230e86dda9f70bdfab43ad
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ 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>
|
|
Jira: CSIT-1768
Change-Id: I888ae1a5754fa07297d4cdf65c2be0e3e49d89a5
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Signed-off-by: Tomas Alexy <tomas.alexy@pantheon.tech>
Change-Id: Ifb97088a26f3c2ab2ecee28ed43e6e957a844c64
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Ibafaaca4438587284d1e255c764f0701002941e8
|
|
Jira: CSIT-1597
Change-Id: I77b746584851331d46eca1caafd4468d18f1e78d
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Disconnect+connect cycle is expensive and slow.
This change tracks connected client instances
so later "connect" to the same target uses it.
Explicit disconnects are allowed (and executed before VPP ends),
but once again disconnected instances are cached and reused,
as creating a new instance is more expensive than just connect.
+ Add missing checks on interfaces being up to appropriate keyword.
+ Use appropriate keywords.
+ Add a comment explaining why a simpler keyword is not appropriate.
+ Improve VPP checks in containers.
+ Fix the vppctl check to actually work.
+ Add PAPI check to ensure VPP is really ready.
+ Delay/reorder checks to make them faster with multiple containers.
+ Leave some TODOs to improve various lifecycles later.
+ As we do not stop VPP in test/suite teardown:
+ One final disconnect is needed, added to __init__.robot teardowns.
- Import of the final disconnect keyword is ugly, but it works.
- We could use a hashable class for distinguishing node+socket pairs.
- Are we connecting to VPP inside VMs?
Change-Id: I49cd726740c3e8cae1591c7c84b85a447241228f
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Jira: CSIT-1597
Change-Id: Ice342d6cb7cd244d712c42a3d468c851c79739f4
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Jira: CSIT-1597
+ add ipsec_sa tear down action
Change-Id: I4d1e6f26c14e61e8ddc6f29fbf5528a034c84eb0
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Jira: CSIT-1769
Change-Id: I98510cd8e627d7347f77d0032b7bac28f2e36c61
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
This reverts commit a9f54ca5080aeef17686f300a6807bf9b46b7c90.
Reason for revert: DO NOT MERGE BROKEN TESTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
https://logs.fd.io/production/vex-yul-rot-jenkins-1/csit-vpp-device-master-ubuntu1804-1n-skx/9918/archives/log.html.gz
Change-Id: I2ce2970a43e5dd7487eeb54d1ccbb149e06cf8fa
Signed-off-by: pmikus <pmikus@cisco.com>
|
|
Jira: CSIT-1769
Change-Id: I0ab906966f760b809b8431530c010a8f0835d62c
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Jira: CSIT-1597
Change-Id: Ib48d20ba087bc9828970c3acc081ac6e4447c20c
Signed-off-by: Jan Gelety <jgelety@cisco.com>
|
|
Ticket: CSIT-1771 VPP-1207 VPP-1675
Change-Id: I8ba2d62054361e72b833943327434ea071e7e568
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ The old command is tried if the new one fails.
Change-Id: I0afdcd7ac699595347b42f3a7d34e1281bb0dc0e
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: Id56b87ab868f2897a6563914b0beca2acc25e706
|
|
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I145a4b5511141f1e2b4e387daa358e32dd2c8015
|
|
The previous code counted full TCP connections,
which need one more packet, leading to worse results.
Change-Id: Ifcf78356b6ed54819ea0bf5aa069d7d9cb951183
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
|
|
+ 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: I409b060f64ae7c6787448ae519fd76d8384e9ffb
Signed-off-by: Martin Balaz <martin.balaz@pantheon.tech>
|