History log of /freebsd-10-stable/sys/dev/hyperv/netvsc/hn_rndis.c
Revision Date Author Comments
# 324574 13-Oct-2017 sephe

MFC 324489,324516

324489
hyperv/hn: Workaround erroneous hash type observed on WS2016.

Background:
- UDP 4-tuple hash type is unconditionally enabled in Hyper-V on WS2016,
which is _not_ affected by NDIS_OBJTYPE_RSS_PARAMS.
- Non-fragment UDP/IPv4 datagrams' hash type is delivered to VM as
TCP_IPV4.

Currently this erroneous behavior only applies to WS2016/Windows10.

Force l3/l4 protocol check, if the RXed packet's hash type is TCP_IPV4,
and the Hyper-V is running on WS2016/Windows10. If the RXed packet is
UDP datagram, adjust mbuf hash type to UDP_IPV4.

Sponsored by: Microsoft

324516
hyperv/hn: Workaround erroneous hash type observed on WS2016 for VF.

The background was described in r324489.

Sponsored by: Microsoft


# 324466 10-Oct-2017 sephe

MFC 323728,323729

323728
hyperv/hn: Fix MTU setting

- Add size of an ethernet header to the value configured to NVS. This
does not seem to have any effects if MTU is 1500, but fix hypervisor
side's setting if MTU > 1500.
- Override the MTU setting according to the view from the hypervisor
side.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12352

323729
hyperv/hn: Incease max supported MTU

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12365


# 324465 10-Oct-2017 sephe

MFC 323727,324316

323727
hyperv/hn: Apply VF's RSS setting

Since in Azure SYN and SYN|ACK go through the synthetic parts while the
rest of the same TCP flow goes through the VF, apply VF's RSS settings
to synthetic parts to have a consistent hash value/type for the same TCP
flow.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12333

324316
hyperv/hn: Fix options RSS building

Reported by: np
Sponsored by: Microsoft


# 324464 10-Oct-2017 sephe

MFC 323176

hyperv/hn: Log RSS capabilities mask.

This helps to detect when UDP hash types can be supported.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12177


# 324461 10-Oct-2017 sephe

MFC 322488

hyperv: Update copyright for the files changed in 2017

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D11982


# 316672 10-Apr-2017 sephe

MFC 316520

hyperv/hn: Fixat RNDIS rxfilter after the successful RNDIS init.

Under certain conditions on certain versions of Hyper-V, the RNDIS
rxfilter is _not_ zero on the hypervisor side after the successful
RNDIS initialization, which breaks the assumption of any following
code (well, it breaks the RNDIS API contract actually). Clear the
RNDIS rxfilter explicitly, drain packets sneaking through, and drain
the interrupt taskqueues scheduled due to the stealth packets.

Reported by: dexuan@
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D10230


# 315437 17-Mar-2017 sephe

MFC 314382,314483-314485

314382
hyperv/hn: Simplify RNDIS packet data offset calculation.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D9699

314483
hyperv/hn: Simplify RNDIS packet total length calculation.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D9712

314484
hyperv/hn: Make sure that RNDIS packet message is at least 4B aligned.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D9713

314485
hyperv/hn: Misaligned chimney sending buffers should not be used

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D9714


# 310757 29-Dec-2016 sephe

MFC 309226-309231,309235

309226
hyperv/hn: Utilize vmbus_chan_xact_wait

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8612

309227
hyperv/hn: Fix detach error handling.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8613

309228
hyperv/hn: Fix multi-packet RNDIS message aggregation size setting.

Just in case that no chimney sending buffer can be used.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8619

309229
hyperv/hn: Fix attach error handling

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8620

309230
hyperv/hn: Enable multi-packet RNDIS message support by default.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8621

309231
hyperv/hn: Fix vmbus_chan_subidx usage.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8629

309235
hyperv/hn: Simplify RSS indirect table fixup API

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8630


# 310739 29-Dec-2016 sephe

MFC 308908,308909

308908
hyperv/hn: Allow enabling IPv6 TX checksum offloading and IPv6 TSO.

They are still disabled by default.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8490

308909
hyperv/hn: Don't abuse hn_{tx,rx}_ring_inuse.

Just in case, the # of TX/RX rings is changed upon synthetic parts
re-attach.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8520


# 310738 29-Dec-2016 sephe

MFC 308907

hyperv/hn: Fix WITNESS warnings

And re-enable SIOCADDMULTI/SIOCDELMULTI, after WITNESS warning is fixed.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8489


# 310736 29-Dec-2016 sephe

MFC 308905

hyperv/hn: Implement RNDIS multi-packet message support.

Currently, it is only applied to packet sent through chimney sending
buffers. Not enabled by default yet.

This one gives 20%~30% performance boost for non-TSO usage in both
bit/packet rate tests and nginx performance test.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8560


# 308508 10-Nov-2016 sephe

MFC 308018,308116

308018
hyeprv/hn: Rename cleaned up RNDIS header file.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8360

308116
hyperv/hn: Rename cleaned up RNDIS source file.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8361