Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


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/


Handling scatter-gather list for specified protocol

zviveredzvivered Member Posts: 113

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

Comments

  • MBond2MBond2 Member Posts: 494

    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

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 9,044

    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

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

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 30 January 2023 Live, Online
Developing Minifilters 20 March 2023 Live, Online
Writing WDF Drivers TBD 2023 Live, Online
Internals & Software Drivers 17 April 2023 Live, Online