aboutsummaryrefslogtreecommitdiffstats
path: root/net/mpls
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2015-03-07 16:23:23 -0600
committerDavid S. Miller <davem@davemloft.net>2015-03-08 19:30:06 -0400
commitaa7da9375677d31dd53ed6253f55cb19e3075811 (patch)
treeac11af07cf40a14c90b6bbd00c3c795719516992 /net/mpls
parentmpls: Better error code for unsupported option. (diff)
downloadlinux-dev-aa7da9375677d31dd53ed6253f55cb19e3075811.tar.xz
linux-dev-aa7da9375677d31dd53ed6253f55cb19e3075811.zip
mpls: Correct the ttl decrement.
According to RFC3032 section 2.4.2 packets with an outgoing ttl of 0 MUST NOT be forwarded. According to section 2.4.1 an outgoing TTL of 0 comes from an incomming TTL <= 1. Therefore any packets that is received with a ttl <= 1 should not have it's ttl decremented and forwarded. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mpls')
-rw-r--r--net/mpls/af_mpls.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index 5c99e3fc1b72..e120074157de 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
@@ -162,7 +162,7 @@ static int mpls_forward(struct sk_buff *skb, struct net_device *dev,
skb_forward_csum(skb);
/* Verify ttl is valid */
- if (dec.ttl <= 2)
+ if (dec.ttl <= 1)
goto drop;
dec.ttl -= 1;