Li Feng [Fri, 20 Dec 2019 08:22:55 +0000 (16:22 +0800)]
vhost: support config change slave message
This msg is used to notify qemu that should get the config of backend.
For example, vhost-user-blk uses this msg to notify guest OS the
capacity of backend has changed.
The need_reply flag is not mandatory because it will block the sender
thread and master process will send get_config message to fetch the
configuration, this need an extra thread to process the vhost message.
Signed-off-by: Li Feng <fengli@smartx.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Zhaoyan Chen [Fri, 3 Jan 2020 03:03:39 +0000 (11:03 +0800)]
doc: update recommended versions for i40e
Update supported Intel NIC driver version and firmware version for 19.11
Update supported Intel NIC driver version to 2.8.43 for 19.08 which is
widely tested.
Fixes: cb8a35c22aa9 ("doc: update supported i40e driver and firmware version") Cc: stable@dpdk.org Signed-off-by: Zhaoyan Chen <zhaoyan.chen@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Kiran Kumar K [Tue, 14 Jan 2020 09:26:22 +0000 (14:56 +0530)]
net/octeontx2: fix PTP and HIGIG2 coexistence
octeontx2 PMD does not support both PTP and HIGIG2 together.
Added a check to enforce this and updated the Rx offload capabilities when
Higig2 mode enabled.
Fixes: 602009ee2dfb ("net/octeontx2: support HIGIG2") Cc: stable@dpdk.org Signed-off-by: Kiran Kumar K <kirankumark@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
John Daley [Tue, 14 Jan 2020 00:24:50 +0000 (16:24 -0800)]
net/enic: consolidate and remove some defines
There were defines which originally allowed sharing of some code with
the enic kernel driver. The code has long since diverged and now the
abstraction just makes the code harder to read. Mostly mechanical
replacement of defines and reformatting.
Signed-off-by: John Daley <johndale@cisco.com> Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
John Daley [Tue, 14 Jan 2020 00:24:49 +0000 (16:24 -0800)]
net/enic: replace some PMD macros with standard API
Use the memzone namesize, Ethernet address length defines from the RTE
header files instead of locally defined versions.
Use the RTE byte swap functions instead of the x86 specific locally
defined versions.
Signed-off-by: John Daley <johndale@cisco.com> Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
The secondary process would crash trying to get the offload
capability of the device. Since the device capabilities were
already set by the primary process this was unnecessary.
Avoid using PCI subsystem device id for SoC revision
identification and just use PCI revision id to support C0 silicon.
This patch also reduces SQB threshold to 70% to have
sufficient buffer before we overflow SQ.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Sunil Kumar Kori [Mon, 13 Jan 2020 06:16:44 +0000 (11:46 +0530)]
net/octeontx: add unicast MAC filter
At BGX, DMAC filter table can be enabled to allow defined hosts.
Patch implements 'mac_addr_add' and 'mac_addr_remove' ops to
add/remove MAC filters which uses BGX DMAC filter table.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
Shahed Shaikh [Thu, 2 Jan 2020 17:59:02 +0000 (09:59 -0800)]
net/qede: enhance Rx CPU utilization
Use light weight receive packet handler for non-LRO and
non-scatter packets to improve CPU utilization in receive data path.
We achieved ~18% CPU cycles improvement using this handler.
Vamsi Attunuru [Fri, 20 Dec 2019 13:02:52 +0000 (18:32 +0530)]
net/octeontx2: allow vector processing packets not by 4
Current vector mode implementation floor-aligns pkt count
with NIX_DESCS_PER_LOOP and process that many packets.
Patch addresses the case where pkt count modulo NIX_DESCS_PER_LOOP
is non-zero, after the vector mode processing, scalar routine is
used to process if there are any leftover packets. Scalar routine
is also used when descriptor head is about to wrap and turn out to
be unaligned.
Sunil Kumar Kori [Mon, 16 Dec 2019 15:02:53 +0000 (20:32 +0530)]
common/octeontx2: reduce wait time for mbox messages
After each mbox send operation, context waits for minimum 1ms to get
corresponding response although response can come earlier.
So reducing wait time to lower granularity.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Chengwen Feng [Thu, 9 Jan 2020 03:15:59 +0000 (11:15 +0800)]
net/hns3: fix triggering reset procedure in slave process
Currently, reset related operations can only be performed in the primary
process and are not allowed in the slave process in hns3 PMD driver.
In the internal function interface named hns3_cmd_send used for
communication between driver and firmware, if the wrong head value is
detected in the static subfunction hns3_cmd_csq_clean, driver will
trigger a function level reset to make the hardware work normally again.
This patch adds check condition to prevent triggering reset procedure in
the slave process to avoid failure.
Fixes: 2790c6464725 ("net/hns3: support device reset") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:58 +0000 (11:15 +0800)]
net/hns3: fix link status on failed query
Currently, the hns3 PMD driver issues command to the firmware and gets
link status information.
When the driver fails to call internal interface function named
hns3_cmd_send to query the status from firmware for some reason, the
link status queried by the driver should be down.
Fixes: 59fad0f32135 ("net/hns3: support link update operation") Cc: stable@dpdk.org Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com> Signed-off-by: Huisong Li <lihuisong@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:57 +0000 (11:15 +0800)]
net/hns3: fix dumping VF register information
Currently, when the API interface named rte_eth_dev_get_reg_info is
called by upper applications based on VF device, it returns error.
We can read registers directly to get ring and interrupt related
information in hns3 PF/VF PMD driver. But for some other internal table
entries and common configuration information, we can get them only
through the command interface between driver and firmware in PF driver,
and VF driver has not the related access permission.
This patch fixes it by preventing getting these information through the
command interface based on VF device in 'get_reg' ops implementation
function.
Fixes: 936eda25e8da ("net/hns3: support dump register") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:56 +0000 (11:15 +0800)]
net/hns3: fix ring vector related mailbox command format
The format of the ring vector related mailbox commands between driver
and firmware is different from those of other mailbox commands in hns3
network engine.
This patch fixes the error mailbox command format about the vector of
the rings, the related command opcode as below:
HNS3_MBX_MAP_RING_TO_VECTOR
HNS3_MBX_UNMAP_RING_TO_VECTOR
HNS3_MBX_GET_RING_VECTOR_MAP
Fixes: 463e748964f5 ("net/hns3: support mailbox") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Hongbo Zheng [Thu, 9 Jan 2020 03:15:55 +0000 (11:15 +0800)]
net/hns3: fix crash when closing port
Currently there is a certain probability of segment error in concurrent
reset when the port is closing.
The calltrace info:
This GDB was configured as "aarch64-redhat-linux-gnu".
Reading symbols from /usr/app/testpmd...(no debugging symbols found)...
done.
[New LWP 98204]
[New LWP 98203]
[New LWP 98206]
[New LWP 98205]
[New LWP 98207]
[New LWP 98208]
Missing separate debuginfo for /root/lib/libnuma.so.1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/app/testpmd --log-level=6 --socket-mem 16'.
Program terminated with signal 11, Segmentation fault.
Missing separate debuginfos, use:
debuginfo-install glibc-2.17-260.el7.aarch64
(gdb) bt
in hns3vf_service_handler ()
1 0x00000000006988b8 in eal_alarm_callback ()
2 0x00000000006969b4 in eal_intr_thread_main ()
3 0x0000ffffb08d6c48 in start_thread () from /lib64/libpthread.so.0
4 0x0000ffffb0828600 in thread_start () from /lib64/libc.so.6
(gdb)
Reset process may turn on the cancelled link state timer whether the
current port status is on or off, in order to solve this problem, this
patch add judge the current network port state before starting the
timer, only the port in the running state can start the link state
timer, so as to solve the problem that the link state timer accesses the
null pointer and causes the segment error.
Fixes: 2790c6464725 ("net/hns3: support device reset") Cc: stable@dpdk.org Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:54 +0000 (11:15 +0800)]
net/hns3: fix Rx queue search with broadcast packet
Currently, there is a certain probability of a type of RAS errors when
receiving broadcast packets. This type of RAS errors are parsed as
rx_q_search_miss error by hns3 PF PMD driver, the related log as below:
0000:bd:00.0 hns3_find_highest_level(): PPP_MFP_ABNORMAL_INT_ST2
rx_q_search_miss found [error status=0x20000000]
When receiving broadcast packet, network engine select which functions
need to accept it according to the function's promisc_bcast_en bit
configuration. And then search TQP_MAP configuration to select which
hardware queues the packet should enter, if can't find the target
hardware queue, network engine will trigger rx_q_search_miss RAS error.
The root cause as below:
1. VF's promisc_bcast_en bit configuration is not cleared by FLR reset,
and the configuration has been set in the previous application.
2. There is one bug in setting TQP_MAP configuration in the
initialization of PF device: when tqp is allocated to VF, it is still
marked as PF. This issue will affect the correctness of the TQP_MAP
configuration.
This patch fixes it with the following modification.
1. Clear all VFs promisc_bcast_en bit in the initialization of PF
device.
2. Fix the issue to ensure the correct TQP_MAP configuration.
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:53 +0000 (11:15 +0800)]
net/hns3: add free threshold in Rx
This patch optimizes the Rx performance by adding the rx_free_thresh
related process in the '.rx_pkt_burst' ops implementation function named
hns3_recv_pkts. The related change as follows:
1. Adding the rx_free_thresh related process to reduce the number of
writing the HNS3_RING_RX_HEAD_REG register.
2. Adjusting the internal macro named DEFAULT_RX_FREE_THRESH to 32 and
adjusting HNS3_MIN_RING_DESC to 64 to make the effect of the thresh
more obvious.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:52 +0000 (11:15 +0800)]
net/hns3: remove one IO barrier in Rx
When receiving a packet, hns3 hardware network engine firstly writes the
packet content to the memory pointed by the 'addr' field of the Rx
Buffer Descriptor, secondly fills the result of parsing the packet
include the valid field into the Rx Buffer Descriptor in one write
operation, and thirdly writes the number of the Buffer Descriptor not
processed by the driver to the HNS3_RING_RX_FBDNUM_REG register.
This patch optimizes the Rx performance by removing one rte_io_rmb call
in the '.rx_pkt_burst' ops implementation function named hns3_recv_pkts.
The change as follows:
1. Driver no longer read HNS3_RING_RX_FBDNUM_REG register, so remove one
rte_io_rmb call, and directly read the valid flag of Rx Buffer
Descriptor to check whether the BD is ready.
2. Delete the non_vld_descs field from the statistic information of the
hns3 driver because now it has become a common case that the valid
flag of Rx Buffer Descriptor read by the driver is invalid.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Yisen Zhuang [Thu, 9 Jan 2020 03:15:51 +0000 (11:15 +0800)]
net/hns3: reduce judgements of free Tx ring space
This patch reduces the number of the judgement of the free Tx ring space
in the 'tx_pkt_burst' ops implementation function to avoid performance
loss. According to hardware constraints, we need to reserve a Tx Buffer
Descriptor in the TX ring in hns3 network engine.
Signed-off-by: Yisen Zhuang <yisen.zhuang@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:50 +0000 (11:15 +0800)]
net/hns3: support setting VF MAC address by PF driver
Currently, we only support VF device is bound to vfio_pci or igb_uio and
then driven by DPDK driver when PF is driven by kernel mode hns3 ethdev
driver, VF is not supported when PF is driven by hns3 DPDK driver.
This patch adds support setting VF MAC address by hns3 PF kernel ethdev
driver on the host by "ip link set ..." command.
1) If the hns3 PF kernel ethdev driver sets the MAC address for VF
device before the initialization of the related VF device, hns3 VF
PMD driver should get the MAC address from PF driver through mailbox
and configure hardware using this MAC address in the initialization.
The hns3 VF PMD driver get the MAC address form PF driver, if
obtaining a non-zero MAC address from mailbox, VF driver will
configure hardware using it, otherwise using a random MAC address in
the initialization of VF device.
2) If the hns3 PF kernel ethdev driver sets the MAC address for VF
device after the initialization of the related VF device, the PF
driver will notify VF driver to reset VF device to make the new MAC
address effective immediately. The hns3 VF PMD driver should check
whether the MAC address has been changed by the PF kernel netdevice
driver, if changed VF driver should configure hardware using the new
MAC address in the recovering hardware configuration stage of the
reset process.
3) When user has configured a mac address for VF device by "ip link set
..." command based on the PF device, the hns3 PF kernel ethdev driver
does not allow VF driver to request reconfiguring a different default
mac address and return -EPREM to VF driver through mailbox.
Wei Hu (Xavier) [Thu, 9 Jan 2020 03:15:49 +0000 (11:15 +0800)]
net/hns3: support different numbers of Rx and Tx queues
Hardware does not support individually enable/disable/reset the Tx or Rx
queue in hns3 network engine, driver must enable/disable/reset Tx and Rx
queues at the same time.
Currently, hns3 PMD driver does not support the scenarios as below:
1) When calling the following function, the input parameter nb_rx_q and
nb_tx_q are not equal.
rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q,
uint16_t nb_tx_q,
const struct rte_eth_conf *dev_conf);
2) When calling the following functions to setup queues, the
cumulatively setup Rx queues are not the same as the setup Tx queues.
rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,,,);
rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id,,,);
However, these are common usage scenarios in some applications, such as,
l3fwd, ip_ressmbly and OVS-DPDK, etc.
This patch adds support for this usage of these functions by setup fake
Tx or Rx queues to adjust numbers of Tx/Rx queues. But these fake queues
are imperceptible, and can not be used by upper applications.
Signed-off-by: Huisong Li <lihuisong@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Rory Sexton [Mon, 13 Jan 2020 11:50:40 +0000 (11:50 +0000)]
ethdev: add L2TPv3 over IP header to flow API
This patch adds the new flow item RTE_FLOW_ITEM_TYPE_L2TPV3OIP to
flow API to match a L2TPv3 over IP header. This patch supports only
L2TPv3 over IP header format which is different to L2TPv2/L2TPv3
over UDP. The difference in header formats between L2TPv3 over IP
and L2TP over UDP require a separate implementation for each.
Signed-off-by: Rory Sexton <rory.sexton@intel.com> Signed-off-by: Dariusz Jagus <dariuszx.jagus@intel.com> Acked-by: Ori Kam <orika@mellanox.com>
Xiao Wang [Wed, 8 Jan 2020 13:37:08 +0000 (08:37 -0500)]
net/af_xdp: use single producer/consumer ring
The ring is used only by af_xdp PMD itself, so no need to support
multi-producer and multi-consumer mode. This patch changes the ring
to single-producer and single-consumer mode, which could yield better
performance for addr enqueue and dequeue.
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com> Tested-by: Ciara Loftus <ciara.loftus@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Dekel Peled [Wed, 8 Jan 2020 15:07:02 +0000 (17:07 +0200)]
app/testpmd: fix GENEVE flow item
Previous patch added support of GENEVE pattern item in flow rule.
Function flow_item_default_mask() was not updated, so using it with
GENEVE item returns null.
Using testpmd command "set raw_decap" or "set raw_encap" with
GENEVE item, without specifying any parameters, results in
segmentation fault.
This patch updates function flow_item_default_mask(),
adding case to handle GENEVE item.
Fixes: 0f4203fe9d18 ("app/testpmd: support GENEVE pattern item in flow rules") Cc: stable@dpdk.org Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
The tx_burst routine supporting multi-segment packets with
legacy MPW and without inline was missed, and there was no
valid selection for these options, patch adds the missing
routine.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:48 +0000 (10:39 +0800)]
net/i40e/base: add new link speed constants
This patch fixes 'NIC Link is Up, Unknown bps' message in dmesg
for 2.5Gb/5Gb speeds. This problem is fixed by adding constants
for VIRTCHNL_LINK_SPEED_2_5GB and VIRTCHNL_LINK_SPEED_5GB.
Fixes: a58860f68929 ("net/i40e/base: use new virtchnl header file") Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:46 +0000 (10:39 +0800)]
net/i40e/base: add CRC stripping capability
Some VFs may want to disable CRC stripping on incoming packets
so create an offload for that. The VF already sends information
about configuring it's RX queues so use that structure to
indicate that the CRC stripping should be enabled or not.
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Introduce offsets of firmware registers holding a number of EMP resets.
Implement offsets as a preprocessor's constants.
Required by drivers to read a number of EMP resets reported by FW.
Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:43 +0000 (10:39 +0800)]
net/i40e/base: add function to read LPI statistics
There was no time duration statistics for LPI (Low Power Idle)
in EEE (Energy-Efficient Ethernet).
Added new procedure to get duration values from FW.
Otherwise there is no available procedure to get tx_lpi_duration
and rx_lpi_duration values.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:42 +0000 (10:39 +0800)]
net/i40e/base: set PHY access flag on X722
The X722 FW API version 1.9 adds support for accessing PHY
registers with Admin Queue Command. This enables reading
EEPROM data from (Q)SFP+ transceivers, what was previously
possible only on X710 devices.
Signed-off-by: Adam Ludkiewicz <adam.ludkiewicz@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:39 +0000 (10:39 +0800)]
net/i40e/base: fix display of FEC settings
Fix display of FEC settings for ethtool.
This patch change variable 'phy.link_info.req_fec_info' sent to ethtool.
Without this patch wrong FEC settings can be shown.
Fixes: 1216fb9f0c8c ("net/i40e/base: store the requested FEC information") Signed-off-by: Jaroslaw Gawin <jaroslawx.gawin@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:38 +0000 (10:39 +0800)]
net/i40e/base: mark additional AQ bits as reserved
Mark bits 0xD through 0xF for the command flags of a cloud filter as
reserved. These bits are not yet defined and are considered as reserved
in the data sheet.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:36 +0000 (10:39 +0800)]
net/i40e/base: add function to set MAC type
Make i40e_set_mac_type() public. i40e driver requires
i40e_set_mac_type() to be public. It is required for recovery mode
handling. Without this patch recovery mode could not be detected at
probe() function.
Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:33 +0000 (10:39 +0800)]
net/i40e/base: add FWS1B register masks
Function check_recovery_mode had wrong if statement. Now we check proper
FWS1B register values, which are responsible for the recovery mode.
Recovery mode has 6 values in total. That's why we need 6 different
flags. Now in if statement we recognize type of mac and register value.
Without those changes driver could show wrong state.
Signed-off-by: Adrian Podlawski <adrian.podlawski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:32 +0000 (10:39 +0800)]
net/i40e/base: add drop mode parameter to set MAC config
This patch adds "drop mode" parameter to set mac config AQ command.
This bit controls the behavior when a no-drop packet is blocking a TC
queue.
0 – The PF driver is notified.
1 – The blocking packet is dropped and then the PF driver is notified.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:30 +0000 (10:39 +0800)]
net/i40e/base: fix Tx descriptors number
The existing driver allows setting the number of TX descriptors
to the value that is indivisible by 32. This is not properly
supported by x710 hardware. The patch limits the number of TX
descriptors to the whole value of 32.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:29 +0000 (10:39 +0800)]
net/i40e/base: update status codes
Add a few new status codes and rename a few to make them more
consistent. Error code are mapped to similar values as in
i40e_status.h, so as to be compatible with older VF drivers not using
this status enum.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:28 +0000 (10:39 +0800)]
net/i40e/base: backport style changes from upstream Linux
The upstream virtchnl.h has a few minor style differences to what is
out-of-tree, and there is no real reason we should prefer the current
style over whats upstream.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:27 +0000 (10:39 +0800)]
net/i40e/base: add function to read LPI counters
This change introduces new function i40e_get_lpi_counters() reading
Low Power Idle (LPI) mode counters from Energy Efficient Ethernet (EEE)
statistics. Since reading EEE statistics requires running DNL script,
function i40e_aq_run_phy_activity() able to run it, was implemented.
i40e_lpi_stat_update() was introduced as helper function for retrieving
LPI counters' values relative to given offsets.
This change also fixes order of fields in struct
i40e_aqc_run_phy_activity and introduces union in the struct
providing more descriptive names of fields depending on usage
(command or response).
Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:26 +0000 (10:39 +0800)]
net/i40e/base: fix missing link modes
Fix for missing "Supported link modes" and "Advertised link modes"
info in ethtool after changed speed on X722 devices with BASE-T PHY
with FW API version >= 1.7.
The same FW API version on X710 and X722 does not mean the same
feature set so the change was needed as mac type of the device
should also be checked instead of FW API version only.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:25 +0000 (10:39 +0800)]
net/i40e/base: read LPI status from external PHY
When external PHY is used, MAC register may not reflect actual
state of LPI. Add function reading it directly from PHY or MAC,
depending on what is supported by the device.
Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com> Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:23 +0000 (10:39 +0800)]
net/i40e/base: add function to get FW LLDP agent status
This change introduces i40e_get_fw_lldp_status() function capable of
reporting status of FW Link Layer Discovery Protocol (LLDP) agent.
Since reading LLDP configuration from NVM only gives information what
is the default state of FW LLDP agent after POR, this change introduces
more reliable method for checking if agent is enabled.
Current state of FW LLDP agent may be different if user disabled the
agent, so i40e_get_fw_lldp_status() uses LLDP MIB checking to determine
status of the agent.
Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:22 +0000 (10:39 +0800)]
net/i40e/base: improve AQ log granularity
This patch makes it possible to log only AQ descriptors, without the
entire AQ message buffers being dumped too. It should greatly reduce
kernel log size in cases where a full AQ dump is not needed.
Selection is made by setting flags in hw->debug_mask.
Additionally, some debug messages that preceded an AQ dump have been
moved to I40E_DEBUG_AQ_COMMAND class, which seems more appropriate.
Signed-off-by: Doug Dziggel <douglas.a.dziggel@intel.com> Signed-off-by: Robert Konklewski <robertx.konklewski@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:21 +0000 (10:39 +0800)]
net/i40e/base: add flags for PHY types
Adding bit flags to enable/disable EEE capability for 2.5GBase-T and
5GBase-T PHY types as well as 'Set autonomous EEE for relevant enabled
PHY types' flag.
Signed-off-by: Doug Dziggel <douglas.a.dziggel@intel.com> Signed-off-by: Michal Litwicki <michalx.litwicki@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:20 +0000 (10:39 +0800)]
net/i40e/base: check MAC type
Some features were introduced in different FW API version on XL710 and
X722 MACs. Others are available only on specific MAC type. Make sure
that they are properly assigned. Also fix the style issues reported by
current check-patch.
Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Xiaolong Ye [Mon, 13 Jan 2020 02:39:18 +0000 (10:39 +0800)]
net/i40e/base: support LLDP agent
This code implements changes necessary for LLDP Agent support.
1. Modified i40e_aq_start_lldp and i40e_aq_stop_lldp. Now Stop and Start
can also be persistent across power cycles.
2. Added new function i40e_aq_restore_lldp which restores factory
setting for LLDP Agent or gets its status.
Xiaolong Ye [Mon, 13 Jan 2020 02:39:14 +0000 (10:39 +0800)]
net/i40e/base: increase max VSI count for VFs
For historical reasons, we allowed 3 VSIs per VF, but never used more
than one. Now with ADq, we can use up to 4 VSIs per VF, so change this
value to match.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>
Harman Kalra [Thu, 12 Dec 2019 17:58:56 +0000 (17:58 +0000)]
net/octeontx2: fix getting supported packet types
Setting up supported ptypes using testpmd command is failing
because supported_ptypes_get callback will never return ptypes
supported, as NIX_RX_OFFLOAD_PTYPE_F bit in rx_offload_flags
is zero by default in testpmd.
Fixes: d2706e15e6fb ("net/octeontx2: support reduced set of packet types") Cc: stable@dpdk.org Signed-off-by: Harman Kalra <hkalra@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Dharmik Thakkar [Fri, 10 Jan 2020 20:51:51 +0000 (14:51 -0600)]
net/fm10k: remove local bool type
Replace 'typedef int bool' with 'stdbool.h' to avoid possible
multiple definitions of 'bool'.
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Xiao Wang <xiao.w.wang@intel.com>
Dharmik Thakkar [Fri, 10 Jan 2020 20:51:48 +0000 (14:51 -0600)]
net/vmxnet3: remove local bool type
Replace 'typedef int bool' with 'stdbool.h' to avoid possible
multiple definitions of 'bool'.
Remove 'typedef char Bool' and use 'bool' instead.
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Yong Wang <yongwang@vmware.com>
Dharmik Thakkar [Fri, 10 Jan 2020 20:51:46 +0000 (14:51 -0600)]
net/ixgbe: avoid multiple definitions of bool
Compilation issue arises due to multiple definitions of 'bool'
in 'ixgbe_ethdev.h'.
Error:
'/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c: In function
‘ixgbe_dev_setup_link_alarm_handler’:
/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:4075:43:
error: passing argument 3 of ‘ixgbe_get_link_capabilities’ from
incompatible pointer type [-Werror=incompatible-pointer-types]
ixgbe_get_link_capabilities(hw, &speed, &autoneg);
^
In file included from /dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:41:0:
/dpdk/drivers/net/ixgbe/base/ixgbe_api.h:63:5: note: expected
‘bool * {aka int *}’ but argument is of type ‘_Bool *’'
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Yunjian Wang [Tue, 7 Jan 2020 03:25:48 +0000 (11:25 +0800)]
net/vhost: check creation failure
The function eth_dev_vhost_create() could return errors,
the return value need to be checked.
Fixes: ee584e9710b9 ("vhost: add driver on top of the library") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang <wangyunjian@huawei.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Adrian Moreno [Wed, 4 Dec 2019 15:07:29 +0000 (16:07 +0100)]
vhost: add dynamic logging system
Currently there are a couple of limitations on the logging system: Most
of the logs are compiled out and both datapath and controlpath logs
share the same loglevel.
This patch tries to help fix that situation by:
- Splitting control plane and data plane logs
- Making control plane logs dynamic while keeping data plane logs
compiled out by default for log levels lower than the INFO.
As a result, two macros are introduced:
- VHOST_LOG_CONFIG(LEVEL, ...): Config path logging. Level can be
dynamically controlled by "lib.vhost.config"
- VHOST_LOG_DATA(LEVEL, ...): Data path logging. Level can be
dynamically controlled by "lib.vhost.data". Every log macro with a
level lower than RTE_LOG_DP_LEVEL (which defaults to RTE_LOG_INFO)
will be compiled out.
Signed-off-by: Adrian Moreno <amorenoz@redhat.com> Acked-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>