Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results
The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
Hello,
I'm developing a kernel module that should handle Etherent layer 2.
Each etherent packet starts with the following struct :
struct eth_addr {
UINT8 dest[6];
UINT8 src[6]
UINT16 type;
}eth_addr ;
The rate of the data is up to 10Gb/sec.
The card should handle only Jumbo frames (9,216 bytes).
My concern is the scatter-gather list.
Should I contain descriptors each ready for 9216 bytes ?
Should I receive interrupt upon each descriptor ?
Can you please tell how an Intel NIC handles this ?
Thank you,
Zvika
Upcoming OSR Seminars | ||
---|---|---|
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead! | ||
Kernel Debugging | 13-17 May 2024 | Live, Online |
Developing Minifilters | 1-5 Apr 2024 | Live, Online |
Internals & Software Drivers | 11-15 Mar 2024 | Live, Online |
Writing WDF Drivers | 26 Feb - 1 Mar 2024 | Live, Online |
Comments
based on our questions, I infer that you have a lot to learn. You might start with some documentation
https://learn.microsoft.com/en-us/windows-hardware/drivers/network/roadmap-for-developing-ndis-miniport-drivers
Intel NIC drivers are complex and it is not a matter of a simple forum post to explain all that they do - even if we were at liberty. Think about hybrid polling to improve throughput under heavy load by eliding interrupts, receive side scaling to spread diverse streams of packets to different cores and hardware offloads for common protocols like TCP and UDP at a minimum. Then think about virtual machine queues. Then think about NUMA
I think you will need a more specific question to get any useful help here
In my experience, writing great high-performing NIC drivers requires a wonderful mix of deep device knowledge, expert OS insight, significant hard-earned experience, and artistic ability. I have never written a driver for a more demanding device type.
I think Mr. Bond put it nicely: "I think you will need a more specific question to get any useful help here" -- Yes, indeed.
Peter Viscarola
OSR
@OSRDrivers