#
5dcde5c3 |
| 07-Jun-2024 |
jan <jan@openbsd.org> |
Use TCP Large Receive Offload in vmx(4).
tested by Hrvoje Popovski and bluhm@
ok bluhm@
|
#
1171ef0c |
| 21-May-2024 |
jan <jan@openbsd.org> |
Refactor vmx(4) receive offloading.
- avoid combination of M_TCP_CSUM_IN_OK and M_UDP_CSUM_IN_OK - remove useless letoh32() calls - simplify the IPv4 checksum flag check
ok bluhm@
|
#
0f9e9ec2 |
| 13-May-2024 |
jsg <jsg@openbsd.org> |
remove prototypes with no matching function ok mpi@
|
#
7f8ccd64 |
| 07-May-2024 |
jan <jan@openbsd.org> |
Additional check for TSO packets with 0 MSS.
Tested by bluhm
ok bluhm@
|
#
2964abb4 |
| 02-Apr-2024 |
jan <jan@openbsd.org> |
Implement and enable TSO in vmx(4)
Tested with IPv4/IPv6 and vlan(4).
ok jmatthew@
|
#
1bd4ef1c |
| 29-Feb-2024 |
jan <jan@openbsd.org> |
Add missing include of vlan.h in vmx(4).
ok bluhm@
|
#
e9542ffc |
| 15-Feb-2024 |
jan <jan@openbsd.org> |
vmx(4): Add TCP/UDP Checksum Offloading for IPv4/6
ok jmatthew@, bluhm@
|
#
d2ab39c1 |
| 09-Feb-2024 |
jan <jan@openbsd.org> |
vmx(4): add missing NVLAN checks
ok bluhm@
|
#
cf96265b |
| 10-Nov-2023 |
bluhm <bluhm@openbsd.org> |
Make ifq and ifiq interface MP safe.
Rename ifq_set_maxlen() to ifq_init_maxlen(). This function neither uses WRITE_ONCE() nor a mutex and is called before the ifq mutex is initialized. The new na
Make ifq and ifiq interface MP safe.
Rename ifq_set_maxlen() to ifq_init_maxlen(). This function neither uses WRITE_ONCE() nor a mutex and is called before the ifq mutex is initialized. The new name expresses that it should be used only during interface attach when there is no concurrency.
Protect ifq_len(), ifq_empty(), ifiq_len(), and ifiq_empty() with READ_ONCE(). They can be used without lock as they only read a single integer.
OK dlg@
show more ...
|
#
25640f7c |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
move rx head register writes out of rx completions and into rxfill
rxfill is always called after rx completions are done anyway, and it makes more sense to give the hypervisor an update about new mb
move rx head register writes out of rx completions and into rxfill
rxfill is always called after rx completions are done anyway, and it makes more sense to give the hypervisor an update about new mbufs on the ring after we put them there.
show more ...
|
#
90b61f46 |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
fix generation handling on rx ring wraparound.
|
#
df4baabe |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
white space fixes, no functional change
|
#
a7006e06 |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
add bus_dmamap_sync() ops around the rx handling.
|
#
c41cd7be |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
clear oactive on each txq, not just txq 0 when the iface goes up or down
if the driver did get into a situation where the tx rings were out of sync (which should be fixed now) and were stuck oactive
clear oactive on each txq, not just txq 0 when the iface goes up or down
if the driver did get into a situation where the tx rings were out of sync (which should be fixed now) and were stuck oactive, taking the interface down and up didnt clear that on anything except ring 0.
show more ...
|
#
69cf50f8 |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
add bus_dmamap_syncs around tx ring handling.
this copies the dmamem wrapper from ixl (which has been copied around lots of other places too) so it makes the bus_dma ops around them more consistent
add bus_dmamap_syncs around tx ring handling.
this copies the dmamem wrapper from ixl (which has been copied around lots of other places too) so it makes the bus_dma ops around them more consistent with other drivers. before this vmx would use the bus dma api to allocate physical memory, but then free the dmamap so it wasnt available for use with bus_dmamap_sync().
show more ...
|
#
535a77a4 |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
tighten up the tx start/completion handling of the producer and consumer.
the hypervisor obvious snoops the descriptor rings like crazy, and it can run and complete transmit of packets as soon as th
tighten up the tx start/completion handling of the producer and consumer.
the hypervisor obvious snoops the descriptor rings like crazy, and it can run and complete transmit of packets as soon as the ownership bit is set on the descriptor and before the txh register is updated with the producer index. txintr would only process tx completions if the producer and consumer indexes the driver maintains were different, but would then go and pop every packet the hardware said was done off the ring.
this changes txintr so it will only iterate over packets between the driver consumer and producer indexes. also, have the start code update the producer before flipping the ownership bit in the ring. this keeps the start and intr code in sync.
show more ...
|
#
7678612e |
| 30-Jul-2023 |
dlg <dlg@openbsd.org> |
post tx ring producer updates to each rings own txh register.
before this change all the different ring producer updates were posted to ring 0.
|
#
b8b3f978 |
| 11-Sep-2022 |
yasuoka <yasuoka@openbsd.org> |
Handle if pci_intr_establish() failed. This actually happens if many VMXNET3 are configured. from IIJ.
ok jmatthew
|
#
8d2c75e4 |
| 11-Mar-2022 |
mpi <mpi@openbsd.org> |
Constify struct cfattach.
|
#
4b1a56af |
| 09-Jan-2022 |
jsg <jsg@openbsd.org> |
spelling feedback and ok tb@ jmc@ ok ratchov@
|
#
1d900c3f |
| 09-Aug-2021 |
jan <jan@openbsd.org> |
Remove useless code. The driver_data is ignored by the host system. Set the pointer to all 1s as linux do.
OK patrick@
|
#
bc8858ce |
| 23-Jul-2021 |
jmatthew <jmatthew@openbsd.org> |
pci_intr_msix_count() is the function that drivers using multiple MSI-X vectors use to decide whether to use MSI-X, so make it return 0 if MSI is not enabled for the device.
fixes problems with ix(4
pci_intr_msix_count() is the function that drivers using multiple MSI-X vectors use to decide whether to use MSI-X, so make it return 0 if MSI is not enabled for the device.
fixes problems with ix(4) on older amd64 hardware and current riscv64 ok kettenis@ dlg@
show more ...
|
#
471f2571 |
| 12-Dec-2020 |
jan <jan@openbsd.org> |
Rename the macro MCLGETI to MCLGETL and removes the dead parameter ifp.
OK dlg@, bluhm@ No Opinion mpi@ Not against it claudio@
|
#
0cae21bd |
| 10-Jul-2020 |
patrick <patrick@openbsd.org> |
Change users of IFQ_SET_MAXLEN() and IFQ_IS_EMPTY() to use the "new" API.
ok dlg@ tobhe@
|
#
72b0de73 |
| 07-Jul-2020 |
dlg <dlg@openbsd.org> |
apparently vmx(4) needs a power of 2 number of interrupts.
so we pass INTRMAP_POWEROF2 to intrmap_create and things are better.
reported by and fixed by mark patruck. thanks :)
|