Message ID | 20230223105057.144309-1-akihiko.odaki@daynix.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce igb | expand |
On Thu, Feb 23, 2023 at 6:51 PM Akihiko Odaki <akihiko.odaki@daynix.com> wrote: > > Based-on: <20230223102018.141748-1-akihiko.odaki@daynix.com> > ([PATCH v6 00/34] 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 I've queued this series with some fixes about the compiler warnings about the end of statement just after "default:" It mainly the user of commit 5bf7f8430247e7bff7e2010de25556aeb6adb548 Author: Akihiko Odaki <akihiko.odaki@daynix.com> Date: Thu Feb 23 19:50:49 2023 +0900 net/eth: Introduce EthL4HdrProto That changes virtio-net, e1000e, and igb. Please check the changes and post patches on top if I was wrong. diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index 239875dd89..4d9679ca0b 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -1275,6 +1275,7 @@ e1000e_build_rx_metadata(E1000ECore *core, break; default: + break; } } else { trace_e1000e_rx_metadata_l4_cso_disabled(); diff --git a/hw/net/igb_core.c b/hw/net/igb_core.c index d779c3dc14..a7c7bfdc75 100644 --- a/hw/net/igb_core.c +++ b/hw/net/igb_core.c @@ -1239,6 +1239,7 @@ igb_build_rx_metadata(IGBCore *core, break; default: + goto func_exit; } } else { trace_e1000e_rx_metadata_l4_cso_disabled(); diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 4b1d387356..3524f02f2e 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1751,6 +1751,7 @@ static uint8_t virtio_net_get_hash_type(bool hasip4, break; default: + break; } if (types & VIRTIO_NET_RSS_HASH_TYPE_IPv4) { @@ -1777,6 +1778,7 @@ static uint8_t virtio_net_get_hash_type(bool hasip4, break; default: + break; } if (types & VIRTIO_NET_RSS_HASH_TYPE_IP_EX) { > > - V8 -> V9: > - Rebased. > - Added patch "net/eth: Introduce EthL4HdrProto". This is not strictly necessary > yet but I'm still adding it because it will be necessary soon and it touches > some code common for igb and e1000e. > - Replaced Linux internal types in hw/net/igb_regs.h with standard ones. > > V7 -> V8: > - Removed obsolete patch > "hw/net/net_tx_pkt: Introduce net_tx_pkt_get_eth_hdr" (Cédric Le Goater) > > V6 -> V7: > - Reordered statements in igb_receive_internal() so that checksum will be > calculated only once and it will be more close to e1000e_receive_internal(). > > V5 -> V6: > - Rebased. > - Renamed "test" to "packet" in tests/qtest/e1000e-test.c. > - Fixed Rx logic so that a Rx pool without enough space won't prevent other > pools from receiving, based on Sriram Yagnaraman's work. > > V4 -> V5: > - Rebased. > - Squashed patches to copy from e1000e code and modify it. > - Listed the implemented features. > - Added a check for interrupts availablity on PF. > - Fixed the declaration of igb_receive_internal(). (Sriram Yagnaraman) > > V3 -> V4: > - Rebased. > - Corrected PCIDevice specified for DMA. > > 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 (9): > net/eth: Introduce EthL4HdrProto > pcie: Introduce pcie_sriov_num_vfs > e1000: Split header files > Intrdocue igb device emulation > tests/qtest/e1000e-test: Fabricate ethernet header > tests/qtest/libqos/e1000e: Export macreg functions > igb: Introduce qtest for igb device > 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 | 954 +--- > hw/net/e1000e.c | 3 +- > hw/net/e1000e_core.c | 60 +- > hw/net/e1000x_common.c | 1 + > hw/net/e1000x_common.h | 74 - > hw/net/e1000x_regs.h | 967 ++++ > hw/net/igb.c | 615 +++ > hw/net/igb_common.h | 146 + > hw/net/igb_core.c | 4076 +++++++++++++++++ > 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_rx_pkt.c | 48 +- > hw/net/net_rx_pkt.h | 5 +- > hw/net/trace-events | 40 +- > hw/net/virtio-net.c | 67 +- > hw/net/vmxnet3.c | 22 +- > hw/pci/pcie_sriov.c | 5 + > include/hw/pci/pcie_sriov.h | 3 + > include/net/eth.h | 8 +- > net/eth.c | 26 +- > .../org.centos/stream/8/x86_64/test-avocado | 1 + > tests/avocado/igb.py | 38 + > tests/qtest/e1000e-test.c | 25 +- > 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 + > 38 files changed, 7809 insertions(+), 1148 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.1 >