site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com Hello all, I'm writing an AoE (ATA over Ethernet) driver for Darwin that will enable Ethernet attached ATA devices like the Coraid EtherDrive blade (coraid.com) to be used. Our current linux and freebsd drivers have three main components: o block device interface (per AoE device) o network retransmit timer (per AoE device) o network packet handler for ethernet type 0x88a2 The AoE driver is primarily responsible for translating block read/write requests into AoE frames, retransmitting them when responses don't come back in a certain time, and acknowledging the requests as complete to the system when they do. I've read a lot of documentation on the IO Kit system, but its internals are sufficiently different from what we've previously done that I can't see a clear way to proceed. I'm confused by the driver/nub relationship. I think I need to write a provider for something in the IOStorageFamily, but I can't figure out what, nor am I clear on what my interfaces are for block reads/writes. Perhaps someone can point to some clarifying documentation here (not "IO Kit Fundamentals" -- I've read that). As for the rexmit timer, I need a way for a function to be called every X ms. So far all I've found towards this end is a way to use IOLock instead of timeout. I don't think this helps me, but perhaps I'm missing something. Lastly, I need to register an Ethernet protocol handler. I read the paper on NKEs, but am not sure whether I need a protocol handler NKE or a data link NKE. If the former, is there an ethernet domain I use in net_add_proto? If the latter, it seems I need to register a separate filter per interface? Any help would be appreciated. Cheers, Sam _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com