Commit Graph
22 Commits
Author SHA1 Message Date
Kostiantyn Kostiuk e169859ae5 NetKVM: Use 'enum class' instead of 'enum' (CA warning 26812)
Update _tagPARANDIS_RSS_MODE enum.

Signed-off-by: Kostiantyn Kostiuk <[email protected]>
2021-09-19 09:40:30 +03:00
Viktor Prutyanov 5ebe1e77ac NetKVM: set NumRssQueues max value to 32
Increase max NumRssQueues parameter max value from 16 to 32.

Signed-off-by: Viktor Prutyanov <[email protected]>
2021-07-22 10:35:18 +03:00
Yuri Benditovich c07b380014 netkvm: simplify init and cleanup of RSS parameters
Allocate RW lock in the constructor, if failed we will fail
the context initialization.
Free allocated CPU maps in the destructor, if allocated.
No need in "IsRSSinitialized" anymore.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-08-26 17:19:23 +03:00
Yuri Benditovich 09118e00a8 netkvm: proper initialization of RSS parameters
RSS parameters include object of read-write lock, but uses
memzero to clean all the members. Make order there:
- define RSS parameters as a class and initialize adapter
  context in the constructor
- define dummy class for non-RSS build (to avoid more zebras)
- minimize additional configuration in InitRSSParameters

Signed-off-by: Yuri Benditovich <[email protected]>
2020-08-26 17:19:23 +03:00
Yuri Benditovich 6fa4db059d netkvm: define VIRTIO_NET_F_HASH_REPORT and ack it
When this feature is acked this changes the layout of
virtio header. It contains additional 8 bytes where
the device reports hash and hash type.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich 6ce66b5625 netkvm: maintain adapter context in RSS parameters struct
This is useful in any kind of debugging and further development.
Procedures that receive RSS parameters as the parameter should
be able to access easily the fields of the adapter.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich 0e3f42e61d netkvm: introduce control of device RSS support
Add a procedure to disable device RSS support for
engineering tests and comparison.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich ae355c516d netkvm: report device RSS capabilities to NDIS
If the device supports RSS the driver will report
device RSS capabilities (supported hash types) to
NDIS instead of software RSS impementation capabilities.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich cf0adde098 netkvm: use device RSS command for MQ if available
For initial MQ configuration use proper command:
use RSS command with RSS off and proper number of
queues if available. Otherwise use old MQ command.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich ee74beb077 netkvm: extend PARANDIS_SCALING_SETTINGS struct
Add DefaultQueue and DefaultProcessor to the structure.
Currently DefaultQueue=PARANDIS_RECEIVE_UNCLASSIFIED_PACKET,
so DefaultProcessor does not matter. In future these field
might be changed by SetRSSParameters on NDIS 6.80+.

Signed-off-by: Yuri Benditovich <[email protected]>
2020-05-04 16:41:00 +03:00
Yuri Benditovich 0c03b85fdd netkvm: make ParaNdis_SetupRSSQueueMap static
The procedure now used only inside RSS, make it static.

Signed-off-by: Yuri Benditovich <[email protected]>
2019-12-23 09:57:33 +02:00
Yuri Benditovich 27c1a66374 netkvm: change prototype of ParaNdis6_RSSSetReceiveHash
Pass the adapter context instead of passing its fields.
This is a preparation for further encapsulation.

Signed-off-by: Yuri Benditovich <[email protected]>
2019-12-23 09:57:33 +02:00
Yuri Benditovich 6fb4f979fc netkvm: change prototype of ParaNdis6_RSSSetParameters
Pass adapter context instead of passing its fields.
This is a preparation for further encapsulation.

Signed-off-by: Yuri Benditovich <[email protected]>
2019-12-23 09:57:33 +02:00
Yuri Benditovich 1f29c5c4ee netkvm: move ParaNdis_SetupRSSQueueMap to RSS scope
Due to historical reasons the procedure was placed
in common scope. Moving it to RSS area.

Signed-off-by: Yuri Benditovich <[email protected]>
2019-12-23 09:57:33 +02:00
Joseph Hindin 41d054e5a4 NetKVM: BZ#954183: system files includes and OS dependency moved to osdep.h
Signed-off-by: Joseph Hindin <[email protected]>
2015-05-04 12:45:19 +10:00
Joseph Hindin 5bbaa2f250 NetKVM: BZ#1206279: fixes for CPU/Queue assignment and unclassified packets
Signed-off-by: Joseph Hindin <[email protected]>
2015-04-30 11:12:41 +10:00
Joseph Hindin d0a1c4f1e7 NetKVM: BZ#1096505: RW lock insetad of spinlock in RSS parameters
Signed-off-by: Joseph Hindin <[email protected]>
2014-07-02 17:25:26 +10:00
Dmitry Fleytman 53b6380af4 NetKVM: BZ1096505 Separate transmit path data from device context
This commit is a preparation for multiqueue implementation.
It itroduces changes driver's TX code structure the way
needed to allow creation of multiple independent transmit pathes.

Signed-off-by: Dmitry Fleytman <[email protected]>
2014-05-12 18:20:53 +10:00
Yan Vugenfirer 1527936eba NetKVM: Build Windows Vista drivers with Visual Studio 2013 native compiler.
Signed-off-by: Yan Vugenfirer <[email protected]>
2014-05-05 20:03:03 +10:00
Dmitry Fleytman abf0a28bfd [NetKVM] Untabify 2013-04-10 12:45:25 +03:00
Yan Vugenfirer 1fe66b4c1c [NetKVM] Build system refactoring 2013-04-10 11:00:25 +03:00
Dmitry Fleytman ae6dfeeb4a [NetKVM] RSS implemented 2013-03-11 13:55:06 +02:00