* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder [not found] <20070919093648.GA7491@router.lepton.home> @ 2007-09-19 15:00 ` Patrick McHardy 2007-09-19 15:17 ` Patrick McHardy 0 siblings, 1 reply; 6+ messages in thread From: Patrick McHardy @ 2007-09-19 15:00 UTC (permalink / raw) To: lepton; +Cc: lkm, Netfilter Development Mailinglist, Linux Netdev List lepton wrote: > Hi, > For local src packets, it is better to update sk_route_caps in > ip_route_me_harder. This seems like a good idea to me. But why only for local src (address) packets? This function can also be used for locally generated packet that have been (f.i.) NATed to a foreign address ... > Signed-off-by: Lepton Wu <ytht.net@gmail.com> > > diff -pru -X linux-2.6.22.6/Documentation/dontdiff linux-2.6.22.6/net/ipv4/netfilter.c linux-2.6.22.6-lepton/net/ipv4/netfilter.c > --- linux-2.6.22.6/net/ipv4/netfilter.c 2007-09-19 13:19:13.000000000 +0800 > +++ linux-2.6.22.6-lepton/net/ipv4/netfilter.c 2007-09-19 17:10:36.000000000 +0800 > @@ -37,6 +37,10 @@ int ip_route_me_harder(struct sk_buff ** > /* Drop old route. */ > dst_release((*pskb)->dst); > (*pskb)->dst = &rt->u.dst; > + if((*pskb)->sk){ > + dst_hold((*pskb)->dst); > + sk_setup_caps((*pskb)->sk, (*pskb)->dst); > + } > } else { > /* non-local src, find valid iif to satisfy > * rp-filter when calling ip_route_input. */ > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder 2007-09-19 15:00 ` [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder Patrick McHardy @ 2007-09-19 15:17 ` Patrick McHardy 2007-09-19 15:55 ` lepton 0 siblings, 1 reply; 6+ messages in thread From: Patrick McHardy @ 2007-09-19 15:17 UTC (permalink / raw) To: lepton; +Cc: Netfilter Development Mailinglist, Linux Netdev List Patrick McHardy wrote: > lepton wrote: > >>Hi, >> For local src packets, it is better to update sk_route_caps in >> ip_route_me_harder. > > > > This seems like a good idea to me. But why only for local src > (address) packets? This function can also be used for locally > generated packet that have been (f.i.) NATed to a foreign > address ... Actually, I'm afraid it might break some setups. Rerouting is done per packet, but if we cache the dst_entry for the socket, all packets from that socket will be routed similar. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder 2007-09-19 15:17 ` Patrick McHardy @ 2007-09-19 15:55 ` lepton 2007-09-21 12:39 ` Patrick McHardy 0 siblings, 1 reply; 6+ messages in thread From: lepton @ 2007-09-19 15:55 UTC (permalink / raw) To: Patrick McHardy Cc: lepton, Netfilter Development Mailinglist, Linux Netdev List Yes, you are right. What do you think about this: For all packets can be sent out, we just disable all things in sk_route_caps in ip_route_me_harder diff -X linux-2.6.22.6/Documentation/dontdiff -pru linux-2.6.22.6/net/ipv4/netfilter.c linux-2.6.22.6-lepton/net/ipv4/netfilter.c --- linux-2.6.22.6/net/ipv4/netfilter.c 2007-09-14 17:41:18.000000000 +0800 +++ linux-2.6.22.6-lepton/net/ipv4/netfilter.c 2007-09-19 23:52:11.000000000 +0800 @@ -57,6 +57,10 @@ int ip_route_me_harder(struct sk_buff ** if ((*pskb)->dst->error) return -1; + if((*pskb)->sk&&sk->sk_route_caps) + /* This is overkill, but it is safe and simple */ + sk->sk_route_caps=0; + #ifdef CONFIG_XFRM if (!(IPCB(*pskb)->flags & IPSKB_XFRM_TRANSFORMED) && xfrm_decode_session(*pskb, &fl, AF_INET) == 0) On Wed, Sep 19, 2007 at 05:17:17PM +0200, Patrick McHardy wrote: > Patrick McHardy wrote: > > lepton wrote: > > > >>Hi, > >> For local src packets, it is better to update sk_route_caps in > >> ip_route_me_harder. > > > > > > > > This seems like a good idea to me. But why only for local src > > (address) packets? This function can also be used for locally > > generated packet that have been (f.i.) NATed to a foreign > > address ... > > > Actually, I'm afraid it might break some setups. Rerouting is > done per packet, but if we cache the dst_entry for the socket, > all packets from that socket will be routed similar. > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder 2007-09-19 15:55 ` lepton @ 2007-09-21 12:39 ` Patrick McHardy 2007-09-21 14:07 ` lepton 0 siblings, 1 reply; 6+ messages in thread From: Patrick McHardy @ 2007-09-21 12:39 UTC (permalink / raw) To: lepton; +Cc: Netfilter Development Mailinglist, Linux Netdev List lepton wrote: > Yes, you are right. > What do you think about this: > For all packets can be sent out, we just disable > all things in sk_route_caps in ip_route_me_harder Whats the point of doing that? Is rerouting breaking anything for you? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder 2007-09-21 12:39 ` Patrick McHardy @ 2007-09-21 14:07 ` lepton 2007-09-21 14:57 ` Patrick McHardy 0 siblings, 1 reply; 6+ messages in thread From: lepton @ 2007-09-21 14:07 UTC (permalink / raw) To: Patrick McHardy; +Cc: netfilter-devel, netdev Yes. My situation is: The default route device is a e1000 network card that can do TSO. So the tcp stack will try send big skb to netfilter frame work. But after rerouting, the packtes will go out from a device that can not do TSO. the packet is just get dropped.. I thinks if we can't get a way to tell tcp stack the sk_route_caps of the real out device, we can just disable all things for safety. On Fri, Sep 21, 2007 at 02:39:58PM +0200, Patrick McHardy wrote: > lepton wrote: > > Yes, you are right. > > What do you think about this: > > For all packets can be sent out, we just disable > > all things in sk_route_caps in ip_route_me_harder > > > Whats the point of doing that? Is rerouting breaking anything for you? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder 2007-09-21 14:07 ` lepton @ 2007-09-21 14:57 ` Patrick McHardy 0 siblings, 0 replies; 6+ messages in thread From: Patrick McHardy @ 2007-09-21 14:57 UTC (permalink / raw) To: lepton; +Cc: netfilter-devel, netdev lepton wrote: > My situation is: > The default route device is a e1000 network card that can do TSO. > So the tcp stack will try send big skb to netfilter frame work. > But after rerouting, the packtes will go out from a device that > can not do TSO. the packet is just get dropped.. > > I thinks if we can't get a way to tell tcp stack the sk_route_caps of > the real out device, we can just disable all things for safety. As you already noticed yourself (in private email), this is handled properly in current kernels. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-09-21 15:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20070919093648.GA7491@router.lepton.home>
2007-09-19 15:00 ` [RFC PATCH] 2.6.22.6 netfilter: sk_setup_caps in ip_make_route_harder Patrick McHardy
2007-09-19 15:17 ` Patrick McHardy
2007-09-19 15:55 ` lepton
2007-09-21 12:39 ` Patrick McHardy
2007-09-21 14:07 ` lepton
2007-09-21 14:57 ` Patrick McHardy
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).