Re: UDP/IP via Ethernet in real time (config-preempt patch)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux