summaryrefslogtreecommitdiff
path: root/app
AgeCommit message (Collapse)Author
2018-10-29add missing static keyword to globalsFerruh Yigit
Some global variables can indeed be static, add static keyword to them. Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-10-27build: add dependency on telemetry to apps with mesonKevin Laatz
This patch adds telemetry as a dependecy to all applications. Without these changes, the --telemetry flag will not be recognised and applications will fail to run if they want to enable telemetry. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-10-26app/testpmd: fix QinQ strip display optionJerin Jacob
Fix a typo on DEV_RX_OFFLOAD_QINQ_STRIP selection. Fixes: 0074d02fca21 ("app/testpmd: convert to new Rx offloads API") Cc: stable@dpdk.org Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-26app/testpmd: setup attached ports on probe eventThomas Monjalon
After probing is done, each new port must be setup. The new ports are currently guessed by iterating on ports matching the devargs string used for probing. When probing a port, it is possible that one more port probing get triggered (e.g. PF is automatically probed when probing a VF representor). Such automatic probing will be caught only on event. The iterator loop may be replaced by a call from the event callback. In order to be able to test both modes, a command is added to choose between iterator and event modes. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: move ethdev events registrationThomas Monjalon
The callback for ethdev events was registered on port start, so it was missing some events. It is now registered at the beginning of the main function. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: check not configuring port twiceThomas Monjalon
It is possible to request probing of a device twice, and possibly get new ports for this device. However, the ports which were already probed and setup must not be setup again. That's why it is checked whether the port is already part of fwd_ports_ids array at the beginning of the function setup_attached_port(). Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: merge ports list update functionsThomas Monjalon
The arrays ports_ids and fwd_ports_ids require the same kind of update when some ports are removed or added. The functions update_fwd_ports() and remove_unused_fwd_ports() are merged in the new function remove_invalid_ports(). The part for adding new port is moved into setup_attached_port(). Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: check not detaching device twiceThomas Monjalon
The command "port detach" is removing the EAL rte_device of the ethdev port specified as parameter. The function name and some comments are updated to make clear that we are detaching the whole device. After detaching, the pointer, which maps a port to its device, is reset. This way, it is possible to check whether a port is still associated to a (not removed) device. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: fix metadata API and Tx insertionDekel Peled
Previous patch introduces the Tx metadata feature, with unnecessary restrictions on data entry. It also used the metadata in txonly fwd engine only. This fix removes the data entry restrictions on metadata item. It also implements callback function to add the metadata in every Tx packet, sent by any fwd engine. Fixes: c18feafa193c ("app/testpmd: support metadata as flow rule item") Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
2018-10-26app/testpmd: support more types for flow RSSWei Zhao
Some user and tester require flow RSS to support more types, so add "all" and "none" to make configuration more easy for users. Tested-by: Yuan Peng <yuan.peng@intel.com> Signed-off-by: Wei Zhao <wei.zhao1@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26ethdev: remove deprecated attach/detach functionsThomas Monjalon
The hotplug attach/detach features are implemented in EAL layer. There is a new ethdev iterator to retrieve ports from ethdev layer. As announced earlier, the (buggy) ethdev functions are now removed. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-26app/testpmd: add MPLSoGRE encapsulationOri Kam
Example for MPLSoGRE tunnel: ETH / IPV4 / GRE / MPLS / IP / L4..L7 In order to encapsulate such a tunnel there is a need to remove L2 of the inner packet and encap the remaining tunnel, this is done by applying 2 rte flow commands l2_decap followed by mplsogre_encap. Both commands must appear in the same flow, and from the point of the packet it both actions are applied at the same time. (There is no part where a packet doesn't have L2 header). Decapsulating such a tunnel works the other way, first we need to decap the outer tunnel header and then apply the new L2. So the commands will be mplsogre_decap / l2_encap Due to the complex encapsulation of MPLSoGRE flow action and based on the fact testpmd does not allocate memory, this patch adds a new command in testpmd to initialise a global structure containing the necessary information to make the outer layer of the packet. This same global structures will then be used by the flow commands in testpmd when the action mplsogre_encap, mplsogre_decap, will be parsed, at this point, the conversion into such action becomes trivial. Signed-off-by: Ori Kam <orika@mellanox.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-26app/testpmd: add MPLSoUDP encapsulationOri Kam
MPLSoUDP is an example for L3 tunnel encapsulation. L3 tunnel type is a tunnel that is missing the layer 2 header of the inner packet. Example for MPLSoUDP tunnel: ETH / IPV4 / UDP / MPLS / IP / L4..L7 In order to encapsulate such a tunnel there is a need to remove L2 of the inner packet and encap the remaining tunnel, this is done by applying 2 rte flow commands l2_decap followed by mplsoudp_encap. Both commands must appear in the same flow, and from the point of the packet it both actions are applied at the same time. (There is no part where a packet doesn't have L2 header). Decapsulating such a tunnel works the other way, first we need to decap the outer tunnel header and then apply the new L2. So the commands will be mplsoudp_decap / l2_encap Due to the complex encapsulation of MPLSoUDP and L2 flow actions and based on the fact testpmd does not allocate memory, this patch adds a new command in testpmd to initialise a global structures containing the necessary information to make the outer layer of the packet. This same global structures will then be used by the flow commands in testpmd when the action mplsoudp_encap, mplsoudp_decap, l2_encap, l2_decap, will be parsed, at this point, the conversion into such action becomes trivial. The l2_encap and l2_decap actions can also be used for other L3 tunnel types. Signed-off-by: Ori Kam <orika@mellanox.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-26app/testpmd: support metadata as flow rule itemDekel Peled
As described in [1], this series adds option to set metadata value as match pattern when creating a new flow rule. This patch introduces additional options in testpmd commands: - New item type "meta" "data" - New per-port offload flag "match_metadata". It also adds commands to configure the tx_metadata value to use: - New 'config' command takes a 32 bit value and stores it per port: port config <port_id> tx_metadata <value> testpmd will add to any Tx packet sent from this port the metadata value, and set ol_flags accordingly. - A matching 'show' command is added to read the configured value: port config <port_id> tx_metadata <value> [1] "ethdev: support metadata as flow rule criteria" Signed-off-by: Dekel Peled <dekelp@mellanox.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-26ethdev: complete closing of portThomas Monjalon
After closing a port, it cannot be restarted. So there is no reason to not free all associated resources. The last step was done with rte_eth_dev_detach() which is deprecated. Instead of blindly removing the associated rte_device, the driver should check if no more port (ethdev, cryptodev, etc) is open for the device. The last ethdev freeing which were done by rte_eth_dev_detach(), are now done at the end of rte_eth_dev_close() if the driver supports the flag RTE_ETH_DEV_CLOSE_REMOVE. There will be a transition period for PMDs to enable this new flag and migrate to the new behaviour. When enabling RTE_ETH_DEV_CLOSE_REMOVE, the PMD must free all its private resources for the port, in its dev_close function. It is advised to call the dev_close function in the remove function in order to support removing a device without closing its ports. Some drivers does not allocate MAC addresses dynamically or separately. In those cases, the pointer is set to NULL, in order to avoid wrongly freeing them in rte_eth_dev_release_port(). A closed port will have the state RTE_ETH_DEV_UNUSED which is considered as invalid by rte_eth_dev_is_valid_port(). So validity is not checked anymore for closed ports in testpmd. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-26app/testpmd: allow detaching a port not closedThomas Monjalon
The testpmd application aim is for testing; so order of operations should not be enforced. There was a test to forbid detaching before closing a port. However, it may interesting to test what happens in such case. It is possible for a PMD to automatically close the port when detaching. in order to avoid a crash, it is checked that the port must be stopped before detaching (as for closing). Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: update port list for multiple removalsWisam Jaddo
When detaching a port, the full rte_device is removed. If the rte_device was hosting several ports, the testpmd list of ports must be updated for multiple removals. Signed-off-by: Wisam Jaddo <wisamm@mellanox.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-26app/testpmd: reserve NUMA node per port and per ringPhil Yang
If user explicitly requested memory to be allocated from a socket via `port-numa-config` and `ring-numa-config`, and if that socket is valid, add that socket into socket_ids[] so that mempool allocated for that socket. Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation") Cc: stable@dpdk.org Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com> Signed-off-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-22mk: build with _GNU_SOURCE defined by defaultAnatoly Burakov
We use _GNU_SOURCE all over the place, but often times we miss defining it, resulting in broken builds on musl. Rather than fixing every library's and driver's and application's makefile, fix it by simply defining _GNU_SOURCE by default for all builds. Remove all usages of _GNU_SOURCE in source files and makefiles, and also fixup a couple of instances of using __USE_GNU instead of _GNU_SOURCE. Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
2018-10-18app/testpmd: set packet dump based on verbosity levelRaslan Darawsheh
when changing verbosity level it will configure rx/tx callbacks to dump packets based on the verbosity value as following: 1- dump only received packets: testpmd> set verbose 1 2- dump only sent packets: testpmd> set verbose 2 3- dump sent and received packets: testpmd> set verbose (any number > 2) 4- disable dump testpmd> set verbose 0 Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-18app/testpmd: add packet dump callbacksRaslan Darawsheh
add new rx/tx callback functions to be used for dumping the packets. Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-18app/testpmd: move dumping packets to a separate functionRaslan Darawsheh
verbosity for the received/sent packets is needed in all of the forwarding engines so moving it to be in a separate function Acked-by: Bernard Iremonger <bernard.iremonger@intel.com> Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
2018-10-18app/testpmd: fix physical port socket initializationPhil Yang
Once the lcore list setting excluded the socket which physical device attached, it will cause failure. Meanwhile, it will disable Testpmd cross NUMA scenario. Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation") Cc: stable@dpdk.org Signed-off-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2018-10-18app/testpmd: add commands to modify MAC addressXiaoyu Min
add commands to support following actions: - RTE_FLOW_ACTION_TYPE_SET_MAC_SRC - RTE_FLOW_ACTION_TYPE_SET_MAC_DST Signed-off-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-18app/testpmd: add commands to modify TTLXiaoyu Min
add commands which supports following TTL actions: - RTE_FLOW_ACTION_TYPE_DEC_TTL - RTE_FLOW_ACTION_TYPE_SET_TTL Signed-off-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-18app/testpmd: fix vdev socket initializationPhil Yang
The cmdline settings of port-numa-config and rxring-numa-config have been flushed by the following init_config. If we don't configure the port-numa-config, the virtual device will allocate the device ports to socket 0. It will cause failure when the socket 0 is unavailable. eg: testpmd -l <cores from socket 1> --vdev net_pcap0,iface=lo --socket-mem=64 -- --numa --port-numa-config="(0,1)" --ring-numa-config="(0,1,1),(0,2,1)" -i ... Configuring Port 0 (socket 0) Failed to setup RX queue:No mempool allocation on the socket 0 EAL: Error - exiting with code: 1 Cause: Start ports failed Fix by allocate the devices port to the first available socket or the socket configured in port-numa-config. Fixes: 487f9a592a27 ("app/testpmd: fix NUMA structures initialization") Fixes: 20a0286fd2c0 ("app/testpmd: check socket id validity") Cc: stable@dpdk.org Signed-off-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-17ethdev: rename memzones allocated for DMAThomas Monjalon
The helper rte_eth_dma_zone_reserve() is called by PMDs when probing a new port. It creates a new memzone with an unique name. The name of this memzone was using the name of the driver doing the probe. In order to avoid assigning the driver before the end of the probing, the driver name is removed from these memzone names. The ethdev name (data->name) is not used because it may be too long and may be not set at this stage of probing. Syntax of old name: <driver>_<ring>_<port>_<queue> Syntax of new name: eth_p<port>_q<queue>_<ring> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-15eal: modify device event process functionJeff Guo
This patch modify the device event callback process function name to be more explicit, change the variable to be const. And more, because not only eal device helper will use the callback, but also vfio bus will use the callback to handle hot-unplug, so exposure the API out from private eal. The bus drivers and eal device would directly use this API to process device event callback. Signed-off-by: Jeff Guo <jia.guo@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2018-10-15app/testpmd: use hotplug failure handlerJeff Guo
This patch use testpmd for example, to show how an app smoothly handle failure when device be hot-unplug. Except that app should enabled the device event monitor and register the hotplug event’s callback, it also need enable hotplug handle mechanism before running. Once app detect the removal event, the hot-unplug callback would be called. It will first stop the packet forwarding, then stop the port, close the port, and finally detach the port to clean the device and release the resources. Signed-off-by: Jeff Guo <jia.guo@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-08app/testpmd: add TM commands to mark packetsKrzysztof Kanas
Add following testpmd run-time commands to support test of TM packet marking: set port tm mark ip_ecn <port_id> <green> <yellow> <red> set port tm mark ip_dscp <port_id> <green> <yellow> <red> set port tm mark vlan_dei <port_id> <green> <yellow> <red> Signed-off-by: Krzysztof Kanas <krzysztof.kanas@caviumnetworks.com>
2018-10-08app/testpmd: fix metering and policing commandsJasvinder Singh
Fixes bad arguments error for cli commands related to adding meter profile for srtcm_rfc2697, trtcm_rfc2698 and trtcm_rfc4115. error log: testpmd> add port meter profile trtcm_rfc2698 2 0 3125000000 3125000000 2500000 2500000 Bad arguments Fixes: 30ffb4e67ee3 ("app/testpmd: add commands traffic metering and policing") Cc: stable@dpdk.org Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: add noisy neighbour forwarding modeJens Freimann
This adds a new forwarding mode to testpmd to simulate more realistic behavior of a guest machine engaged in receiving and sending packets performing Virtual Network Function (VNF). The goal is to enable a simple way of measuring performance impact on cache and memory footprint utilization from various VNF co-located on the same host machine. For this it does: * Buffer packets in a FIFO: Create a fifo to buffer received packets. Once it flows over put those packets into the actual tx queue. The fifo is created per tx queue and its size can be set with the --noisy-tx-sw-buffer-flushtime commandline parameter. A second commandline parameter is used to set a timeout in milliseconds after which the fifo is flushed. --noisy-tx-sw-buffer-size [packet numbers] Keep the mbuf in a FIFO and forward the over flooding packets from the FIFO. This queue is per TX-queue (after all other packet processing). --noisy-tx-sw-buffer-flushtime [delay] Flush the packet queue if no packets have been seen during [delay]. As long as packets are seen, the timer is reset. Add several options to simulate route lookups (memory reads) in tables that can be quite large, as well as route hit statistics update. These options simulates the while stack traversal and will trash the cache. Memory access is random. * simulate route lookups: Allocate a buffer and perform reads and writes on it as specified by commandline options: --noisy-lkup-memory [size] Size of the VNF internal memory (MB), in which the random read/write will be done, allocated by rte_malloc (hugepages). --noisy-lkup-num-writes [num] Number of random writes in memory per packet should be performed, simulating hit-flags update. 64 bits per write, all write in different cache lines. --noisy-lkup-num-reads [num] Number of random reads in memory per packet should be performed, simulating FIB/table lookups. 64 bits per read, all write in different cache lines. --noisy-lkup-num-reads-writes [num] Number of random reads and writes in memory per packet should be performed, simulating stats update. 64 bits per read-write, all reads and writes in different cache lines. Signed-off-by: Jens Freimann <jfreimann@redhat.com> Acked-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: fix duplicate exitBrian Archbold
In interactive mode, when the "quit" command is issued, pmd_test_exit() is being called twice, once through the "quit" command and the other after termination of prompt. Remove duplicated exit routine by removing call from "quit" command. Steps to reproduce: - Run testpmd in interactive mode. - type "quit". Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Brian Archbold <brian.archbold@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: add new command for show port infoEmma Finn
existing testpmd command "show port info" is too verbose. Added a new summary command to print brief information on ports. console output: testpmd> show port summary all Number of available ports: 2 Port MAC Address Name Driver Status Link 0 11:22:33:44:55:66 0000:07:00.0 net_i40e up 40000Mbps 1 66:55:44:33:22:11 0000:07:00.1 net_i40e up 40000Mbps Signed-off-by: Emma Finn <emma.finn@intel.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: fix printf format in event callbackHerakliusz Lipiec
change PRIu8 -> PRIu16 for port_id in eth_event_callback (portid_t is uint16_t) Fixes: 76ad4a2d82d4 ("app/testpmd: add generic event handler") Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: display devargs in port info outputFerruh Yigit
Devargs may affect how device works but currently we don't have a way to observe provided devargs. Add ability to print device argument as part of port info, For example, for "--vdev net_pcap0,iface=lo" output will be " ********************* Infos for port 1 ********************* MAC address: 02:70:63:61:70:00 Device name: net_pcap0 Driver name: net_pcap Devargs: iface=lo .... " or for "-w0000:86:00.1,queue-num-per-vf=8", " ********************* Infos for port 0 ********************* MAC address: 3C:FD:FE:AB:B4:41 Device name: 0000:86:00.1 Driver name: net_i40e Devargs: queue-num-per-vf=8 .... " `Devargs` line may not be printed at all if devargs is not provided for that device. Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: collect bad outer L4 checksum for csum engineJerin Jacob
Collect and prints the statistics for PKT_RX_EL4_CKSUM_BAD errors. Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: support outer UDP HW checksumJerin Jacob
Added outer-udp Tx HW checksum support for csum forward engine if device supports DEV_TX_OFFLOAD_OUTER_UDP_CKSUM. Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11ethdev: add Tx offload outer UDP checksum definitionJerin Jacob
Introduced DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags and PKT_TX_OUTER_UDP_CKSUM mbuf ol_flags to enable Tx outer UDP checksum offload. To use hardware Tx outer UDP checksum offload, the user needs to, - enable following in mbuf: a) fill outer_l2_len and outer_l3_len in mbuf b) set the PKT_TX_OUTER_UDP_CKSUM flag c) set the flag PKT_TX_OUTER_IPV4 or PKT_TX_OUTER_IPV6 - configure DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slow path Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-11ethdev: add Rx offload outer UDP checksum definitionJerin Jacob
Introduced DEV_RX_OFFLOAD_OUTER_UDP_CKSUM Rx offload flag and PKT_RX_OUTER_L4_CKSUM_* mbuf ol_flags to detect outer UDP checksum status. - To use hardware Rx outer UDP checksum offload, the user needs to configure DEV_RX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slowpath. - Driver updates checksum status in mbuf ol_flag as PKT_RX_OUTER_L4_CKSUM_* flags. Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-11ethdev: add flow action to swap MAC addressesRahul Lakkireddy
This action is useful for offloading loopback mode, where the hardware will swap source and destination MAC addresses in the outermost Ethernet header before looping back the packet. This action can be used in conjunction with other rewrite actions to achieve MAC layer transparent NAT where the MAC addresses are swapped before either the source or destination MAC address is rewritten and NAT is performed. Must be used with a valid RTE_FLOW_ITEM_TYPE_ETH flow pattern item. Otherwise, RTE_FLOW_ERROR_TYPE_ACTION error should be returned by the PMDs. Original work by Shagun Agrawal Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-11ethdev: add flow API actions to modify TCP/UDP port numbersRahul Lakkireddy
Add actions: - SET_TP_SRC - set a new TCP/UDP source port number. - SET_TP_DST - set a new TCP/UDP destination port number. Original work by Shagun Agrawal Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> Acked-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-11ethdev: add flow API actions to modify IP addressesRahul Lakkireddy
Add actions: - SET_IPV4_SRC - set a new IPv4 source address. - SET_IPV4_DST - set a new IPv4 destination address. - SET_IPV6_SRC - set a new IPv6 source address. - SET_IPV6_DST - set a new IPv6 destination address. Original work by Shagun Agrawal Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> Acked-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-10-11app/testpmd: fix displaying RSS hash functionsFerruh Yigit
Command shouldn't ask RSS hash functions as argument to get supported RSS hash function, those values will be overwritten by PMD anyway. To display configured RSS hash functions "show port (port_id) rss-hash" To display configured RSS hash functions and hash key "show port (port_id) rss-hash key" Fixes: 8205e241b2b0 ("app/testpmd: add missing type to RSS hash commands") Cc: stable@dpdk.org Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: clarify flow types in port infoFerruh Yigit
In "show port info #" cmd output, "Supported flow types:" part is not clear what flow types are listed. Those are flow types that hash calculation offload supported by NIC. Updated command output as "Supported RSS offload flow types:" Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11mbuf: clarify QinQ flag usageFerruh Yigit
Update implementation that when PKT_RX_QINQ_STRIPPED mbuf ol_flags set by PMD, PKT_RX_QINQ, PKT_RX_VLAN_STRIPPED & PKT_RX_VLAN should be also set. Clarify mbuf documentations that when PKT_RX_QINQ set PKT_RX_VLAN also should be set. So that appllication can rely on PKT_RX_QINQ flag to access both mbuf.vlan_tci & mbuf.vlan_tci_outer Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
2018-10-11ethdev: support SCTP Rx checksum offloadJerin Jacob
Added SCTP Rx checksum offload support Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-10-11app/testpmd: rely on flow API conversion functionAdrien Mazarguil
This commit replaces all local information about pattern items and actions as well as flow rule duplication code with calls to rte_flow_conv(). Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-10-11app/testpmd: fix csum parse-tunnel command invocationJerin Jacob
Based on the documentation and help print, the sub command for csum suppose to be "parse-tunnel" instead of "parse_tunnel". Fixes: 64fc36064dc3 ("app/testpmd: add csum parse-tunnel command") Cc: stable@dpdk.org Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2018-10-11app/testpmd: check Rx VLAN offload flag to print VLAN TCIHyong Youb Kim
Since the following commit, PKT_RX_VLAN indicates the presence of mbuf's vlan_tci, not PKT_RX_VLAN_STRIPPED. Fixes: 380a7aab1ae2 ("mbuf: rename deprecated VLAN flags") Cc: stable@dpdk.org Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com> Reviewed-by: John Daley <johndale@cisco.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>