* Re: Can i use dev_queue_xmit
[not found] <Pine.LNX.4.44.0404070954110.12893-100000@csews106.cse.iitk.ac.in>
@ 2004-04-07 11:14 ` K.Anantha Kiran
0 siblings, 0 replies; 3+ messages in thread
From: K.Anantha Kiran @ 2004-04-07 11:14 UTC (permalink / raw)
To: Armen Kaleshian; +Cc: linux-c-programming
Anyway we have written a module,
If you know any idea about our problem,(dropping packets due to
NET_XMIT_DROP return value of dev_queue_xmit()) can u help us.Atleast
suggest a source where we can get answer for my problem.
We want to know the situation(or)Reason when NET_XMIT_DROP will be
returned.
Thanks,
K.AnanthaKiran
> On Tue, 6 Apr 2004, Armen Kaleshian wrote:
>
> > Date: Tue, 6 Apr 2004 12:55:29 -0400
> > From: Armen Kaleshian <akaleshian@kriation.com>
> > To: K.Anantha Kiran <ananth@cse.iitk.ac.in>
> > Cc: linux-c-programming@vger.kernel.org
> > Subject: Re: Can i use dev_queue_xmit
> >
> > Why don't you look at the source for iptables? Or use iptables instead of writing the kernel module from scratch?
> >
> > Good luck!
> >
> > On Tue, Apr 06, 2004 at 07:50:50PM +0530, K.Anantha Kiran wrote:
> > :
> > : We are supposed to build a kernel module which takes packets in the
> > : internet through one interface and forward them to another interface of
> > : my choice based on the IP,Port feilds in the packet.
> > :
> > : Our module is working fine for less rate(200Mbps) of traffic.If speed is
> > : increasing(>200Mbps), for some packets "dev_queue_xmit()" is returning NET_XMIT_DROP due to which packets are being dropped.
> > :
> > : Can u suggest any solution. Can u give the reason for that return value
> > : only for high traffic.Is there any speed restiction to dev_queue_xmit()
> > : We are using Gigbyte traffic ethrtnet cards.
> > :
> > : Thanks in advance,
> > : K.AnanthaKiran
> > :
> > :
> > :
> > : -
> > : To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> > : the body of a message to majordomo@vger.kernel.org
> > : More majordomo info at http://vger.kernel.org/majordomo-info.html
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Splitter
@ 2004-03-23 13:31 syedk
2004-04-06 14:20 ` Can i use dev_queue_xmit K.Anantha Kiran
0 siblings, 1 reply; 3+ messages in thread
From: syedk @ 2004-03-23 13:31 UTC (permalink / raw)
To: K.Anantha Kiran; +Cc: linux-c-programming
hi ananth,
yes u can directly send it to other interface...
but be very careful in this : u need to take care of lot of things
otherwise u may face lot of kernel panics:
1) u shud return NF_STOLEN; in the PRE_ROUTING hook... otherwise the
dev_queue_xmit will try to free the sk_buff (which might be already
freed if u use NF_DROP)...
2)u need to fill( or rather change existing ones) the relevant
information in the sk_buff... that might include the
i) source and destination address in the IP ..
ii) changing the pkt_type to PACKET_OUTGOING,
iii) u also need to take care of changing datalink layer stuff in
sk_buff.. for example if packet came on ppp or loopback and u want to
redirect it to ethernet interface.....
all u need to care of is this : it shud be a correct sk_buff while
xmiting it....
probably u wont succeed first time itself .... u may find some problems
or worst some crashes... but u will succeed finally...
Better read this document:
http://uqconnect.net/~zzoklan/documents/netfilter.html
i hope this would help...
best regards
Syed SK
On Tue, 2004-03-23 at 17:24, K.Anantha Kiran wrote:
> Hi,
> Whenever we receive a packet( let it is stored in skb), can we directly
> change the skbuff->dev and call dev_queue_xmit(skbuff) without undergoing
> any processing in this system. That means this will simply take one packet and
> keep it in another interface( for suppose there are no packets destined
> for this system) . Doing this will cause any problems?
>
>
>
> On 23 Mar 2004, syedk wrote:
>
> > Date: 23 Mar 2004 17:08:20 +0530
> > From: syedk <syedk@intotoinc.com>
> > To: K.Anantha Kiran <ananth@cse.iitk.ac.in>
> > Cc: Jad Saklawi <Jad@Saklawi.info>, linux-c-programming@vger.kernel.org
> > Subject: Re: Splitter
> >
> > you can look into dev_queue_xmit(sk_buff) function in net/core/dev.c
> >
> > sk_buff->dev has the information abt the device (can be any interface
> > registered using register_netdevice() for that matter)...
> >
> > dev_queue_xmit just transfers the sk_buff for the device for
> > delivery....
> >
> > I feel the best way to solve your problem would be use NF_IP_PRE_ROUTING
> > hook of netfilter by which u get all packets ( even before any routing
> > decisions has been made : that is what u wanted RIGHT??) and then call
> > dev_queue_xmit function by setting the sk_buff->dev as whatever
> > interface u wish to redirect....
> >
> > I hope this would help....
> >
> > Best regards
> > syed sk
> >
> >
> > On Tue, 2004-03-23 at 15:09, K.Anantha Kiran wrote:
> > > Hi,
> > > Thanks a lot for ur guidance.
> > > I am following the same files(i mean NET directory).But i am facing
> > > following problem.
> > > " where the output interface variable (rtable->key->oif) is changed to
> > > the index of interface through which packet has to go out. In the function
> > > /net/route.c ip_route_input_slow() they are setting it to 0 what is it
> > > mean.
> > >
> > > When a packet has to be put on to an interface what are the fields
> > > will it use to decide that( in skbuff structure).
> > >
> > > Thanks
> > > regards,
> > > K. Anantha kiran
> > >
> > >
> > > On Mon, 22 Mar 2004, Jad Saklawi wrote:
> > >
> > > > Date: Mon, 22 Mar 2004 09:41:22 +0200
> > > > From: Jad Saklawi <Jad@Saklawi.info>
> > > > To: K.Anantha Kiran <ananth@cse.iitk.ac.in>
> > > > Cc: linux-c-programming@vger.kernel.org
> > > > Subject: Re: Splitter
> > > >
> > > > K.Anantha Kiran wrote:
> > > >
> > > > >Hi,
> > > > > Thanks for ur suggetsion.
> > > > > But we are not clear about the sentece "re invent the loop".
> > > > > Can u give clear explanantion about the "iptables" solution.
> > > > > IMP: Our machine should not work like a router.I should be able to decide
> > > > >to which interface i want to redirect to , on the fly for each packet
> > > > >using a HASH like functions.
> > > > >
> > > > >
> > > > It`s your choice then, check out net/core/dev.c net/core/dv.c
> > > > net/ipv4/tcp_input.c net/ipv4/tcp_output.c net/ethernet/eth.c You have
> > > > to take a look at the whole net directory and modify accordingly. I
> > > > doubt you will be able to do any thing. Any way good luck!!!
> > > >
> > > > Greets,
> > > > Jad
> > > >
> > >
> > > -
> > > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Can i use dev_queue_xmit
2004-03-23 13:31 Splitter syedk
@ 2004-04-06 14:20 ` K.Anantha Kiran
2004-04-06 16:55 ` Armen Kaleshian
0 siblings, 1 reply; 3+ messages in thread
From: K.Anantha Kiran @ 2004-04-06 14:20 UTC (permalink / raw)
To: linux-c-programming
We are supposed to build a kernel module which takes packets in the
internet through one interface and forward them to another interface of
my choice based on the IP,Port feilds in the packet.
Our module is working fine for less rate(200Mbps) of traffic.If speed is
increasing(>200Mbps), for some packets "dev_queue_xmit()" is returning NET_XMIT_DROP due to which packets are being dropped.
Can u suggest any solution. Can u give the reason for that return value
only for high traffic.Is there any speed restiction to dev_queue_xmit()
We are using Gigbyte traffic ethrtnet cards.
Thanks in advance,
K.AnanthaKiran
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Can i use dev_queue_xmit
2004-04-06 14:20 ` Can i use dev_queue_xmit K.Anantha Kiran
@ 2004-04-06 16:55 ` Armen Kaleshian
0 siblings, 0 replies; 3+ messages in thread
From: Armen Kaleshian @ 2004-04-06 16:55 UTC (permalink / raw)
To: K.Anantha Kiran; +Cc: linux-c-programming
Why don't you look at the source for iptables? Or use iptables instead of writing the kernel module from scratch?
Good luck!
On Tue, Apr 06, 2004 at 07:50:50PM +0530, K.Anantha Kiran wrote:
:
: We are supposed to build a kernel module which takes packets in the
: internet through one interface and forward them to another interface of
: my choice based on the IP,Port feilds in the packet.
:
: Our module is working fine for less rate(200Mbps) of traffic.If speed is
: increasing(>200Mbps), for some packets "dev_queue_xmit()" is returning NET_XMIT_DROP due to which packets are being dropped.
:
: Can u suggest any solution. Can u give the reason for that return value
: only for high traffic.Is there any speed restiction to dev_queue_xmit()
: We are using Gigbyte traffic ethrtnet cards.
:
: Thanks in advance,
: K.AnanthaKiran
:
:
:
: -
: To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
: the body of a message to majordomo@vger.kernel.org
: More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-04-07 11:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Pine.LNX.4.44.0404070954110.12893-100000@csews106.cse.iitk.ac.in>
2004-04-07 11:14 ` Can i use dev_queue_xmit K.Anantha Kiran
2004-03-23 13:31 Splitter syedk
2004-04-06 14:20 ` Can i use dev_queue_xmit K.Anantha Kiran
2004-04-06 16:55 ` Armen Kaleshian
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).