Commit graph

354 commits

Author SHA1 Message Date
Sepherosa Ziehau
2530eba1c4 hyperv/hn: Fix detach and attach error handling.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8066
2016-09-30 06:30:16 +00:00
Sepherosa Ziehau
fed9f4df75 hyperv/hn: If synthetic parts are detached, don't touch them.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8065
2016-09-30 06:21:00 +00:00
Sepherosa Ziehau
a53b5f81c2 hyperv/hn: Don't set HASHVAL pktinfo for NDIS < 6.30
This unbreaks packet sending on WS2008R2.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8057
2016-09-29 05:13:58 +00:00
Sepherosa Ziehau
e77ed95960 hyperv/hn: Consolidate hn_init() and hn_stop()
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8056
2016-09-29 05:01:20 +00:00
Sepherosa Ziehau
2f8350c30f hyperv/hn: Move TX tasks' draining into hn_suspend().
This prepares to consolidate hn_stop() and netvsc_detach().

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8055
2016-09-29 04:53:21 +00:00
Sepherosa Ziehau
2f1f7f4527 hyperv/hn: Flatten RX filter configuration.
This paves way for more fixes.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8049
2016-09-28 05:12:09 +00:00
Sepherosa Ziehau
ec3eaa6fb0 hyperv/hn: Reorder the comment a little bit.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8048
2016-09-28 05:01:53 +00:00
Sepherosa Ziehau
c04dad64e2 hyperv/hn: Reorganize the synthetic parts detach.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8047
2016-09-28 04:45:00 +00:00
Sepherosa Ziehau
65fe5a4627 hyperv/hn: Suspend and resume the backend properly upon MTU change.
Suspend:
- Prevent the backend from being touched on TX path.
- Clear the RNDIS RX filter, and wait for RX to drain.
- Make sure that NVS see the chimney sending buffer and RXBUF
  disconnection, before unlink these buffers from the channel.

Resume:
- Reconfigure the RNDIS filter.
- Allow TX path to work on the backend.
- Kick start the TX eof task, in case the OACTIVE is set.

This fixes various panics, when the interface has traffic and MTU
is being changed.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D8046
2016-09-28 04:34:21 +00:00
Sepherosa Ziehau
b1699fab98 hyperv/hn: Put debug messages under bootverbose
While I'm here, strip blank line.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7963
2016-09-21 06:54:26 +00:00
Sepherosa Ziehau
7a7e4e4449 hyperv/hn: Allocate bufrings in attach DEVMETHOD.
So that reinitialization, e.g. MTU change, will not fail when the system
memory is excessively fragmented.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7961
2016-09-21 06:27:42 +00:00
Sepherosa Ziehau
5260781e82 hyperv/hn: Let the caller of hn_nvs_doinit() do the error logging.
So that NVS version probing failure does not look too scary.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7950
2016-09-20 05:45:18 +00:00
Sepherosa Ziehau
a572f6042a hyperv/hn: Fix ifnet hwassist setup.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7948
2016-09-20 05:26:40 +00:00
Sepherosa Ziehau
8377ced7ee hyperv/hn: Allow RSS capability flipping upon attach/reinit.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7927
2016-09-19 07:47:56 +00:00
Sepherosa Ziehau
12fe8fd761 hyperv/hn: Stringent RSS sysctl checks
- Don't change RNDIS RSS configuration for RSS key sysctl, if the
  interface is not capable of RSS yet.
- Don't change RSS indirect table (both cached one and RNDIS RSS
  configuration), if the interface is not capable of RSS yet.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7924
2016-09-19 07:39:42 +00:00
Sepherosa Ziehau
6be919751f hyperv/hn: Don't allow MTU change, if it is not supported by the NVS.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7923
2016-09-19 07:32:08 +00:00
Sepherosa Ziehau
ae75f7ee26 hyperv/hn: Save capabilities for later use.
And don't allow capability changes during reinitialization, which
breaks too much static configuration.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7922
2016-09-19 07:17:43 +00:00
Sepherosa Ziehau
363b7d88f6 hyperv/hn: Don't allow NVS and NDIS version change upon reinitailization
NVS and NDIS version change would break too much assumption and static
configuration.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7919
2016-09-19 07:07:23 +00:00
Sepherosa Ziehau
7547506a79 hyperv/hn: Apply RSS indirect table fixup before configure RNDIS RSS.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7916
2016-09-19 06:46:22 +00:00
Sepherosa Ziehau
8084aabec1 hyperv/hn: Add sysctls to dynamic adjust RSS key and indirect table
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7890
2016-09-18 08:19:33 +00:00
Sepherosa Ziehau
b07c8af155 hyperv/hn: Don't mess up RSS key and indirect table after attachment.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7889
2016-09-18 08:10:40 +00:00
Sepherosa Ziehau
5bc2bbe347 hyperv/hn: Put debug message under bootverbose
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7875
2016-09-18 07:47:57 +00:00
Sepherosa Ziehau
174e02e003 hyperv/hn: Regroup ifnet setup code.
While I'm here, add comment along the attach DEVMETHOD.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7874
2016-09-18 07:37:59 +00:00
Sepherosa Ziehau
276c74b29a hyperv/hn: Fix some ifnet settings
- ifnet.if_mtu does not require explicit setting.
- ifnet.if_hdrlen must be set after ether_ifattach().

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7873
2016-09-14 09:17:00 +00:00
Sepherosa Ziehau
2b9577d34f hyperv/hn: Remove the FreeBSD_version check for TSO configuration
It is available on both stable/10 and stable/11. This eases future MFCs
to stable/10.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7872
2016-09-14 08:59:13 +00:00
Sepherosa Ziehau
69c127b6e5 hyperv/hn: Bring in shims from stable/10
This eases future MFCs to stable/10.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7871
2016-09-14 08:48:08 +00:00
Sepherosa Ziehau
8b7bba155c hyperv/hn: Use sx for the main lock.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7870
2016-09-14 08:33:08 +00:00
Sepherosa Ziehau
af7799b26d hyperv/hn: Cleanup hn_ioctl.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7869
2016-09-14 08:24:01 +00:00
Sepherosa Ziehau
23d0fe6357 hyperv/hn: Function renaming: hn_ifinit -> hn_init
No functional changes.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7868
2016-09-14 08:08:45 +00:00
Sepherosa Ziehau
555e179833 hyperv/hn: Deprecate hn_softc_t
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7867
2016-09-14 08:00:30 +00:00
Sepherosa Ziehau
06100f2e8c hyperv/hn: Remove unused softc field
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7866
2016-09-14 06:47:25 +00:00
Sepherosa Ziehau
098ab4a242 hyperv/hn: Pull RSS key and indirect table setup up.
This paves the way for the dynamic RSS key and indirect table setting.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7864
2016-09-14 06:15:45 +00:00
Sepherosa Ziehau
5e61a96882 hyperv/hn: Reorganize synthetic parts attach code.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7860
2016-09-13 05:54:31 +00:00
Sepherosa Ziehau
ec10046102 hyperv/hn: Regroup synthetic parts attach code.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7859
2016-09-13 05:41:13 +00:00
Sepherosa Ziehau
1f7866a48e hyperv/hn: Reorganize channel attach/detach code.
This paves the way for further attach/detach code reorganization.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7858
2016-09-13 05:27:36 +00:00
Sepherosa Ziehau
e0e273e2d4 hyperv/hn: Pull ether address and link status extraction up.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7831
2016-09-12 06:12:28 +00:00
Sepherosa Ziehau
2a3a8a823c hyperv/hn: Reorganize RNDIS attach
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7830
2016-09-12 05:59:39 +00:00
Sepherosa Ziehau
2cd02514a1 hyperv/hn: Reorganize sub-channel allocation.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7829
2016-09-12 05:37:44 +00:00
Sepherosa Ziehau
b5f59ae0e2 hyperv/hn: Function rename.
- Minor style changes.
- Nuke unnecessary indirection.
- Nuke unapplied comment.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7827
2016-09-12 05:28:50 +00:00
Sepherosa Ziehau
0c84fbafef hyperv/hn: Rename chimney sending buffer connect/disconnect functions.
Minor cleanup and wording in error messages.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7825
2016-09-12 05:18:30 +00:00
Sepherosa Ziehau
a711c28f62 hyperv/hn: Rename RXBUF connect/disconnect functions.
Minor cleanup and wording in error messages.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7823
2016-09-12 05:09:45 +00:00
Sepherosa Ziehau
b33720da59 hyperv/hn: Factor out NVS NDIS initialization
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7811
2016-09-08 07:45:20 +00:00
Sepherosa Ziehau
5152795ab9 hyperv/hn: Function renaming.
While I'm here, remove obvious comment.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7810
2016-09-08 07:34:31 +00:00
Sepherosa Ziehau
a74e025394 hyperv/hn: Pass MTU around.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7808
2016-09-08 06:42:30 +00:00
Sepherosa Ziehau
021deece8f hyperv/hn: Factor out function to do NVS initialization.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7807
2016-09-08 06:23:08 +00:00
Sepherosa Ziehau
f7a9af2829 hyperv/hn: Push RXBUF size adjustment down.
It is not used in other places.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7806
2016-09-08 06:06:54 +00:00
Sepherosa Ziehau
c8fca9324a hyperv/hn: Pull vmbus channel open up.
While I'm here, pull up the channel callback related code too.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7805
2016-09-08 05:27:43 +00:00
Sepherosa Ziehau
b67f3d2873 hyperv/hn: Nuke unused bits
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7795
2016-09-07 09:20:58 +00:00
Sepherosa Ziehau
b44fb279e8 hyperv/hn: Simplify per-packet-info construction.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7794
2016-09-07 06:02:29 +00:00
Sepherosa Ziehau
61ac564fd0 hyperv/hn: Cleanup RNDIS packet message encapsulation.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7793
2016-09-07 05:41:01 +00:00
Sepherosa Ziehau
5761f5dfdd hyperv/hn: Avoid bit fields for TXCSUM setup.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7792
2016-09-07 05:27:43 +00:00
Sepherosa Ziehau
50002d3dfa hyperv/hn: Avoid bit fields for LSOv2 setup.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7786
2016-09-06 04:37:53 +00:00
Sepherosa Ziehau
14ee29ba93 hyperv/hn: Fix VLAN tag setup for outgoing VLAN packets.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7785
2016-09-06 03:31:31 +00:00
Sepherosa Ziehau
b349357819 hyperv/hn: Stringent RNDIS packet message length/offset check.
While I'm here, use definition in net/rndis.h

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7782
2016-09-06 03:20:06 +00:00
Sepherosa Ziehau
0bbb7d483b hyperv/hn: Stringent RNDIS control message length check.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7758
2016-09-05 05:07:40 +00:00
Sepherosa Ziehau
7a466137f0 hyperv/hn: Stringent NVS RNDIS packets length checks.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7755
2016-09-05 04:47:31 +00:00
Sepherosa Ziehau
dc65be7a3d hyperv/hn: Stringent NVS notification length check.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7753
2016-09-05 03:39:04 +00:00
Sepherosa Ziehau
2a469fff98 hyperv/hn: Use the per-packet-info types defined by net/rndis.h
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7737
2016-09-02 05:30:38 +00:00
Sepherosa Ziehau
4e835450fd hyperv/hn: Simplify RX hash related bits.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7736
2016-09-02 03:19:55 +00:00
Sepherosa Ziehau
a191051577 hyperv/hn: Rework RXCSUM related bits
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7735
2016-09-02 03:10:30 +00:00
Sepherosa Ziehau
b34d3ad6cc hyperv/hn: Fix VLAN tag construction.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7716
2016-09-01 07:04:47 +00:00
Sepherosa Ziehau
fc4a9fc4c0 hyperv/hn: Stringent per-packet-info verification.
While I'm here, minor style changes.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7709
2016-09-01 06:05:08 +00:00
Sepherosa Ziehau
2c2e52605f hyperv/hn: Remove unused function
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7706
2016-09-01 05:29:58 +00:00
Sepherosa Ziehau
cf38cf1b7a hyperv/hn: Consolidate NVS transaction execution.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7704
2016-08-31 05:27:30 +00:00
Sepherosa Ziehau
96376f14a9 hyperv/hn: Remove unnecessary NULL check.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7690
2016-08-30 05:47:58 +00:00
Sepherosa Ziehau
fa021050df hyperv/hn: Log packet message alignment.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7689
2016-08-30 05:35:19 +00:00
Sepherosa Ziehau
ecb735a3ac hyperv/hn: Remove the useless rndis_device and related bits
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7687
2016-08-30 05:21:34 +00:00
Sepherosa Ziehau
1eeba644f0 hyperv/hn: Switch to new RNDIS transaction execution for halt.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7686
2016-08-30 05:09:26 +00:00
Sepherosa Ziehau
63d98d54aa hyperv/hn: Factor out func to exec RNDIS transaction w/o checking result
It will be used by RNDIS HALT and RESET.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7685
2016-08-30 04:04:29 +00:00
Sepherosa Ziehau
c7359ebb0c hyperv/hn: Remove unused function
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7684
2016-08-30 03:55:43 +00:00
Sepherosa Ziehau
05bbfc3062 hyperv/hn: Switch to new RNDIS set for RX filters.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7683
2016-08-30 03:40:22 +00:00
Sepherosa Ziehau
1010113dad net/rndis: Packet types are defined by NDIS; not RNDIS specific.
Reviewed by:	hps
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7681
2016-08-30 03:11:07 +00:00
Sepherosa Ziehau
77a48d6159 hyperv/hn: Indentation and field comment fixup for ndis.h.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7680
2016-08-30 03:03:19 +00:00
Sepherosa Ziehau
8bb1a21b56 hyperv/hn: Move OIDs to net/rndis.h; they are standard NDIS OIDs.
Actually all OIDs defined in net/rndis.h are standard NDIS OIDs.
While I'm here, use the verbose macro name as in NDIS spec.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7679
2016-08-30 02:55:07 +00:00
Sepherosa Ziehau
fdda77284f hyperv/hn: Switch to new RNDIS set for RSS parameters.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7658
2016-08-29 05:35:35 +00:00
Sepherosa Ziehau
7681d6725a hyperv/hn: Fix # of channels setting, if RSS is not available.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7657
2016-08-29 05:08:53 +00:00
Sepherosa Ziehau
e4e0ef792c hyperv/hn: Switch to new RNDIS query for RSS capabilities extraction.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7656
2016-08-29 04:54:13 +00:00
Sepherosa Ziehau
c204be533c hyperv/hn: Switch to new RNDIS query for link status extraction.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7654
2016-08-29 04:44:24 +00:00
Sepherosa Ziehau
3dc33a77d7 hyperv/hn: Add definition for NDIS media state.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7652
2016-08-29 03:22:56 +00:00
Sepherosa Ziehau
77c4f5aa9d hyperv/hn: Use vmbus xact for RNDIS set.
And use new RNDIS set to configure NDIS offloading parameters.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7641
2016-08-26 05:18:27 +00:00
Sepherosa Ziehau
467da5ad48 hyperv/hn: Save the adopted NDIS version for RNDIS to use later.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7640
2016-08-26 05:15:08 +00:00
Sepherosa Ziehau
cc3d96db55 hyperv/hn: Use vmbus xact for RNDIS query.
And switch MAC address query to use new RNDIS query function.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7639
2016-08-26 05:12:09 +00:00
Sepherosa Ziehau
550bbdbd27 hyperv/hn: Use vmbus xact for RNDIS initialize.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7624
2016-08-25 05:00:41 +00:00
Sepherosa Ziehau
fec38279d8 hyperv/hn: Add compat code for RNDIS reorganization phase.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7621
2016-08-25 04:52:50 +00:00
Sepherosa Ziehau
6cc86f82b7 hyperv/hn: Use definition in net/rndis.h for message type and status code.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7620
2016-08-25 04:40:51 +00:00
Sepherosa Ziehau
aa4a62df05 hyperv/hn: Log a warning for RESET_CMPLT.
RESET is not used by the hn(4) at all, and RESET_CMPLT does not even
have a rid to match with the pending requests.  So, let's put it
onto an independent switch branch and log a warning about it.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7602
2016-08-24 04:21:15 +00:00
Sepherosa Ziehau
d51ce2d164 hyperv/hn: Remove the redundant rid setting for RNDIS HALT.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7595
2016-08-24 03:28:58 +00:00
Sepherosa Ziehau
2e5573e6de hyperv/hn: Factor out function to simplify NVS request sending
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7578
2016-08-22 08:00:14 +00:00
Sepherosa Ziehau
8f556f2598 hyperv/hn: Factor out function to execute NVS transactions.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7577
2016-08-22 07:51:46 +00:00
Sepherosa Ziehau
ef56e63fb3 hyperv/hn: Get rid of netvsc_dev
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7575
2016-08-22 07:44:11 +00:00
Sepherosa Ziehau
fdd6031b04 hyperv/hn: Move chimney sending buffer to hn_softc
And don't recreate chimney sending buffer for each primary channel
open, it is now created in device_attach DEVMETHOD and destroyed
in device_detach DEVMETHOD.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7574
2016-08-22 07:34:39 +00:00
Sepherosa Ziehau
852710e6db hyperv/hn: Move RXBUF to hn_softc
And don't recreate RXBUF for each primary channel open, it is now
created in device_attach DEVMETHOD and destroyed in device_detach
DEVMETHOD.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7556
2016-08-19 05:43:28 +00:00
Sepherosa Ziehau
d981413bcb hyperv/hn: Remove the useless num_channel
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7555
2016-08-19 05:30:39 +00:00
Sepherosa Ziehau
2a137ab6fd hyperv/hn: Remove assign-only struct field
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7554
2016-08-19 05:20:12 +00:00
Sepherosa Ziehau
0366a4a1e0 hyperv/hn: Move NVS version to softc
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7553
2016-08-19 03:32:04 +00:00
Sepherosa Ziehau
8caa09bd36 hyperv/hn: Get rid of the useless netvsc_packet
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7544
2016-08-18 05:52:03 +00:00
Sepherosa Ziehau
5aa07ccdd7 hyperv/hn: Constify RNDIS messages on RX path.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7542
2016-08-18 05:44:58 +00:00
Sepherosa Ziehau
83ecbf4d6a hyperv/hn: Pass RX packet info to netvsc_recv.
This paves to nuke netvsc_packet, which does not serves much
purpose now.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7541
2016-08-18 05:33:58 +00:00
Sepherosa Ziehau
bf965e6dee hyperv/hn: Get rid of unused bits
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7518
2016-08-17 05:57:10 +00:00
Sepherosa Ziehau
85c8f64b0b hyperv/hn: Remove reference to nvsp_status
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7517
2016-08-17 05:45:57 +00:00
Sepherosa Ziehau
8b55644bae hyperv/hn: Remove reference to nvsp_msg
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7516
2016-08-17 05:34:02 +00:00
Sepherosa Ziehau
5f0dee26f1 hyperv/hn: Simplify RNDIS RX packets acknowledgement.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7515
2016-08-17 05:25:47 +00:00
Sepherosa Ziehau
46911ec745 hyperv/hn: Ignore the useless TX table.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7514
2016-08-17 05:14:26 +00:00
Sepherosa Ziehau
de56155fe0 hyperv/hn: Simplify RNDIS message checks on RX path.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7502
2016-08-16 07:45:35 +00:00
Sepherosa Ziehau
62c4e6e992 hyperv/hn: Simplify RNDIS NVS message sending.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7501
2016-08-16 07:37:02 +00:00
Sepherosa Ziehau
5ac4acb202 hyperv/hn: Factor out hn_nvs_send/hn_nvs_send_sglist
Avoid unnecessary message type setting and centralize the send context
to transaction id cast.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7500
2016-08-16 07:26:53 +00:00
Sepherosa Ziehau
0f9b848541 hyperv/hn: Switch to vmbus xact APIs for sub-channel alloc request.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7480
2016-08-15 05:08:41 +00:00
Sepherosa Ziehau
a04b666a04 hyperv/hn: Simplify chimney sending buffer disconnection.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7479
2016-08-15 05:00:37 +00:00
Sepherosa Ziehau
8b204d6643 hyperv/hn: Simplify RXBUF disconnection.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7472
2016-08-12 08:29:26 +00:00
Sepherosa Ziehau
55c4b97bfa hyperv/hn: Switch to vmbus xact APIs for NVS chimney buffer connection.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7470
2016-08-12 08:21:02 +00:00
Sepherosa Ziehau
d293af4049 hyperv/hn: Switch to vmbus xact APIs for NVS RXBUF connection.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7469
2016-08-12 08:07:56 +00:00
Sepherosa Ziehau
386c97e616 hyperv/hn: Simplify NDIS initialization.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7467
2016-08-12 07:57:03 +00:00
Sepherosa Ziehau
9b3922212a hyperv/hn: Simplify NDIS configuration.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7466
2016-08-12 07:14:40 +00:00
Sepherosa Ziehau
3dba61dd3c hyperv/vmbus: Use xact APIs to implement post message Hypercall APIs
Avoid code duplication.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7458
2016-08-11 06:24:17 +00:00
Sepherosa Ziehau
584e7c57f1 hyperv/hn: Switch to vmbus xact APIs for NVS initialization
Reviewed by:	Jun Su <junsu microsoft com>
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7457
2016-08-11 06:14:54 +00:00
Sepherosa Ziehau
127d6d1a64 hyperv/hn: Reorganize send done callback.
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7450
2016-08-10 03:11:07 +00:00
Sepherosa Ziehau
b5070c1829 hyperv/hn: Move gpa array out of netvsc_packet.
Prepare to deprecate the netvsc_packet.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7436
2016-08-09 04:50:20 +00:00
Sepherosa Ziehau
9d6016a773 hyperv/vmbus: Remove the artificial entry limit of SG and PRP list.
Just make sure that the total channel packet size does not exceed 1/2
data size of the TX bufring.

MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7359
2016-08-01 04:26:24 +00:00
Sepherosa Ziehau
7d8ee480c4 hyperv/vmbus: Inclusion cleanup
MFC after:	1 week
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D7334
2016-07-28 06:46:10 +00:00
Sepherosa Ziehau
7dd8881ca6 hyperv/vmbus: Rename hv_vmbus_priv.h to vmbus_brvar.h
It only contains bufring related bits for a while.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7281
2016-07-25 03:12:40 +00:00
Sepherosa Ziehau
82b8a87964 hyperv: hv_vmbus_channel -> vmbus_channel
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7260
2016-07-21 06:09:47 +00:00
Sepherosa Ziehau
6254947245 hyperv/vmbus: Hide channel struct definition.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7245
2016-07-20 06:00:27 +00:00
Sepherosa Ziehau
fda1c6ee42 hyperv/vmbus: Deprecate the device private data in channel struct
They are neither flexible nor extensible.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7244
2016-07-20 05:48:52 +00:00
Sepherosa Ziehau
ca871fb75c hyperv/vmbus: Pass channel as the first argument for channel callback
The prepares to kill device private fields in channel struct, which
are not flexible and extensible.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7243
2016-07-20 05:34:28 +00:00
Sepherosa Ziehau
9129ad2d70 hyperv/vmbus: Channel struct field rename
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7242
2016-07-20 05:26:04 +00:00
Sepherosa Ziehau
267fb25f21 hyperv/vmbus: Get rid of unnecessary definition.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7240
2016-07-20 05:03:04 +00:00
Sepherosa Ziehau
e93854c495 hyperv/vmbus: Function rename
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7230
2016-07-19 05:57:19 +00:00
Sepherosa Ziehau
d0856980e4 hyperv/vmbus: Function rename
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7212
2016-07-15 08:23:33 +00:00
Sepherosa Ziehau
a91e5fd55f hyperv/vmbus: Back out r302888 temporarily
Committed by accident w/ duplicated commit log

MFC after:	1 week
Sponsored by:	Microsoft OSTC
2016-07-15 08:13:44 +00:00
Sepherosa Ziehau
047affd165 hyperv/hn: Busdma-fy rxbuf and chimney sending buffer
Nuke unused channel GPADL API.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7211
2016-07-15 08:08:13 +00:00
Sepherosa Ziehau
8c209c9206 hyperv/hn: Busdma-fy rxbuf and chimney sending buffer
Nuke unused channel GPADL API.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7211
2016-07-15 08:06:48 +00:00
Sepherosa Ziehau
43bbe6b27f hyperv/vmbus: Cleanup channel packet receiving.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7204
2016-07-15 07:53:45 +00:00
Sepherosa Ziehau
12140675e8 hyperv/vmbus: Function rename
And reorder the error prone parameters list.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7191
2016-07-15 07:16:46 +00:00
Sepherosa Ziehau
03055a2cea hyperv/vmbus: Move channel packet types definition to vmbus.h
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7177
2016-07-15 06:58:21 +00:00
Sepherosa Ziehau
1680fb300c hyperv/vmbus: Move channel packet flags definition to vmbus.h
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7176
2016-07-15 06:49:45 +00:00
Sepherosa Ziehau
6199f16549 hyperv/vmbus: Rework sglist sending.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7156
2016-07-15 06:29:19 +00:00
Sepherosa Ziehau
3a1079321c hyperv/vmbus: Use sub-channel index to detect primary channel
In case that VMBUS_CHAN_ISPRIMARY is needed in the early place of
channel setup.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7108
2016-07-14 07:24:03 +00:00
Sepherosa Ziehau
8c1ac91660 hyperv/vmbus: Nuke the channel open state.
Channel is either opened or not-opened.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7105
2016-07-14 06:59:04 +00:00
Sepherosa Ziehau
71ac1309f0 hyperv: hv_guid -> struct hyperv_guid.
This paves way for the further cleanup/disentangle.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7092
2016-07-14 05:25:31 +00:00
Sepherosa Ziehau
6a2ff2cbf7 hyperv/hn: Avoid the hv_device
This paves way to nuke the hv_device, which is actually an unncessary
indirection.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7033
2016-07-13 05:58:46 +00:00
Sepherosa Ziehau
884d26c84c hyperv/vmbus: Add vmbus method for GUID base device probing.
Reduce the exposure of hv_device.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7024
2016-07-13 05:01:12 +00:00
Sepherosa Ziehau
4ac0a9bf1e hyperv/vmbus: Make subchan index a field of hv_vmbus_channel.
This prepares to remove the unnecessary offer message embedding in
hv_vmbus_channel.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7015
2016-07-13 03:35:22 +00:00
Sepherosa Ziehau
2c4888c75b hyperv/vmbus: Make channel id a field of hv_vmbus_channel.
This prepares to remove the unnecessary offer message embedding in
hv_vmbus_channel.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D7014
2016-07-13 03:24:29 +00:00
Sepherosa Ziehau
99e315276a hyperv/vmbus: Fix sub-channel re-open support.
For multi-channel devices, once the primary channel is closed,
a set of 'rescind' messages for sub-channels will be delivered
by Hypervisor.  Sub-channel MUST be freed according to these
'rescind' messages; directly re-openning sub-channels in the
same fashion as the primary channel's re-opening does NOT work
at all.

After the primary channel is re-opened, requested # of sub-
channels will be delivered though 'channel offer' messages, and
this set of newly offered channels can be opened along side with
the primary channel.

This unbreaks the MTU setting for hn(4), which requires re-
openning all existsing channels upon MTU change.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6978
2016-07-12 08:38:03 +00:00
Sepherosa Ziehau
38d19df6ff hyperv/vmbus: Rework vmbus version accessing.
Instead of global variable, vmbus version is accessed through
a vmbus DEVMETHOD now.

MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6953
2016-07-12 07:33:39 +00:00
Sepherosa Ziehau
57bb267df3 hyperv/hn: Add tunable to allow tcp_lro_queue_mbuf()
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6841
2016-07-11 06:23:01 +00:00
Sepherosa Ziehau
36ad8372d4 net: Use M_HASHTYPE_OPAQUE_HASH if the mbuf flowid has hash properties
Reviewed by:	hps, erj, tuexen
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6688
2016-06-07 04:51:50 +00:00
Sepherosa Ziehau
a46b3df617 hyperv/hn: Use hyperv busdma(9) helper.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6444
2016-05-23 06:52:42 +00:00
Sepherosa Ziehau
aa77d82eca hyperv/hn: Combine per-packet-information parsing.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
2016-05-16 03:26:16 +00:00
Sepherosa Ziehau
11a55b7340 hyperv/hn: Extract RSS hash value and type.
MFC after:	1 week
Sponsored by:	Microsoft OSTC
Differential Revision:	https://reviews.freebsd.org/D6287
2016-05-11 03:31:25 +00:00