xref: /qemu/docs/system/devices/igb.rst (revision c37d98f3)
1136e9dbaSAkihiko Odaki.. SPDX-License-Identifier: GPL-2.0-or-later
2136e9dbaSAkihiko Odaki.. _igb:
3136e9dbaSAkihiko Odaki
4136e9dbaSAkihiko Odakiigb
5136e9dbaSAkihiko Odaki---
6136e9dbaSAkihiko Odaki
7136e9dbaSAkihiko Odakiigb is a family of Intel's gigabit ethernet controllers. In QEMU, 82576
8136e9dbaSAkihiko Odakiemulation is implemented in particular. Its datasheet is available at [1]_.
9136e9dbaSAkihiko Odaki
10136e9dbaSAkihiko OdakiThis implementation is expected to be useful to test SR-IOV networking without
11136e9dbaSAkihiko Odakirequiring physical hardware.
12136e9dbaSAkihiko Odaki
13136e9dbaSAkihiko OdakiLimitations
14136e9dbaSAkihiko Odaki===========
15136e9dbaSAkihiko Odaki
16136e9dbaSAkihiko OdakiThis igb implementation was tested with Linux Test Project [2]_ and Windows HLK
17*c37d98f3SAkihiko Odaki[3]_ during the initial development. Later it was also tested with DPDK Test
18*c37d98f3SAkihiko OdakiSuite [4]_. The command used when testing with LTP is:
19136e9dbaSAkihiko Odaki
20136e9dbaSAkihiko Odaki.. code-block:: shell
21136e9dbaSAkihiko Odaki
22136e9dbaSAkihiko Odaki  network.sh -6mta
23136e9dbaSAkihiko Odaki
24136e9dbaSAkihiko OdakiBe aware that this implementation lacks many functionalities available with the
25136e9dbaSAkihiko Odakiactual hardware, and you may experience various failures if you try to use it
26*c37d98f3SAkihiko Odakiwith a different operating system other than DPDK, Linux, and Windows or if you
27*c37d98f3SAkihiko Odakitry functionalities not covered by the tests.
28136e9dbaSAkihiko Odaki
29136e9dbaSAkihiko OdakiUsing igb
30136e9dbaSAkihiko Odaki=========
31136e9dbaSAkihiko Odaki
32136e9dbaSAkihiko OdakiUsing igb should be nothing different from using another network device. See
33d6359e15SPeter Maydell:ref:`Network_emulation` in general.
34136e9dbaSAkihiko Odaki
35136e9dbaSAkihiko OdakiHowever, you may also need to perform additional steps to activate SR-IOV
36*c37d98f3SAkihiko Odakifeature on your guest. For Linux, refer to [5]_.
37136e9dbaSAkihiko Odaki
38136e9dbaSAkihiko OdakiDeveloping igb
39136e9dbaSAkihiko Odaki==============
40136e9dbaSAkihiko Odaki
41136e9dbaSAkihiko Odakiigb is the successor of e1000e, and e1000e is the successor of e1000 in turn.
42136e9dbaSAkihiko OdakiAs these devices are very similar, if you make a change for igb and the same
43136e9dbaSAkihiko Odakichange can be applied to e1000e and e1000, please do so.
44136e9dbaSAkihiko Odaki
45136e9dbaSAkihiko OdakiPlease do not forget to run tests before submitting a change. As tests included
46136e9dbaSAkihiko Odakiin QEMU is very minimal, run some application which is likely to be affected by
47136e9dbaSAkihiko Odakithe change to confirm it works in an integrated system.
48136e9dbaSAkihiko Odaki
49136e9dbaSAkihiko OdakiTesting igb
50136e9dbaSAkihiko Odaki===========
51136e9dbaSAkihiko Odaki
52136e9dbaSAkihiko OdakiA qtest of the basic functionality is available. Run the below at the build
53136e9dbaSAkihiko Odakidirectory:
54136e9dbaSAkihiko Odaki
55136e9dbaSAkihiko Odaki.. code-block:: shell
56136e9dbaSAkihiko Odaki
57136e9dbaSAkihiko Odaki  meson test qtest-x86_64/qos-test
58136e9dbaSAkihiko Odaki
59136e9dbaSAkihiko Odakiethtool can test register accesses, interrupts, etc. It is automated as an
60136e9dbaSAkihiko OdakiAvocado test and can be ran with the following command:
61136e9dbaSAkihiko Odaki
62136e9dbaSAkihiko Odaki.. code:: shell
63136e9dbaSAkihiko Odaki
648e6c718aSAkihiko Odaki  make check-avocado AVOCADO_TESTS=tests/avocado/netdev-ethtool.py
65136e9dbaSAkihiko Odaki
66136e9dbaSAkihiko OdakiReferences
67136e9dbaSAkihiko Odaki==========
68136e9dbaSAkihiko Odaki
69136e9dbaSAkihiko Odaki.. [1] https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82576eb-gigabit-ethernet-controller-datasheet.pdf
70136e9dbaSAkihiko Odaki.. [2] https://github.com/linux-test-project/ltp
71136e9dbaSAkihiko Odaki.. [3] https://learn.microsoft.com/en-us/windows-hardware/test/hlk/
72*c37d98f3SAkihiko Odaki.. [4] https://doc.dpdk.org/dts/gsg/
73*c37d98f3SAkihiko Odaki.. [5] https://docs.kernel.org/PCI/pci-iov-howto.html
74