[PULL 00/50] Net patches

Jason Wang posted 50 patches 11 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230523073238.54236-1-jasowang@redhat.com
Maintainers: Akihiko Odaki <akihiko.odaki@daynix.com>, Sriram Yagnaraman <sriram.yagnaraman@est.tech>, Paolo Bonzini <pbonzini@redhat.com>, Jason Wang <jasowang@redhat.com>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, Cleber Rosa <crosa@redhat.com>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
MAINTAINERS                                        |   3 +-
docs/system/devices/igb.rst                        |  14 +-
hw/net/Kconfig                                     |   2 +-
hw/net/e1000.c                                     |  46 +-
hw/net/e1000e_core.c                               | 297 ++++-----
hw/net/e1000e_core.h                               |   2 -
hw/net/e1000x_common.c                             |  82 ++-
hw/net/e1000x_common.h                             |   9 +-
hw/net/e1000x_regs.h                               |  24 +-
hw/net/igb.c                                       |  10 +-
hw/net/igb_common.h                                |  24 +-
hw/net/igb_core.c                                  | 722 +++++++++++----------
hw/net/igb_regs.h                                  |  67 +-
hw/net/igbvf.c                                     |   7 -
hw/net/net_rx_pkt.c                                | 107 +--
hw/net/net_rx_pkt.h                                |  38 +-
hw/net/net_tx_pkt.c                                | 101 +--
hw/net/net_tx_pkt.h                                |  46 +-
hw/net/rtl8139.c                                   |   3 +
hw/net/trace-events                                |  19 +-
hw/net/virtio-net.c                                |   7 +-
hw/net/vmxnet3.c                                   |  22 +-
include/net/eth.h                                  |  29 +-
include/qemu/crc32c.h                              |   1 +
net/eth.c                                          | 100 +--
scripts/ci/org.centos/stream/8/x86_64/test-avocado |   3 +-
tests/avocado/netdev-ethtool.py                    |  17 +-
tests/qtest/libqos/igb.c                           |   1 +
util/crc32c.c                                      |   8 +
29 files changed, 979 insertions(+), 832 deletions(-)
[PULL 00/50] Net patches
Posted by Jason Wang 11 months, 2 weeks ago
The following changes since commit 886c0453cbf10eebd42a9ccf89c3e46eb389c357:

  Merge tag 'pull-qapi-2023-05-17-v2' of https://repo.or.cz/qemu/armbru into staging (2023-05-22 15:54:21 -0700)

are available in the git repository at:

  https://github.com/jasowang/qemu.git tags/net-pull-request

for you to fetch changes up to 792676c165159c11412346870fd58fd243ab2166:

  rtl8139: fix large_send_mss divide-by-zero (2023-05-23 15:20:15 +0800)

----------------------------------------------------------------

----------------------------------------------------------------
Akihiko Odaki (48):
      hw/net/net_tx_pkt: Decouple implementation from PCI
      hw/net/net_tx_pkt: Decouple interface from PCI
      e1000x: Fix BPRC and MPRC
      igb: Fix Rx packet type encoding
      igb: Do not require CTRL.VME for tx VLAN tagging
      igb: Clear IMS bits when committing ICR access
      net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
      e1000e: Always copy ethernet header
      igb: Always copy ethernet header
      Fix references to igb Avocado test
      tests/avocado: Remove unused imports
      tests/avocado: Remove test_igb_nomsi_kvm
      hw/net/net_tx_pkt: Remove net_rx_pkt_get_l4_info
      net/eth: Rename eth_setup_vlan_headers_ex
      e1000x: Share more Rx filtering logic
      e1000x: Take CRC into consideration for size check
      e1000x: Rename TcpIpv6 into TcpIpv6Ex
      e1000e: Always log status after building rx metadata
      igb: Always log status after building rx metadata
      igb: Remove goto
      igb: Read DCMD.VLE of the first Tx descriptor
      e1000e: Reset packet state after emptying Tx queue
      vmxnet3: Reset packet state after emptying Tx queue
      igb: Add more definitions for Tx descriptor
      igb: Share common VF constants
      igb: Fix igb_mac_reg_init coding style alignment
      igb: Clear EICR bits for delayed MSI-X interrupts
      e1000e: Rename a variable in e1000e_receive_internal()
      igb: Rename a variable in igb_receive_internal()
      net/eth: Use void pointers
      net/eth: Always add VLAN tag
      hw/net/net_rx_pkt: Enforce alignment for eth_header
      tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX
      igb: Implement MSI-X single vector mode
      igb: Use UDP for RSS hash
      igb: Implement Rx SCTP CSO
      igb: Implement Tx SCTP CSO
      igb: Strip the second VLAN tag for extended VLAN
      igb: Filter with the second VLAN tag for extended VLAN
      igb: Implement igb-specific oversize check
      igb: Implement Rx PTP2 timestamp
      igb: Implement Tx timestamp
      e1000e: Notify only new interrupts
      igb: Notify only new interrupts
      igb: Clear-on-read ICR when ICR.INTA is set
      vmxnet3: Do not depend on PC
      MAINTAINERS: Add a reviewer for network packet abstractions
      docs/system/devices/igb: Note igb is tested for DPDK

Stefan Hajnoczi (1):
      rtl8139: fix large_send_mss divide-by-zero

timothee.cocault@gmail.com (1):
      e1000e: Fix tx/rx counters

 MAINTAINERS                                        |   3 +-
 docs/system/devices/igb.rst                        |  14 +-
 hw/net/Kconfig                                     |   2 +-
 hw/net/e1000.c                                     |  46 +-
 hw/net/e1000e_core.c                               | 297 ++++-----
 hw/net/e1000e_core.h                               |   2 -
 hw/net/e1000x_common.c                             |  82 ++-
 hw/net/e1000x_common.h                             |   9 +-
 hw/net/e1000x_regs.h                               |  24 +-
 hw/net/igb.c                                       |  10 +-
 hw/net/igb_common.h                                |  24 +-
 hw/net/igb_core.c                                  | 722 +++++++++++----------
 hw/net/igb_regs.h                                  |  67 +-
 hw/net/igbvf.c                                     |   7 -
 hw/net/net_rx_pkt.c                                | 107 +--
 hw/net/net_rx_pkt.h                                |  38 +-
 hw/net/net_tx_pkt.c                                | 101 +--
 hw/net/net_tx_pkt.h                                |  46 +-
 hw/net/rtl8139.c                                   |   3 +
 hw/net/trace-events                                |  19 +-
 hw/net/virtio-net.c                                |   7 +-
 hw/net/vmxnet3.c                                   |  22 +-
 include/net/eth.h                                  |  29 +-
 include/qemu/crc32c.h                              |   1 +
 net/eth.c                                          | 100 +--
 scripts/ci/org.centos/stream/8/x86_64/test-avocado |   3 +-
 tests/avocado/netdev-ethtool.py                    |  17 +-
 tests/qtest/libqos/igb.c                           |   1 +
 util/crc32c.c                                      |   8 +
 29 files changed, 979 insertions(+), 832 deletions(-)
Re: [PULL 00/50] Net patches
Posted by Richard Henderson 11 months, 2 weeks ago
On 5/23/23 00:31, Jason Wang wrote:
> The following changes since commit 886c0453cbf10eebd42a9ccf89c3e46eb389c357:
> 
>    Merge tag 'pull-qapi-2023-05-17-v2' ofhttps://repo.or.cz/qemu/armbru  into staging (2023-05-22 15:54:21 -0700)
> 
> are available in the git repository at:
> 
>    https://github.com/jasowang/qemu.git  tags/net-pull-request
> 
> for you to fetch changes up to 792676c165159c11412346870fd58fd243ab2166:
> 
>    rtl8139: fix large_send_mss divide-by-zero (2023-05-23 15:20:15 +0800)
> 
> ----------------------------------------------------------------

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/8.1 as appropriate.


r~
Re: [PULL 00/50] Net patches
Posted by Michael Tokarev 11 months, 2 weeks ago
23.05.2023 10:31, Jason Wang wrote:

>    https://github.com/jasowang/qemu.git tags/net-pull-request

I might be wrong but it looks like besides the rtl8139 fix which went
to -stable already, and "e1000e: Fix tx/rx counters" change which has
been agreed upon before, there are a few other changes which are worth
to have in -stable, in 8.0 and some even in 7.2. What do you think,
which ones are important for -stable?

If there's stable material in the future, please Cc: qemu-stable@nongnu.org.

Thanks,

/mjt

> Akihiko Odaki (48):
>        hw/net/net_tx_pkt: Decouple implementation from PCI
>        hw/net/net_tx_pkt: Decouple interface from PCI
>        e1000x: Fix BPRC and MPRC
>        igb: Fix Rx packet type encoding
>        igb: Do not require CTRL.VME for tx VLAN tagging
>        igb: Clear IMS bits when committing ICR access
>        net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
>        e1000e: Always copy ethernet header
>        igb: Always copy ethernet header
>        Fix references to igb Avocado test
>        tests/avocado: Remove unused imports
>        tests/avocado: Remove test_igb_nomsi_kvm
>        hw/net/net_tx_pkt: Remove net_rx_pkt_get_l4_info
>        net/eth: Rename eth_setup_vlan_headers_ex
>        e1000x: Share more Rx filtering logic
>        e1000x: Take CRC into consideration for size check
>        e1000x: Rename TcpIpv6 into TcpIpv6Ex
>        e1000e: Always log status after building rx metadata
>        igb: Always log status after building rx metadata
>        igb: Remove goto
>        igb: Read DCMD.VLE of the first Tx descriptor
>        e1000e: Reset packet state after emptying Tx queue
>        vmxnet3: Reset packet state after emptying Tx queue
>        igb: Add more definitions for Tx descriptor
>        igb: Share common VF constants
>        igb: Fix igb_mac_reg_init coding style alignment
>        igb: Clear EICR bits for delayed MSI-X interrupts
>        e1000e: Rename a variable in e1000e_receive_internal()
>        igb: Rename a variable in igb_receive_internal()
>        net/eth: Use void pointers
>        net/eth: Always add VLAN tag
>        hw/net/net_rx_pkt: Enforce alignment for eth_header
>        tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX
>        igb: Implement MSI-X single vector mode
>        igb: Use UDP for RSS hash
>        igb: Implement Rx SCTP CSO
>        igb: Implement Tx SCTP CSO
>        igb: Strip the second VLAN tag for extended VLAN
>        igb: Filter with the second VLAN tag for extended VLAN
>        igb: Implement igb-specific oversize check
>        igb: Implement Rx PTP2 timestamp
>        igb: Implement Tx timestamp
>        e1000e: Notify only new interrupts
>        igb: Notify only new interrupts
>        igb: Clear-on-read ICR when ICR.INTA is set
>        vmxnet3: Do not depend on PC
>        MAINTAINERS: Add a reviewer for network packet abstractions
>        docs/system/devices/igb: Note igb is tested for DPDK
Re: [PULL 00/50] Net patches
Posted by Jason Wang 11 months, 2 weeks ago
On Wed, May 24, 2023 at 3:54 AM Michael Tokarev <mjt@tls.msk.ru> wrote:
>
> 23.05.2023 10:31, Jason Wang wrote:
>
> >    https://github.com/jasowang/qemu.git tags/net-pull-request
>
> I might be wrong but it looks like besides the rtl8139 fix which went
> to -stable already, and "e1000e: Fix tx/rx counters" change which has
> been agreed upon before, there are a few other changes which are worth
> to have in -stable, in 8.0 and some even in 7.2. What do you think,
> which ones are important for -stable?

I'm not sure, most fixes are for igb, considering igb is complicated
and just introduced since 8.0, it should be considered as a technical
preview somehow. Then I'm not sure whether or not it's worth it to
backport them. For the rest, it looks like it should be fine to go for
-stable.

Akihiko, what's your thoughts?

Thanks

>
> If there's stable material in the future, please Cc: qemu-stable@nongnu.org.
>
> Thanks,
>
> /mjt
>
> > Akihiko Odaki (48):
> >        hw/net/net_tx_pkt: Decouple implementation from PCI
> >        hw/net/net_tx_pkt: Decouple interface from PCI
> >        e1000x: Fix BPRC and MPRC
> >        igb: Fix Rx packet type encoding
> >        igb: Do not require CTRL.VME for tx VLAN tagging
> >        igb: Clear IMS bits when committing ICR access
> >        net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
> >        e1000e: Always copy ethernet header
> >        igb: Always copy ethernet header
> >        Fix references to igb Avocado test
> >        tests/avocado: Remove unused imports
> >        tests/avocado: Remove test_igb_nomsi_kvm
> >        hw/net/net_tx_pkt: Remove net_rx_pkt_get_l4_info
> >        net/eth: Rename eth_setup_vlan_headers_ex
> >        e1000x: Share more Rx filtering logic
> >        e1000x: Take CRC into consideration for size check
> >        e1000x: Rename TcpIpv6 into TcpIpv6Ex
> >        e1000e: Always log status after building rx metadata
> >        igb: Always log status after building rx metadata
> >        igb: Remove goto
> >        igb: Read DCMD.VLE of the first Tx descriptor
> >        e1000e: Reset packet state after emptying Tx queue
> >        vmxnet3: Reset packet state after emptying Tx queue
> >        igb: Add more definitions for Tx descriptor
> >        igb: Share common VF constants
> >        igb: Fix igb_mac_reg_init coding style alignment
> >        igb: Clear EICR bits for delayed MSI-X interrupts
> >        e1000e: Rename a variable in e1000e_receive_internal()
> >        igb: Rename a variable in igb_receive_internal()
> >        net/eth: Use void pointers
> >        net/eth: Always add VLAN tag
> >        hw/net/net_rx_pkt: Enforce alignment for eth_header
> >        tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX
> >        igb: Implement MSI-X single vector mode
> >        igb: Use UDP for RSS hash
> >        igb: Implement Rx SCTP CSO
> >        igb: Implement Tx SCTP CSO
> >        igb: Strip the second VLAN tag for extended VLAN
> >        igb: Filter with the second VLAN tag for extended VLAN
> >        igb: Implement igb-specific oversize check
> >        igb: Implement Rx PTP2 timestamp
> >        igb: Implement Tx timestamp
> >        e1000e: Notify only new interrupts
> >        igb: Notify only new interrupts
> >        igb: Clear-on-read ICR when ICR.INTA is set
> >        vmxnet3: Do not depend on PC
> >        MAINTAINERS: Add a reviewer for network packet abstractions
> >        docs/system/devices/igb: Note igb is tested for DPDK
>
Re: [PULL 00/50] Net patches
Posted by Akihiko Odaki 11 months, 2 weeks ago
On 2023/05/24 13:06, Jason Wang wrote:
> On Wed, May 24, 2023 at 3:54 AM Michael Tokarev <mjt@tls.msk.ru> wrote:
>>
>> 23.05.2023 10:31, Jason Wang wrote:
>>
>>>     https://github.com/jasowang/qemu.git tags/net-pull-request
>>
>> I might be wrong but it looks like besides the rtl8139 fix which went
>> to -stable already, and "e1000e: Fix tx/rx counters" change which has
>> been agreed upon before, there are a few other changes which are worth
>> to have in -stable, in 8.0 and some even in 7.2. What do you think,
>> which ones are important for -stable?
> 
> I'm not sure, most fixes are for igb, considering igb is complicated
> and just introduced since 8.0, it should be considered as a technical
> preview somehow. Then I'm not sure whether or not it's worth it to
> backport them. For the rest, it looks like it should be fine to go for
> -stable.
> 
> Akihiko, what's your thoughts? >
> Thanks

I think it is fine to backport all of patches with Fixes: tags as there 
are only five such patches for igb. Namely, they are:
- [PULL 05/50] igb: Fix Rx packet type encoding
- [PULL 06/50] igb: Do not require CTRL.VME for tx VLAN tagging
- [PULL 07/50] igb: Clear IMS bits when committing ICR access
- [PULL 08/50] net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
- [PULL 10/50] igb: Always copy ethernet header

That said, if that looks too many, you may backport only the last two 
patches, which fixes possible out-of-bounds accesses:
- [PULL 08/50] net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols()
- [PULL 10/50] igb: Always copy ethernet header

The other patches are just behavioral changes which do not corrupt QEMU 
state so they are not that important.

Regards,
Akihiko Odaki