ixgbe | Intel 10GbE NIC driver
kandi X-RAY | ixgbe Summary
kandi X-RAY | ixgbe Summary
This repository is based on the Intel 10GbE NIC driver version 3.12.6
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ixgbe
ixgbe Key Features
ixgbe Examples and Code Snippets
Community Discussions
Trending Discussions on ixgbe
QUESTION
- Pktgen version 21.01.0
- DPDK version 20.11
- OS: ubuntu 18.04
- NIC: Mellanox
ANSWER
Answered 2021-Jan-18 at 14:32It is evident the pktgen
utility is
- either not built with Mellanox PMD mlx5 based on the logs
- or pktgen is not passed shared library for initlailizing MLX5 PMD
Since the DPDK used for building is DPDK version 20.11. The probability of pktgen build with the shared library is high. Passing eal argument as -d librte_net_mlx5.so
should resolve the shared library issue.
Reason for not suggesting static library path is because of the logs of testpmd shows MLX5 is identified while eth0 and eth1 are non-existing interface and skipping PCAP PMD
QUESTION
I called rte_eth_dev_stop() on my Ethernet Controller 10G X550T card , after this when I make a call to rte_eth_get_link_nowait() on same device , the link read from link register of the device still shows as UP!
But when I bring the device link down by bringing the other end of the connection physically down, the rte_eth_get_link_nowait() call shows the link as DOWN!
The server is running on a bare metal architecture. The DPDK PMD is ixgbe. DPDK version 18.05
why is this so ? any idea?
...ANSWER
Answered 2020-Oct-23 at 03:10DPDK API rte_eth_dev_set_link_down
is responsible for Link state down. While DPDK API rte_eth_dev_stop
is responsible for internally stopping rx-tx queues and thereby making rte_eth_rx_burst
and rte_eth_tx_burst` as 0 always.
Hence the expectation rte_eth_dev_stop to bring link state down for X550 is not true with DPDK PMD ixgbe.
Note:
- unlike Linux
ifconfig up and ifconfig down
, the user space PMD dev_configure, start and stop are different. Please feel free to check the details in code. - with DPDK 20.11 return value is updated from
void
toint
https://doc.dpdk.org/guides/rel_notes/release_20_11.html?highlight=rte_eth_dev_stop - Since
link state is governed by HW registers in the ASIC, different PMD may work differently
. Hence please check the code for other PMD for more details.
QUESTION
I'm trying to use dpdk-pdump capture tx packets from NIC under dpdk control.
Setup- DPDK 18.11.4
- In
config/common_base
,CONFIG_RTE_LIBRTE_PMD_PCAP=y
andCONFIG_RTE_LIBRTE_PDUMP=y
are already set - After rebuilding,
CONFIG_RTE_LIBRTE_PMD_PCAP=y
andCONFIG_RTE_LIBRTE_PDUMP=y
are also set inx86_64-native-linuxapp-gcc/.config
rte_pdump_init(NULL)
andrte_pdump_uninit()
are called in primary process's init and destroy function- DPDK interface
ANSWER
Answered 2020-Jul-13 at 04:31I am able to get it working properly without issues. Following is the steps followed
- DPDK: download 18.11.4
http://static.dpdk.org/rel/dpdk-18.11.4.tar.gz
- built DPDK with PCAP PMD enabled
- modify skeleton main: add
rte_pdump_init(NULL)
right afterrte_eal_init
- modify skeleton lcore_main: modify
RTE_ETH_FOREACH_DEV(port)
withfor (port = 0; port < 2; port++)
- bullt:
LD_FLAGS="-lrte_pmd_pcap" make
- Run primary
- Run pdump secondary (if whitelist is passed in primary pass the same here to)
QUESTION
Test Setup: Linux-Server-1 Port-A <==> Port 1 DPDK-Server-2 Port 2 <==> Port B Linux-Server-2
.
Steps Followed:
- The physical links are connected
- Devices bound to DPDK:
ANSWER
Answered 2020-Jul-02 at 09:20Explanation:
- Running
ethtool -while application is down is not a trusted way. Depending upon DPDK version
rte_eth_dev_closeor
rte_cleanup` would not have put the NIC in the right state. - But while running the application, if DPDK port-1 is coming as down following can be reason
a. Server-3 port might be auto-negotiating with DPDK port-1 leading to rte_eth_link_get_nowait
to report as down
. (right API is to invoke rte_eth_link_get).
b. The Server-3 port might manually be configured in non-duplex and non 10G mode.
the right way to debug is to
- put DPDK port back to the kernel as suggested in comments.
- cross-check auto-neg and speed.
- configure on server-1 and server-3 with
no auto-neg, 10G, full-duplex
- bind the server-2 port-0 and port-1 to DPDK.
- run DPDK test-pipeline if possible with whitelist.
- run
ethtool -t
for port-B on server-3 to cross the results too.
note: this will help you identify if it server-3 ports driver/firmware which acts differently with auto-neg as the ports are sending and receiving packets is successful with example/skeleton
with command $RTE_SDK/examples/skeleton/build/basicfwd -l 1
[EDIT-1] based on the update from the comment it looks like rte_eth_link_get_nowait
is the fast approach, the right one is to be used with rte_eth_link_get
. Requested for online debug with the author
[EDIT-2] based on the comment rte_eth_link_get
has done the desired job. As I recollect rte_eth_link_get
wait for the actual readout from physical device registers, while rte_eth_link_get_nowait
is invoked without wait. hence the right values are populated for rte_eth_link_get
.
QUESTION
I have a program using DPDK and I am compiling it using the Makefile provided in the examples.
If i compile the program as an APP (as describe here), all goes well. However, my code is part of a larger project, for which the use of a separate makefile causes a lot of troubles. So I bundled my code in a library, as described in the same page.
The program that calls the functions in the library (to initialize the EAL) is getting this error:
...ANSWER
Answered 2018-Sep-13 at 08:13compile it (with all the needed libraries):
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install ixgbe
Move the base driver tar file to the directory of your choice. For example, use /home/username/ixgbe or /usr/local/src/ixgbe.
Untar/unzip archive: tar zxf ixgbe-x.x.x.tar.gz
Change to the driver src directory: cd ixgbe-x.x.x/src/
Compile the driver module: make install The binary will be installed as: /lib/modules/[KERNEL_VERSION]/kernel/drivers/net/ixgbe/ixgbe.[k]o The install locations listed above are the default locations. They might not be correct for certain Linux distributions.
Load the module: For kernel 2.6.x, use the modprobe command: modprobe ixgbe <parameter>=<value> Note that for 2.6 kernels the insmod command can be used if the full path to the driver module is specified. For example: insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko With 2.6 based kernels also make sure that older ixgbe drivers are removed from the kernel, before loading the new module: rmmod ixgbe; modprobe ixgbe
Assign an IP address to the interface by entering the following, where x is the interface number: ifconfig ethX <IP_address> netmask <netmask>
Verify that the interface works. Enter the following, where <IP_address> is the IP address for another machine on the same subnet as the interface that is being tested: ping <IP_address>
If your kernel supports DCA, the driver will build by default with DCA enabled.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page