Colin Burgess(deleted)
|
Re: Network Webinar Q&A # 2 (Difference between io-net and io-pkt drivers)
|
Colin Burgess(deleted)
11/15/2007 11:27 AM
post2655
|
Re: Network Webinar Q&A # 2 (Difference between io-net and io-pkt drivers)
I still owe Vlad a T-shirt (yes, I haven't forgotten, just was out of the country!) so maybe we can piggy back our
delivery! :-)
|
|
|
Christopher Pohl
|
Re: Network Webinar Q&A # 2 (Difference between io-net and io-pkt drivers)
|
Christopher Pohl
01/09/2008 6:19 AM
post4136
|
Re: Network Webinar Q&A # 2 (Difference between io-net and io-pkt drivers)
> The io-net / io-pkt driver difference that I'm looking for applies more to
> the implementation than the usage. There's something that the initialization
> routines have to be able to handle in io-pkt that they don't have to in io-
> net, so we'll look for some more answers to come in with that clarification.
Hi Robert,
Not sure if anyone has replied yet, so I'll just give it a go.
I'm guessing the difference in the init routines you are looking for is that within io-net the init routines of the
network drivers are only called once upon driver load.
Within io-pkt they are called repeatedly, e.g. every time someone issues an ifconfig for the interface in question. I
think that may become quite a gotcha in any driver implementation, one has to take care to e.g. not attach the
interrupt or alloc new DMA buffer space etc over and over again, in the init routine. Otherwise the driver might work
fine for a while but then crash later...
Also, another big difference is that io-net drivers had their own threads in which the layer-2 receive processing was
done, while io-pkt drivers just provide function hooks and are always called within the context of the stack's thread
pool. That's even true for periodic housekeeping tasks, we do not create a timer triggered thread ourselves anymore, but
use the callout function of the stack framework.
Christopher
|
|
|