All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Changes for PMTU Discovery
@ 2012-07-20  8:59 Julian Anastasov
  2012-07-20  8:59 ` [PATCH 1/2] ipvs: implement passive PMTUD for IPIP packets Julian Anastasov
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Julian Anastasov @ 2012-07-20  8:59 UTC (permalink / raw)
  To: Simon Horman; +Cc: lvs-devel

	This patchset implements PMTU Discovery for TUN
packets and option to disable it.

Julian Anastasov (2):
  ipvs: implement passive PMTUD for IPIP packets
  ipvs: add pmtu_disc option to disable IP DF for TUN packets

 include/net/ip_vs.h             |   11 +++++
 net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
 net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
 net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
 4 files changed, 149 insertions(+), 29 deletions(-)

-- 
1.7.3.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] ipvs: implement passive PMTUD for IPIP packets
  2012-07-20  8:59 [PATCH 0/2] Changes for PMTU Discovery Julian Anastasov
@ 2012-07-20  8:59 ` Julian Anastasov
  2012-07-20  8:59 ` [PATCH 2/2] ipvs: add pmtu_disc option to disable IP DF for TUN packets Julian Anastasov
  2012-07-23  6:46 ` [PATCH 0/2] Changes for PMTU Discovery Simon Horman
  2 siblings, 0 replies; 8+ messages in thread
From: Julian Anastasov @ 2012-07-20  8:59 UTC (permalink / raw)
  To: Simon Horman; +Cc: lvs-devel

	IPVS is missing the logic to update PMTU in routing
for its IPIP packets. We monitor the dst_mtu and can return
FRAG_NEEDED messages but if the tunneled packets get ICMP
error we can not rely on other traffic to save the lowest
MTU.

	The following patch adds ICMP handling for IPIP
packets in incoming direction, from some remote host to
our local IP used as saddr in the outer header. By this
way we can forward any related ICMP traffic if it is for IPVS
TUN connection. For the special case of PMTUD we update the
routing and if client requested DF we can forward the
error.

	To properly update the routing we have to bind
the cached route (dest->dst_cache) to the selected saddr
because ipv4_update_pmtu uses saddr for dst lookup.
Add IP_VS_RT_MODE_CONNECT flag to force such binding with
second route.

	Update ip_vs_tunnel_xmit to provide IP_VS_RT_MODE_CONNECT
and change the code to copy DF. For now we prefer not to
force PMTU discovery (outer DF=1) because we don't have
configuration option to enable or disable PMTUD. As we
do not keep any packets to resend, we prefer not to
play games with packets without DF bit because the sender
is not informed when they are rejected.

	Also, change ops->update_pmtu to be called only
for local clients because there is no point to update
MTU for input routes, in our case skb->dst->dev is lo.
It seems the code is copied from ipip.c where the skb
dst points to tunnel device.

Signed-off-by: Julian Anastasov <ja@ssi.bg>
---
 net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++++-
 net/netfilter/ipvs/ip_vs_xmit.c |   79 +++++++++++++++++++++++++++------------
 2 files changed, 128 insertions(+), 27 deletions(-)

diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index b54ecce..58918e2 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -1303,7 +1303,8 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
 	struct ip_vs_conn *cp;
 	struct ip_vs_protocol *pp;
 	struct ip_vs_proto_data *pd;
-	unsigned int offset, ihl, verdict;
+	unsigned int offset, offset2, ihl, verdict;
+	bool ipip;
 
 	*related = 1;
 
@@ -1345,6 +1346,21 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
 
 	net = skb_net(skb);
 
+	/* Special case for errors for IPIP packets */
+	ipip = false;
+	if (cih->protocol == IPPROTO_IPIP) {
+		if (unlikely(cih->frag_off & htons(IP_OFFSET)))
+			return NF_ACCEPT;
+		/* Error for our IPIP must arrive at LOCAL_IN */
+		if (!(skb_rtable(skb)->rt_flags & RTCF_LOCAL))
+			return NF_ACCEPT;
+		offset += cih->ihl * 4;
+		cih = skb_header_pointer(skb, offset, sizeof(_ciph), &_ciph);
+		if (cih == NULL)
+			return NF_ACCEPT; /* The packet looks wrong, ignore */
+		ipip = true;
+	}
+
 	pd = ip_vs_proto_data_get(net, cih->protocol);
 	if (!pd)
 		return NF_ACCEPT;
@@ -1358,11 +1374,14 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
 	IP_VS_DBG_PKT(11, AF_INET, pp, skb, offset,
 		      "Checking incoming ICMP for");
 
+	offset2 = offset;
 	offset += cih->ihl * 4;
 
 	ip_vs_fill_iphdr(AF_INET, cih, &ciph);
-	/* The embedded headers contain source and dest in reverse order */
-	cp = pp->conn_in_get(AF_INET, skb, &ciph, offset, 1);
+	/* The embedded headers contain source and dest in reverse order.
+	 * For IPIP this is error for request, not for reply.
+	 */
+	cp = pp->conn_in_get(AF_INET, skb, &ciph, offset, ipip ? 0 : 1);
 	if (!cp)
 		return NF_ACCEPT;
 
@@ -1376,6 +1395,57 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
 		goto out;
 	}
 
+	if (ipip) {
+		__be32 info = ic->un.gateway;
+
+		/* Update the MTU */
+		if (ic->type == ICMP_DEST_UNREACH &&
+		    ic->code == ICMP_FRAG_NEEDED) {
+			struct ip_vs_dest *dest = cp->dest;
+			u32 mtu = ntohs(ic->un.frag.mtu);
+
+			/* Strip outer IP and ICMP, go to IPIP header */
+			__skb_pull(skb, ihl + sizeof(_icmph));
+			offset2 -= ihl + sizeof(_icmph);
+			skb_reset_network_header(skb);
+			IP_VS_DBG(12, "ICMP for IPIP %pI4->%pI4: mtu=%u\n",
+				&ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr, mtu);
+			rcu_read_lock();
+			ipv4_update_pmtu(skb, dev_net(skb->dev),
+					 mtu, 0, 0, 0, 0);
+			rcu_read_unlock();
+			/* Client uses PMTUD? */
+			if (!(cih->frag_off & htons(IP_DF)))
+				goto ignore_ipip;
+			/* Prefer the resulting PMTU */
+			if (dest) {
+				spin_lock(&dest->dst_lock);
+				if (dest->dst_cache)
+					mtu = dst_mtu(dest->dst_cache);
+				spin_unlock(&dest->dst_lock);
+			}
+			if (mtu > 68 + sizeof(struct iphdr))
+				mtu -= sizeof(struct iphdr);
+			info = htonl(mtu);
+		}
+		/* Strip outer IP, ICMP and IPIP, go to IP header of
+		 * original request.
+		 */
+		__skb_pull(skb, offset2);
+		skb_reset_network_header(skb);
+		IP_VS_DBG(12, "Sending ICMP for %pI4->%pI4: t=%u, c=%u, i=%u\n",
+			&ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr,
+			ic->type, ic->code, ntohl(info));
+		icmp_send(skb, ic->type, ic->code, info);
+		/* ICMP can be shorter but anyways, account it */
+		ip_vs_out_stats(cp, skb);
+
+ignore_ipip:
+		consume_skb(skb);
+		verdict = NF_STOLEN;
+		goto out;
+	}
+
 	/* do the statistics and put it back */
 	ip_vs_in_stats(cp, skb);
 	if (IPPROTO_TCP == cih->protocol || IPPROTO_UDP == cih->protocol)
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
index 65b616a..c2275ba 100644
--- a/net/netfilter/ipvs/ip_vs_xmit.c
+++ b/net/netfilter/ipvs/ip_vs_xmit.c
@@ -49,6 +49,7 @@ enum {
 	IP_VS_RT_MODE_RDR	= 4, /* Allow redirect from remote daddr to
 				      * local
 				      */
+	IP_VS_RT_MODE_CONNECT	= 8, /* Always bind route to saddr */
 };
 
 /*
@@ -84,6 +85,42 @@ __ip_vs_dst_check(struct ip_vs_dest *dest, u32 rtos)
 	return dst;
 }
 
+/* Get route to daddr, update *saddr, optionally bind route to saddr */
+static struct rtable *do_output_route4(struct net *net, __be32 daddr,
+				       u32 rtos, int rt_mode, __be32 *saddr)
+{
+	struct flowi4 fl4;
+	struct rtable *rt;
+	int loop = 0;
+
+	memset(&fl4, 0, sizeof(fl4));
+	fl4.daddr = daddr;
+	fl4.saddr = (rt_mode & IP_VS_RT_MODE_CONNECT) ? *saddr : 0;
+	fl4.flowi4_tos = rtos;
+
+retry:
+	rt = ip_route_output_key(net, &fl4);
+	if (IS_ERR(rt)) {
+		/* Invalid saddr ? */
+		if (PTR_ERR(rt) == -EINVAL && *saddr &&
+		    rt_mode & IP_VS_RT_MODE_CONNECT && !loop) {
+			*saddr = 0;
+			flowi4_update_output(&fl4, 0, rtos, daddr, 0);
+			goto retry;
+		}
+		IP_VS_DBG_RL("ip_route_output error, dest: %pI4\n", &daddr);
+		return NULL;
+	} else if (!*saddr && rt_mode & IP_VS_RT_MODE_CONNECT && fl4.saddr) {
+		ip_rt_put(rt);
+		*saddr = fl4.saddr;
+		flowi4_update_output(&fl4, 0, rtos, daddr, fl4.saddr);
+		loop++;
+		goto retry;
+	}
+	*saddr = fl4.saddr;
+	return rt;
+}
+
 /* Get route to destination or remote server */
 static struct rtable *
 __ip_vs_get_out_rt(struct sk_buff *skb, struct ip_vs_dest *dest,
@@ -98,20 +135,13 @@ __ip_vs_get_out_rt(struct sk_buff *skb, struct ip_vs_dest *dest,
 		spin_lock(&dest->dst_lock);
 		if (!(rt = (struct rtable *)
 		      __ip_vs_dst_check(dest, rtos))) {
-			struct flowi4 fl4;
-
-			memset(&fl4, 0, sizeof(fl4));
-			fl4.daddr = dest->addr.ip;
-			fl4.flowi4_tos = rtos;
-			rt = ip_route_output_key(net, &fl4);
-			if (IS_ERR(rt)) {
+			rt = do_output_route4(net, dest->addr.ip, rtos,
+					      rt_mode, &dest->dst_saddr.ip);
+			if (!rt) {
 				spin_unlock(&dest->dst_lock);
-				IP_VS_DBG_RL("ip_route_output error, dest: %pI4\n",
-					     &dest->addr.ip);
 				return NULL;
 			}
 			__ip_vs_dst_set(dest, rtos, dst_clone(&rt->dst), 0);
-			dest->dst_saddr.ip = fl4.saddr;
 			IP_VS_DBG(10, "new dst %pI4, src %pI4, refcnt=%d, "
 				  "rtos=%X\n",
 				  &dest->addr.ip, &dest->dst_saddr.ip,
@@ -122,19 +152,17 @@ __ip_vs_get_out_rt(struct sk_buff *skb, struct ip_vs_dest *dest,
 			*ret_saddr = dest->dst_saddr.ip;
 		spin_unlock(&dest->dst_lock);
 	} else {
-		struct flowi4 fl4;
+		__be32 saddr = htonl(INADDR_ANY);
 
-		memset(&fl4, 0, sizeof(fl4));
-		fl4.daddr = daddr;
-		fl4.flowi4_tos = rtos;
-		rt = ip_route_output_key(net, &fl4);
-		if (IS_ERR(rt)) {
-			IP_VS_DBG_RL("ip_route_output error, dest: %pI4\n",
-				     &daddr);
+		/* For such unconfigured boxes avoid many route lookups
+		 * for performance reasons because we do not remember saddr
+		 */
+		rt_mode &= ~IP_VS_RT_MODE_CONNECT;
+		rt = do_output_route4(net, daddr, rtos, rt_mode, &saddr);
+		if (!rt)
 			return NULL;
-		}
 		if (ret_saddr)
-			*ret_saddr = fl4.saddr;
+			*ret_saddr = saddr;
 	}
 
 	local = rt->rt_flags & RTCF_LOCAL;
@@ -331,6 +359,7 @@ ip_vs_dst_reset(struct ip_vs_dest *dest)
 	old_dst = dest->dst_cache;
 	dest->dst_cache = NULL;
 	dst_release(old_dst);
+	dest->dst_saddr.ip = 0;
 }
 
 #define IP_VS_XMIT_TUNNEL(skb, cp)				\
@@ -771,7 +800,7 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
 	struct net_device *tdev;		/* Device to other host */
 	struct iphdr  *old_iph = ip_hdr(skb);
 	u8     tos = old_iph->tos;
-	__be16 df = old_iph->frag_off;
+	__be16 df;
 	struct iphdr  *iph;			/* Our new IP header */
 	unsigned int max_headroom;		/* The extra header space needed */
 	int    mtu;
@@ -781,7 +810,8 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
 
 	if (!(rt = __ip_vs_get_out_rt(skb, cp->dest, cp->daddr.ip,
 				      RT_TOS(tos), IP_VS_RT_MODE_LOCAL |
-						   IP_VS_RT_MODE_NON_LOCAL,
+						   IP_VS_RT_MODE_NON_LOCAL |
+						   IP_VS_RT_MODE_CONNECT,
 						   &saddr)))
 		goto tx_error_icmp;
 	if (rt->rt_flags & RTCF_LOCAL) {
@@ -796,10 +826,11 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
 		IP_VS_DBG_RL("%s(): mtu less than 68\n", __func__);
 		goto tx_error_put;
 	}
-	if (skb_dst(skb))
+	if (rt_is_output_route(skb_rtable(skb)))
 		skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
 
-	df |= (old_iph->frag_off & htons(IP_DF));
+	/* Copy DF, reset fragment offset and MF */
+	df = old_iph->frag_off & htons(IP_DF);
 
 	if ((old_iph->frag_off & htons(IP_DF) &&
 	    mtu < ntohs(old_iph->tot_len) && !skb_is_gso(skb))) {
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] ipvs: add pmtu_disc option to disable IP DF for TUN packets
  2012-07-20  8:59 [PATCH 0/2] Changes for PMTU Discovery Julian Anastasov
  2012-07-20  8:59 ` [PATCH 1/2] ipvs: implement passive PMTUD for IPIP packets Julian Anastasov
@ 2012-07-20  8:59 ` Julian Anastasov
  2012-07-23  6:46 ` [PATCH 0/2] Changes for PMTU Discovery Simon Horman
  2 siblings, 0 replies; 8+ messages in thread
From: Julian Anastasov @ 2012-07-20  8:59 UTC (permalink / raw)
  To: Simon Horman; +Cc: lvs-devel

	Disabling PMTU discovery can increase the output packet
rate but some users have enough resources and prefer to fragment
than to drop traffic. By default, we copy the DF bit but if
pmtu_disc is disabled we do not send FRAG_NEEDED messages anymore.

Signed-off-by: Julian Anastasov <ja@ssi.bg>
---
 include/net/ip_vs.h             |   11 +++++++++++
 net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++++++
 net/netfilter/ipvs/ip_vs_xmit.c |    6 +++---
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index 95374d1..f6741ed 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -890,6 +890,7 @@ struct netns_ipvs {
 	unsigned int		sysctl_sync_refresh_period;
 	int			sysctl_sync_retries;
 	int			sysctl_nat_icmp_send;
+	int			sysctl_pmtu_disc;
 
 	/* ip_vs_lblc */
 	int			sysctl_lblc_expiration;
@@ -976,6 +977,11 @@ static inline int sysctl_sync_sock_size(struct netns_ipvs *ipvs)
 	return ipvs->sysctl_sync_sock_size;
 }
 
+static inline int sysctl_pmtu_disc(struct netns_ipvs *ipvs)
+{
+	return ipvs->sysctl_pmtu_disc;
+}
+
 #else
 
 static inline int sysctl_sync_threshold(struct netns_ipvs *ipvs)
@@ -1018,6 +1024,11 @@ static inline int sysctl_sync_sock_size(struct netns_ipvs *ipvs)
 	return 0;
 }
 
+static inline int sysctl_pmtu_disc(struct netns_ipvs *ipvs)
+{
+	return 1;
+}
+
 #endif
 
 /*
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
index 84444dd..df7432c 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -1801,6 +1801,12 @@ static struct ctl_table vs_vars[] = {
 		.mode		= 0644,
 		.proc_handler	= proc_dointvec,
 	},
+	{
+		.procname	= "pmtu_disc",
+		.maxlen		= sizeof(int),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec,
+	},
 #ifdef CONFIG_IP_VS_DEBUG
 	{
 		.procname	= "debug_level",
@@ -3726,6 +3732,8 @@ int __net_init ip_vs_control_net_init_sysctl(struct net *net)
 	ipvs->sysctl_sync_retries = clamp_t(int, DEFAULT_SYNC_RETRIES, 0, 3);
 	tbl[idx++].data = &ipvs->sysctl_sync_retries;
 	tbl[idx++].data = &ipvs->sysctl_nat_icmp_send;
+	ipvs->sysctl_pmtu_disc = 1;
+	tbl[idx++].data = &ipvs->sysctl_pmtu_disc;
 
 
 	ipvs->sysctl_hdr = register_net_sysctl(net, "net/ipv4/vs", tbl);
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
index c2275ba..543a554 100644
--- a/net/netfilter/ipvs/ip_vs_xmit.c
+++ b/net/netfilter/ipvs/ip_vs_xmit.c
@@ -795,6 +795,7 @@ int
 ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
 		  struct ip_vs_protocol *pp)
 {
+	struct netns_ipvs *ipvs = net_ipvs(skb_net(skb));
 	struct rtable *rt;			/* Route to the other host */
 	__be32 saddr;				/* Source for tunnel */
 	struct net_device *tdev;		/* Device to other host */
@@ -830,10 +831,9 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
 		skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
 
 	/* Copy DF, reset fragment offset and MF */
-	df = old_iph->frag_off & htons(IP_DF);
+	df = sysctl_pmtu_disc(ipvs) ? old_iph->frag_off & htons(IP_DF) : 0;
 
-	if ((old_iph->frag_off & htons(IP_DF) &&
-	    mtu < ntohs(old_iph->tot_len) && !skb_is_gso(skb))) {
+	if (df && mtu < ntohs(old_iph->tot_len) && !skb_is_gso(skb)) {
 		icmp_send(skb, ICMP_DEST_UNREACH,ICMP_FRAG_NEEDED, htonl(mtu));
 		IP_VS_DBG_RL("%s(): frag needed\n", __func__);
 		goto tx_error_put;
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/2] Changes for PMTU Discovery
  2012-07-20  8:59 [PATCH 0/2] Changes for PMTU Discovery Julian Anastasov
  2012-07-20  8:59 ` [PATCH 1/2] ipvs: implement passive PMTUD for IPIP packets Julian Anastasov
  2012-07-20  8:59 ` [PATCH 2/2] ipvs: add pmtu_disc option to disable IP DF for TUN packets Julian Anastasov
@ 2012-07-23  6:46 ` Simon Horman
  2012-07-23  7:33   ` Julian Anastasov
  2 siblings, 1 reply; 8+ messages in thread
From: Simon Horman @ 2012-07-23  6:46 UTC (permalink / raw)
  To: Julian Anastasov; +Cc: lvs-devel

On Fri, Jul 20, 2012 at 11:59:51AM +0300, Julian Anastasov wrote:
> 	This patchset implements PMTU Discovery for TUN
> packets and option to disable it.
> 
> Julian Anastasov (2):
>   ipvs: implement passive PMTUD for IPIP packets
>   ipvs: add pmtu_disc option to disable IP DF for TUN packets
> 
>  include/net/ip_vs.h             |   11 +++++
>  net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
>  net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
>  net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
>  4 files changed, 149 insertions(+), 29 deletions(-)

Thanks, I have applied these to ipvs-next.

There were some offsets when applying the patches
and a conflict in the last hunk of ip_vs_xmit.c (in the first patch).
Could you check to make sure everything went in ok?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/2] Changes for PMTU Discovery
  2012-07-23  6:46 ` [PATCH 0/2] Changes for PMTU Discovery Simon Horman
@ 2012-07-23  7:33   ` Julian Anastasov
  2012-07-23  7:59     ` Simon Horman
  0 siblings, 1 reply; 8+ messages in thread
From: Julian Anastasov @ 2012-07-23  7:33 UTC (permalink / raw)
  To: Simon Horman; +Cc: lvs-devel


	Hello,

On Mon, 23 Jul 2012, Simon Horman wrote:

> On Fri, Jul 20, 2012 at 11:59:51AM +0300, Julian Anastasov wrote:
> > 	This patchset implements PMTU Discovery for TUN
> > packets and option to disable it.
> > 
> > Julian Anastasov (2):
> >   ipvs: implement passive PMTUD for IPIP packets
> >   ipvs: add pmtu_disc option to disable IP DF for TUN packets
> > 
> >  include/net/ip_vs.h             |   11 +++++
> >  net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
> >  net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
> >  net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
> >  4 files changed, 149 insertions(+), 29 deletions(-)
> 
> Thanks, I have applied these to ipvs-next.
> 
> There were some offsets when applying the patches
> and a conflict in the last hunk of ip_vs_xmit.c (in the first patch).
> Could you check to make sure everything went in ok?

	I created it for net-next on the same day because
I saw this problem. Both patches apply even on net-next from
today. May be ipvs-next is outdated, net-next changes rapidly
last days. If you want to push these patches in this merge
window you have to update ipvs-next. If it is not possible
I'll resend after 2 weeks.

Regards

--
Julian Anastasov <ja@ssi.bg>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/2] Changes for PMTU Discovery
  2012-07-23  7:33   ` Julian Anastasov
@ 2012-07-23  7:59     ` Simon Horman
  2012-07-23 10:45       ` Pablo Neira Ayuso
  0 siblings, 1 reply; 8+ messages in thread
From: Simon Horman @ 2012-07-23  7:59 UTC (permalink / raw)
  To: Julian Anastasov; +Cc: lvs-devel, Pablo Neira Ayuso

On Mon, Jul 23, 2012 at 10:33:24AM +0300, Julian Anastasov wrote:
> 
> 	Hello,
> 
> On Mon, 23 Jul 2012, Simon Horman wrote:
> 
> > On Fri, Jul 20, 2012 at 11:59:51AM +0300, Julian Anastasov wrote:
> > > 	This patchset implements PMTU Discovery for TUN
> > > packets and option to disable it.
> > > 
> > > Julian Anastasov (2):
> > >   ipvs: implement passive PMTUD for IPIP packets
> > >   ipvs: add pmtu_disc option to disable IP DF for TUN packets
> > > 
> > >  include/net/ip_vs.h             |   11 +++++
> > >  net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
> > >  net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
> > >  net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
> > >  4 files changed, 149 insertions(+), 29 deletions(-)
> > 
> > Thanks, I have applied these to ipvs-next.
> > 
> > There were some offsets when applying the patches
> > and a conflict in the last hunk of ip_vs_xmit.c (in the first patch).
> > Could you check to make sure everything went in ok?
> 
> 	I created it for net-next on the same day because
> I saw this problem. Both patches apply even on net-next from
> today. May be ipvs-next is outdated, net-next changes rapidly
> last days. If you want to push these patches in this merge
> window you have to update ipvs-next. If it is not possible
> I'll resend after 2 weeks.

ipvs-next is based on Pablo's nf-next tree.
So the timing of updating is up to him.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/2] Changes for PMTU Discovery
  2012-07-23  7:59     ` Simon Horman
@ 2012-07-23 10:45       ` Pablo Neira Ayuso
  2012-07-23 23:02         ` Simon Horman
  0 siblings, 1 reply; 8+ messages in thread
From: Pablo Neira Ayuso @ 2012-07-23 10:45 UTC (permalink / raw)
  To: Simon Horman; +Cc: Julian Anastasov, lvs-devel

On Mon, Jul 23, 2012 at 04:59:49PM +0900, Simon Horman wrote:
> On Mon, Jul 23, 2012 at 10:33:24AM +0300, Julian Anastasov wrote:
> > 
> > 	Hello,
> > 
> > On Mon, 23 Jul 2012, Simon Horman wrote:
> > 
> > > On Fri, Jul 20, 2012 at 11:59:51AM +0300, Julian Anastasov wrote:
> > > > 	This patchset implements PMTU Discovery for TUN
> > > > packets and option to disable it.
> > > > 
> > > > Julian Anastasov (2):
> > > >   ipvs: implement passive PMTUD for IPIP packets
> > > >   ipvs: add pmtu_disc option to disable IP DF for TUN packets
> > > > 
> > > >  include/net/ip_vs.h             |   11 +++++
> > > >  net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
> > > >  net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
> > > >  net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
> > > >  4 files changed, 149 insertions(+), 29 deletions(-)
> > > 
> > > Thanks, I have applied these to ipvs-next.
> > > 
> > > There were some offsets when applying the patches
> > > and a conflict in the last hunk of ip_vs_xmit.c (in the first patch).
> > > Could you check to make sure everything went in ok?
> > 
> > 	I created it for net-next on the same day because
> > I saw this problem. Both patches apply even on net-next from
> > today. May be ipvs-next is outdated, net-next changes rapidly
> > last days. If you want to push these patches in this merge
> > window you have to update ipvs-next. If it is not possible
> > I'll resend after 2 weeks.
> 
> ipvs-next is based on Pablo's nf-next tree.
> So the timing of updating is up to him.

I just refreshed my tree. Let me know if this is what you needed.

Please, feel free to ping me whenever you need this.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/2] Changes for PMTU Discovery
  2012-07-23 10:45       ` Pablo Neira Ayuso
@ 2012-07-23 23:02         ` Simon Horman
  0 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2012-07-23 23:02 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: Julian Anastasov, lvs-devel

On Mon, Jul 23, 2012 at 12:45:45PM +0200, Pablo Neira Ayuso wrote:
> On Mon, Jul 23, 2012 at 04:59:49PM +0900, Simon Horman wrote:
> > On Mon, Jul 23, 2012 at 10:33:24AM +0300, Julian Anastasov wrote:
> > > 
> > > 	Hello,
> > > 
> > > On Mon, 23 Jul 2012, Simon Horman wrote:
> > > 
> > > > On Fri, Jul 20, 2012 at 11:59:51AM +0300, Julian Anastasov wrote:
> > > > > 	This patchset implements PMTU Discovery for TUN
> > > > > packets and option to disable it.
> > > > > 
> > > > > Julian Anastasov (2):
> > > > >   ipvs: implement passive PMTUD for IPIP packets
> > > > >   ipvs: add pmtu_disc option to disable IP DF for TUN packets
> > > > > 
> > > > >  include/net/ip_vs.h             |   11 +++++
> > > > >  net/netfilter/ipvs/ip_vs_core.c |   76 ++++++++++++++++++++++++++++++++++-
> > > > >  net/netfilter/ipvs/ip_vs_ctl.c  |    8 ++++
> > > > >  net/netfilter/ipvs/ip_vs_xmit.c |   83 ++++++++++++++++++++++++++------------
> > > > >  4 files changed, 149 insertions(+), 29 deletions(-)
> > > > 
> > > > Thanks, I have applied these to ipvs-next.
> > > > 
> > > > There were some offsets when applying the patches
> > > > and a conflict in the last hunk of ip_vs_xmit.c (in the first patch).
> > > > Could you check to make sure everything went in ok?
> > > 
> > > 	I created it for net-next on the same day because
> > > I saw this problem. Both patches apply even on net-next from
> > > today. May be ipvs-next is outdated, net-next changes rapidly
> > > last days. If you want to push these patches in this merge
> > > window you have to update ipvs-next. If it is not possible
> > > I'll resend after 2 weeks.
> > 
> > ipvs-next is based on Pablo's nf-next tree.
> > So the timing of updating is up to him.
> 
> I just refreshed my tree. Let me know if this is what you needed.

Thanks, I'll rebase my tree.

> Please, feel free to ping me whenever you need this.

Sure, will do.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-07-23 23:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-20  8:59 [PATCH 0/2] Changes for PMTU Discovery Julian Anastasov
2012-07-20  8:59 ` [PATCH 1/2] ipvs: implement passive PMTUD for IPIP packets Julian Anastasov
2012-07-20  8:59 ` [PATCH 2/2] ipvs: add pmtu_disc option to disable IP DF for TUN packets Julian Anastasov
2012-07-23  6:46 ` [PATCH 0/2] Changes for PMTU Discovery Simon Horman
2012-07-23  7:33   ` Julian Anastasov
2012-07-23  7:59     ` Simon Horman
2012-07-23 10:45       ` Pablo Neira Ayuso
2012-07-23 23:02         ` Simon Horman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.