On 31/01/17 00:41, David Ahern wrote:
On 1/30/17 1:36 PM, Robert Shearman wrote:
It is sometimes desirable to present an MPLS transport network as a
single hop to traffic transiting it because it prevents confusion when
diagnosing failures. An example of where confusion can be generated is
when addresses used in the provider network overlap with addresses in
the overlay network and the addresses get exposed through ICMP errors
generated as packets transit the provider network.

Therefore, provide the ability to control whether the TTL value from
an MPLS packet is propagated to an IPv4/IPv6 packet when the last
label is popped through the addition of a new per-namespace sysctl:
"net.mpls.ip_ttl_propagate" which defaults to enabled.

Use the same sysctl to control whether the TTL is propagated from IP
packets into the MPLS header. If the TTL isn't propagated then a
default TTL value is used which can be configured via a new sysctl:
"net.mpls.default_ttl".

Signed-off-by: Robert Shearman <rshea...@brocade.com>
---
 Documentation/networking/mpls-sysctl.txt | 19 +++++++++
 include/net/netns/mpls.h                 |  3 ++
 net/mpls/af_mpls.c                       | 70 ++++++++++++++++++++++++--------
 net/mpls/mpls_iptunnel.c                 | 12 +++++-
 4 files changed, 85 insertions(+), 19 deletions(-)

diff --git a/Documentation/networking/mpls-sysctl.txt 
b/Documentation/networking/mpls-sysctl.txt
index 15d8d16934fd..b8f0725ff09e 100644
--- a/Documentation/networking/mpls-sysctl.txt
+++ b/Documentation/networking/mpls-sysctl.txt
@@ -19,6 +19,25 @@ platform_labels - INTEGER
        Possible values: 0 - 1048575
        Default: 0

+ip_ttl_propagate - BOOL
+       Control whether TTL is propagated from the IPv4/IPv6 header to
+       the MPLS header on imposing labels and propagated from the
+       MPLS header to the IPv4/IPv6 header on popping the last label.
+
+       If disabled, the MPLS transport network will appear as a
+       single hop to transit traffic.
+
+       0 - disabled
+       1 - enabled (default)
+

It seems like you are going after RFC 3443 with this change. Can you add 
comment to that effect? i.e.,  ip_ttl_propagate enabled is the Uniform Model 
and ip_ttl_propagate disabled is the Short Pipe Model.


Good idea, will add it in the appropriate place depending on the chosen API.

Thanks,
Rob

Reply via email to