[PATCH v3 00/13] Introduce igb

Akihiko Odaki posted 13 patches 2 weeks, 2 days ago
There is a newer version of this series
MAINTAINERS                                   |    9 +
docs/system/device-emulation.rst              |    1 +
docs/system/devices/igb.rst                   |   71 +
hw/net/Kconfig                                |    5 +
hw/net/e1000.c                                |    1 +
hw/net/e1000_common.h                         |  102 +
hw/net/e1000_regs.h                           |  927 +---
hw/net/e1000e.c                               |    3 +-
hw/net/e1000e_core.c                          |    1 +
hw/net/e1000x_common.c                        |    1 +
hw/net/e1000x_common.h                        |   74 -
hw/net/e1000x_regs.h                          |  940 ++++
hw/net/igb.c                                  |  614 +++
hw/net/igb_common.h                           |  146 +
hw/net/igb_core.c                             | 4042 +++++++++++++++++
hw/net/igb_core.h                             |  146 +
hw/net/igb_regs.h                             |  648 +++
hw/net/igbvf.c                                |  327 ++
hw/net/meson.build                            |    2 +
hw/net/net_tx_pkt.c                           |    6 +
hw/net/net_tx_pkt.h                           |    8 +
hw/net/trace-events                           |   32 +
hw/pci/pcie_sriov.c                           |    5 +
include/hw/pci/pcie_sriov.h                   |    3 +
.../org.centos/stream/8/x86_64/test-avocado   |    1 +
tests/avocado/igb.py                          |   38 +
tests/qtest/e1000e-test.c                     |   17 +-
tests/qtest/fuzz/generic_fuzz_configs.h       |    5 +
tests/qtest/igb-test.c                        |  243 +
tests/qtest/libqos/e1000e.c                   |   12 -
tests/qtest/libqos/e1000e.h                   |   14 +
tests/qtest/libqos/igb.c                      |  185 +
tests/qtest/libqos/meson.build                |    1 +
tests/qtest/meson.build                       |    1 +
34 files changed, 7613 insertions(+), 1018 deletions(-)
create mode 100644 docs/system/devices/igb.rst
create mode 100644 hw/net/e1000_common.h
create mode 100644 hw/net/e1000x_regs.h
create mode 100644 hw/net/igb.c
create mode 100644 hw/net/igb_common.h
create mode 100644 hw/net/igb_core.c
create mode 100644 hw/net/igb_core.h
create mode 100644 hw/net/igb_regs.h
create mode 100644 hw/net/igbvf.c
create mode 100644 tests/avocado/igb.py
create mode 100644 tests/qtest/igb-test.c
create mode 100644 tests/qtest/libqos/igb.c
[PATCH v3 00/13] Introduce igb
Posted by Akihiko Odaki 2 weeks, 2 days ago
Based-on: <20230124043143.5515-1-akihiko.odaki@daynix.com>
([PATCH v2 00/26] e1000x cleanups (preliminary for IGB))

igb is a family of Intel's gigabit ethernet controllers. This series implements
82576 emulation in particular. You can see the last patch for the documentation.

Note that there is another effort to bring 82576 emulation. This series was
developed independently by Sriram Yagnaraman.
https://lists.gnu.org/archive/html/qemu-devel/2022-12/msg04670.html

It is possible to merge the work from Sriram Yagnaraman and to cherry-pick
useful changes from this series later.

I think there are several different ways to get the changes into the mainline.
I'm open to any options.

V2 -> V3:
- Rebased.
- Fixed PCIDevice reference in hw/net/igbvf.c.
- Fixed TX packet switching when VM loopback is enabled.
- Fixed VMDq enablement check.
- Fixed RX descriptor length parser.
- Fixed the definitions of RQDPC readers.
- Implemented VLAN VM filter.
- Implemented VT_CTL.Def_PL.
- Implemented the combination of VMDq and RSS.
- Noted that igb is tested with Windows HLK.

V1 -> V2:
- Spun off e1000e general improvements to a distinct series.
- Restored vnet_hdr offload as there seems nothing preventing from that.

Akihiko Odaki (13):
  hw/net/net_tx_pkt: Introduce net_tx_pkt_get_eth_hdr
  pcie: Introduce pcie_sriov_num_vfs
  e1000: Split header files
  igb: Copy e1000e code
  igb: Rename identifiers
  igb: Build igb
  igb: Transform to 82576 implementation
  tests/qtest/e1000e-test: Fabricate ethernet header
  tests/qtest/libqos/e1000e: Export macreg functions
  tests/qtest/libqos/igb: Copy e1000e code
  tests/qtest/libqos/igb: Transform to igb tests
  tests/avocado: Add igb test
  docs/system/devices/igb: Add igb documentation

 MAINTAINERS                                   |    9 +
 docs/system/device-emulation.rst              |    1 +
 docs/system/devices/igb.rst                   |   71 +
 hw/net/Kconfig                                |    5 +
 hw/net/e1000.c                                |    1 +
 hw/net/e1000_common.h                         |  102 +
 hw/net/e1000_regs.h                           |  927 +---
 hw/net/e1000e.c                               |    3 +-
 hw/net/e1000e_core.c                          |    1 +
 hw/net/e1000x_common.c                        |    1 +
 hw/net/e1000x_common.h                        |   74 -
 hw/net/e1000x_regs.h                          |  940 ++++
 hw/net/igb.c                                  |  614 +++
 hw/net/igb_common.h                           |  146 +
 hw/net/igb_core.c                             | 4042 +++++++++++++++++
 hw/net/igb_core.h                             |  146 +
 hw/net/igb_regs.h                             |  648 +++
 hw/net/igbvf.c                                |  327 ++
 hw/net/meson.build                            |    2 +
 hw/net/net_tx_pkt.c                           |    6 +
 hw/net/net_tx_pkt.h                           |    8 +
 hw/net/trace-events                           |   32 +
 hw/pci/pcie_sriov.c                           |    5 +
 include/hw/pci/pcie_sriov.h                   |    3 +
 .../org.centos/stream/8/x86_64/test-avocado   |    1 +
 tests/avocado/igb.py                          |   38 +
 tests/qtest/e1000e-test.c                     |   17 +-
 tests/qtest/fuzz/generic_fuzz_configs.h       |    5 +
 tests/qtest/igb-test.c                        |  243 +
 tests/qtest/libqos/e1000e.c                   |   12 -
 tests/qtest/libqos/e1000e.h                   |   14 +
 tests/qtest/libqos/igb.c                      |  185 +
 tests/qtest/libqos/meson.build                |    1 +
 tests/qtest/meson.build                       |    1 +
 34 files changed, 7613 insertions(+), 1018 deletions(-)
 create mode 100644 docs/system/devices/igb.rst
 create mode 100644 hw/net/e1000_common.h
 create mode 100644 hw/net/e1000x_regs.h
 create mode 100644 hw/net/igb.c
 create mode 100644 hw/net/igb_common.h
 create mode 100644 hw/net/igb_core.c
 create mode 100644 hw/net/igb_core.h
 create mode 100644 hw/net/igb_regs.h
 create mode 100644 hw/net/igbvf.c
 create mode 100644 tests/avocado/igb.py
 create mode 100644 tests/qtest/igb-test.c
 create mode 100644 tests/qtest/libqos/igb.c

-- 
2.39.0