Since you have the e1000 code in source I guess it could be possible to write your own e1000 driver and create a device in /dev that would allow you to interface with it. You then could do anything you want and bypass all the Linux networking code. Create an API to build UDP/IP packets to drop on the wire and program your real-time app to use that. Just trying to be creative.... On Fri, 2007-07-20 at 15:31 +0200, M. Koehrer wrote: > Hi, > > thanks for the feedback. I had a closer look at the receive path of an Ethernet frame. > The driver (e1000 in my case) receives the raw frame and calls netif_rx. > >From netif_rx the sk_buff is passed on to netif_rx_schedule and here a raise_soft_irqoff(NET_RX_SOFTIRQ) > is called to trigger the task that does the remaining parts of the reception. > Even if I use a AF_PACKET / AF_RAW socket, it will be handled by the NET_RX_SOFTIRQ task. > As this task is not running in real time priority, I loose real time behaviour. > > Within netif_rx there is a call to netpoll_rx which could be used as a kind filter to > separate interesting packets. However, currently netpoll_rx is used by the netconsole which allows > to register exactly one UDP per device that is taken into account. > I can not handle a real time network. Neither I do have a inteface to user space to the netconsole. > One approach could be to implement something similar to netpoll_rx that is used as switch > to separate standard Ethernet frames and frames that are treated as real time relevant. > In this case something similar to netif_rx_schedule is needed that calls a real time priority > irq thread like NET_RX_SOFTIRQ... > > Any comments or feedback on this is highly welcome... > > Thanks a lot > > Mathias > > > On Wed, Jul 18, 2007 at 04:26:00PM +0200, M. Koehrer wrote: > > > Hi, > > > > > > I had a short look at the netconsole.txt and the correspondent code. > > > It seems to be based on netpoll. This looks quite interesting for my > > needs. > > > However, it seems to be only accessible from kernel space and not > > > from user space. > > > I want to run a real time application in user space and do the UDP > > accesses > > > from there. > > > Is this somehow possible with the netpoll code? I did not see a callable > > interface > > > from user space side. > > > > > > > > Raw or Packet sockets then (AF_RAW / AF_PACKET)? > > > > Neil > > > > > Thanks for any feedback on this topic. > > > > > > Regards > > > > > > Mathias > > > > I would dump the idea of using UDP and inject raw ethernet frames onto > > > > the LAN segment. You can do this by bypassing almost all of the > > > > net-stack I'm sure of it. I think the netconsole kernel code does > > > > it... > > > > > > > > Documentation/networking/netconsole.txt > > > > > > > > > > > > > -- > > > Mathias Koehrer > > > mathias_koehrer@xxxxxxxx > > > > > > > > > Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren > > > ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: > > günstig > > > und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer, > > > nur 39,85 € inkl. DSL- und ISDN-Grundgebühr! > > > http://www.arcor.de/rd/emf-dsl-2 > > > - > > > To unsubscribe from this list: send the line "unsubscribe linux-net" in > > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > -- > > /*************************************************** > > *Neil Horman > > *Software Engineer > > *Red Hat, Inc. > > *nhorman@xxxxxxxxxxxxx > > *gpg keyid: 1024D / 0x92A74FA1 > > *http://pgp.mit.edu > > ***************************************************/ > > > - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html