|
|
1.1 ! root 1: Ethernet questions ! 2: ! 3: 1. Why does the 68k driver use IF_ENQUEUE and IF_DEQUEUE? These look like ! 4: private macros for the netif module...They'll prevent us from using ! 5: only netif.h! How to enqueue and dequeue from netif_t legally? ! 6: ! 7: -- Maybe don't have to enqueue mbufs on netif; 68k had to do that ! 8: because of finite-size DMA queue...We should just be able to ! 9: chan_dma_enqueue 'em. ! 10: ! 11: 2. How important is it to use netbuf's instead of mbufs? Is this actually ! 12: possible in current system (without a lot of hacking outside of enet ! 13: driver)? ! 14: ! 15: -- Brad says: go for it, by the book. OK, let's try it. ! 16: ! 17: 3. Re: this comment at top of enoutput(): ! 18: ! 19: Use trailer local net encapsulation if enough data in first ! 20: packet leaves a multiple of 512 bytes of data in remainder. ! 21: ! 22: I don't see any code which does this. ! 23: ! 24: -- I think that the enet driver doesn't have to worry about this; ! 25: it's handled in if_venip.c. ! 26: ! 27: 4. engetbuf, I assume, is never called from interrupt level, since ! 28: it calls nb_alloc_wrapper, which the tech docs say can not be called ! 29: from interrupt level. However, ! 30: engetbuf() { ! 31: en_get() ! 32: enbuf_alloc() ! 33: m_clalloc() ... ! 34: ! 35: m_clalloc() has a hack to allocate memory at interrupt level. ! 36: ! 37: Will a network module's output or getbuf routines in fact be called ! 38: at interrupt level? ! 39: ! 40: -- Brad and Joel G. both say NO. I'm going to go ahead and assume that ! 41: I can do RPCs and kallocs from both routines. Brad agreed to help fix ! 42: deadlock problems which may arise from this. ! 43: ! 44: 5. Maybe we want the enetBuf's to always be wired. If so, kern_dev needs ! 45: one of two changes: ! 46: -- at dma_enqueue() time, rememeber if current vm_region is pageable; ! 47: if not, don't bother wiring it, and don't unwire it at dequeue time ! 48: -- att arg to chan_dma_enqueue_int() to specifiy whether or not to bother ! 49: wiring and unwiring the memory. ! 50:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.