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]>
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]>
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]>
When RSS configuration OID received, send respective command
to the device, if the device supports RSS
Signed-off-by: Yuri Benditovich <[email protected]>
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]>
NDIS_RECEIVE_SCALE_PARAMETERS.DefaultProcessorNumber may
have its 'Reserved' not zeroed, that makes the value
unusable for any practical purpose.
Zeroing this field before using the value.
Signed-off-by: Yuri Benditovich <[email protected]>
NDIS_RECEIVE_SCALE_PARAMETERS v3 contains DefaultProcessor
field that actually sets default queue to use for unclassified
packets. Adding code to maintain default queue and processor
in internal RSS parameters.
Signed-off-by: Yuri Benditovich <[email protected]>
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]>
This is preparation commit.
In further build with 6.80 support we may receive different
revisions of NDIS_RECEIVE_SCALE_PARAMETERS, so the check
with sizeof() will be incorrect.
Determine minimal size of the structure according to revision
of the structure and check the size before accessing it.
Signed-off-by: Yuri Benditovich <[email protected]>
This is preparation commit.
In future case of run-time NDIS 6.80 we will be able to report
UDP hash capability and receive UDP hash enabled.
Signed-off-by: Yuri Benditovich <[email protected]>
The procedure now does everything needed, including RW lock,
resetting of classification and RSS queue mapping.
Signed-off-by: Yuri Benditovich <[email protected]>
Pass the adapter context instead of passing its fields.
This is a preparation for further encapsulation.
Signed-off-by: Yuri Benditovich <[email protected]>
Pass adapter context instead of passing its fields.
This is a preparation for further encapsulation.
Signed-off-by: Yuri Benditovich <[email protected]>
In case of RSS disable IOCTL the driver rejects the
command due to 'invalid length' although the length of
of the received structure is correct. The structure does
not include any extensions as they are not required for
case of RSS disable. Current commit moves checks that
expect extended length of received structure to the
case when the IOCTL does not disable RSS. It also adds
printouts for each case the driver fails the IOCTL due
to wrong length.
For example, such IOCTL comes during driver disable.
Signed-off-by: Yuri Benditovich <[email protected]>
This commit integrates wpp tracing into builds higher than Vista as
Windows Vista requires much more configuration for wpp integration,
however, this integration may be introduced in the future.
The old style of Dprintf is still preserved by this commit and can be
enabled by disabling WPP tracing. This can be accomplished by commenting
the following line in WPPTrace.h:
Signed-off-by: Sameeh Jubran <[email protected]>
TX uses RSS2QueueMap vector to place TX packet into
one of TX queues according to hash. This vector is a
product of received RSS settings. If OS/NDIS sends
update of RSS settings simultaneously with packet
processing, the RSS2QueueMap may be wrong or even
invalid. The solution is protecting of TX packet
processing and change of RSS settings by read-write
lock (read on TX packet, write on RSS change).
Signed-off-by: Yuri Benditovich <[email protected]>
Part of the effort to simplify ndis56common.h. This is the first step in
removing kdebugprint.h from ndis56common.h, adding include where needed and
moving some functions implementation from class definitions files.
Signed-off-by: Yan Vugenfirer <[email protected]>
Before the patch 'Routing unclassified packets through RX path's receive
queue', unclassified packets were routed through per-context receive queue,
placed into ReceiveQueues array at index 0. The patch 'Routing
unclassified packets through RX path's receive queue' changes
unclassified packets routing so that they are placed into a dedicated
receive queue, one per virtqueue/CParaNdisRX instance. This patch
completes the change by removing per-context receive queue; first
element in ReceiveQueues array has not special meaning and the
constant 'PARANDIS_RECEIVE_QUEUE_UNCLASSIFIED' was split
into 'PARANDIS_RECEIVE_UNCLASSIFIED_PACKET' and
'PARANDIS_RECEIVE_NO_QUEUE', depending on context.
Signed-off-by: Joseph Hindin <[email protected]>
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]>