summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/cmd_parser.c
AgeCommit message (Collapse)AuthorFilesLines
2019-06-14Add support for latency task with multiple portsXavier Simonart1-0/+13
Change-Id: Iaae603a7558666b5794ec4c76f447eb3260a1df9 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2019-06-14Support multiple tasks in "lat stats" commandXavier Simonart1-9/+38
Similar support and comments as for "dp core stats" command Change-Id: I215fc57c292fbc1f12a3fe95d40a0a80c29b714a Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2019-06-14Support multiple tasks in "dp core stats" commandXavier Simonart1-9/+30
The "dp core stats" command supported, as other commands, multiple cores but not multiple tasks. It now supports both (e.g. dp core stats 1-2 0-1). This is necessary so that users can collect all statistics from PROX in one command line. It will return similar information on the screen or through the socket: - if the syntax is wrong (e.g. missing task, too many cores or tasks, ...) => an error message is printed on the screen, and the single error line "error: invalid syntax" is returned through the socket - if the syntax is correct => one line is printed or returned for each core/task pair => if the core/task pair is invalid, the line reports an error => otherwise, the line provides dataplane statistics for the core/task pair, with the core_id and task_id added, either at the end of the line returned through the socket, or at the beginning of the line printed on the screen. This means a change in behaviour when using the socket: before, when an error happened (e.g. bad task), then nothing was returned which made it difficult for the script to catch the syntax error. Similar behaviour could/should be implemented for other commands. However, care must be taken as some scripts like NSB might count the number of lines within the output, or the number of items within the line. This should not be an issue for dp core stats as NSB does not use it, and other PROX scripts do not count the number of items and will be adjusted to count the number of lines. Change-Id: I582a671ae3d2f6493f791e80fc28e70f8e3a38d1 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2019-06-14Add parse_cores_tasks()Patrice Buriez1-32/+55
and rename parse_core_task() to parse_cores_task() Change-Id: I256dfb8d02520a70d65d6623feddcc9037938501 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2019-06-14Add "total TX fail" count to "dp core stats" command outputPatrice Buriez1-4/+5
Warning: This change breaks backward-compatibility of PROX socket scripting API, because the "total TX fail" count is reported before the "last TSC" field. As a result, PROX scripts that make use of the "dp core stats" command, such as the core_stats() method in helper-scripts/openstackrapid/prox_ctrl.py, MUST be reworked to correctly parse the returned set of fields. Change-Id: I3fe7f37dccee19f5f0b2719f262c6cfa7bad850f Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2019-06-14Simplify cores_task_are_valid()Patrice Buriez1-12/+1
by means of calling core_task_is_valid() Change-Id: Ice64aabc84066633288ff43d4dc9af3f5b378e33 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2018-10-28Add support for counting non dataplane related packetsXavier Simonart1-0/+34
When performing some zero packet loss performance testing on dataplane, it is important (not) to count non dataplane packets. For instance, one might receive uexpected packets from a switch, or ARP packets. Or one might need to transmit ARP packets. Such packets should not be counted as dataplane packets as for thse packets there is no 1:1 mapping between transmitted packets and received packets. To support this, the counters reporting numbers of transmitted and received packets remain unchanged but two new counters have been added to PROX, counting respectively number of received and number of transmitted non-dataplane packets. On RX side, packets are counsidered as non-dataplane if being ARP or if they do not countain the proper signature On TX side, ARP packets are not considered as dataplane packets. This feature requires configuration of signature. "dp core stats" command has been added Change-Id: I98e113cd02f36d540383d343a433592867ad86a9 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-06-07Get multiple port stats simultaneouslyPatrice Buriez1-0/+44
JIRA: YARDSTICK-1220 Implemented new "multi port stats <port list>" command, which returns a semi-colon-separated list of comma-separated values: - port id - total (at last_tsc) for rx_pkts, tx_pkts, no_mbufs, ierrors + imissed - last_tsc Change-Id: I8a8da79cb4ccb245ccb38b50b561da51a40a359d Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2018-01-25Merge "Integrate irq mode into PROX (support display and command line)"Deepak S1-1/+24
2018-01-24Fix extrapolation used in latency measurementsXavier Simonart1-4/+4
When doing latency measurements PROX takes into account the generation or reception of a bulk of packets. For instance, if PROX receives at time T 4 packets, it knows that the first packet was received by te NIC before T (the time to receive the other 3 packets, as they were received at maximum link speed). So the latency data is decreased by the minimum time to receive those 3 packets. For this PROX was using a default link speed of 10Gbps. This is wrong for 1Gbps and 40Gbps networks, and was causing for instance issues on 40 Gbps networks as extrapolating too much, resulting in either too low latencies or negative numbers (visible as very high latencies). Change-Id: I4e0f02e8383dd8d168ac50ecae37a05510ad08bc Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-16Integrate irq mode into PROX (support display and command line)Xavier Simonart1-1/+24
irq mode can be used to show how a core is interrupted by other tasks. This mode does not handle packets. It only loops reading tsc. When the difference between two consecutive calls to rdtsc() is high then it means the core was interrupted. This task implementes the display, so that we can see a histogram of interrupts as well as the maximum, per core. Command line is also supported, through "show irq buckets" (too show the intervals of each buckets, in micrcoseconds), and the stats command line (showing the number of items in each buckets and the max).. Change-Id: I153cc3deaa7b86ae2776ea44e46ef9ecfd116992 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-06Fix command parserXavier Simonart1-13/+12
Command parser could have been crashing if a wrong core/task was used in pkt_size command. For some other commands both an error and a warning were printed in case of errors. Change-Id: I6648bfca1b5bcde3c6393d49687ed84900326d49 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-15Add support for nop mode with l3 submodeXavier Simonart1-4/+4
The l3 submode was not supported in nop mode, as the nop mode uses some specific nop thread (and not generic). When L3 is specified, the nop mode must use the generic thread. In addition the l3 submode is implemented differently than other submodes. It is not supported through task_init structures (i.e. each task does not have to explicitely tell that it supports l3 submode). But this prevented to run both a nop with no submode and a nop with a l3 submode. Note that nop with l3 is usually not very useful - it handles arp (requests and response) but as nop, it does not swap IP addresses. So with a real switch, the packets transmitted will be received back... and l3 mode is usually mainly usefull when using a switch. However, there is at least one nop mode where l3 submode makes sense: when the nop does not transmit. In such cases, for instace used in conjunction with a gen l3, the nop receives all packets and forward the arp requests and responses to the master for handling. Change-Id: I992121db285ba25a11cbb494092a6afc6fe55a58 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-09Fix latency commands in l3 submodeXavier Simonart1-20/+27
Change-Id: I9c46b57f98b566efc8ca3ea5966befe2a150315b Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-10-25Merge changes from PROX-v041Patrice Buriez1-11/+36
Change-Id: Ie6d4e7ce22c27967117a446626f5923643397812 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2017-07-14Adding PROX(Packet pROcessing eXecution engine) VNF to sampleVNFDeepak S1-0/+2031
JIRA: SAMPLEVNF-55 PROX is a DPDK-based application implementing Telco use-cases such as a simplified BRAS/BNG, light-weight AFTR... It also allows configuring finer grained network functions like QoS, Routing, load-balancing... (We are moving PROX version v039 to sampleVNF https://01.org/intel-data-plane-performance-demonstrators/prox-overview) Change-Id: Ia3cb02cf0e49ac5596e922c197ff7e010293d033 Signed-off-by: Deepak S <deepak.s@linux.intel.com>