hi one doubt

Mulyadi Santosa mulyadi.santosa at gmail.com
Tue Mar 22 17:02:11 EDT 2011


On Tue, Mar 22, 2011 at 23:57, pradeepkumar soman <pradeep2481 at gmail.com> wrote:
> Hello,
> I have a doubt related  to a network relay device.

Looking at my skill level, I am probably not a right person to answer
this. So pardon me if I cc: this e-mail to the kernelnewbies list...
hopefully it gets better answer here...

> I am having a relay device which will clone the skb and route the cloned
>  packet to another interface (it is doing packet interception) during the
> packet transmission.

I am not really sure on what "a relay device" means here.... do you
mean something like dummy device (kinda "lo") and anything send to it
will be "copied" to another ethernet device like what we do with
"iptables" using "redirect" target?


> But I am getting the error "Dead loop on netdevice relay" frequently on high
> data transfer.

"Frequently" or always? what's the percentage?

>This error is coming from net/sched/sched_generic.c, whenever
> the
> hard_xmit function is recursive.  But the hard_xmit function is called with
> bh and kernel preemption disabled. So what is the reason for this scenario
> to occur?

Let's step back a bit: how do you send the data anyway? it might be
due to send it using hard_xmit or anything like that...then intercept
it right after it is received by the "device" and send to another
one.... so you send, intercept, send again likely in the same context
or code path.... got what I meant? you probably just need to put the
data in the right skb queue and trigger the net_tx something ( forgot
the name), thus it each are done by different workqueue context....


-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com



More information about the Kernelnewbies mailing list