mpls: Per-device enabling of packet input
authorRobert Shearman <rshearma@brocade.com>
Wed, 22 Apr 2015 10:14:38 +0000 (11:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Apr 2015 18:24:54 +0000 (14:24 -0400)
commit37bde79979c3862c79294c62ddcef7efc477e4bf
treea2268a0a600ed3eb1e33df0f43bbd3c72c5e30e0
parent03c57747a7020a28a200e7e920fb48ecdc9b0fb8
mpls: Per-device enabling of packet input

An MPLS network is a single trust domain where the edges must be in
control of what labels make their way into the core. The simplest way
of ensuring this is for the edge device to always impose the labels,
and not allow forward labeled traffic from untrusted neighbours. This
is achieved by allowing a per-device configuration of whether MPLS
traffic input from that interface should be processed or not.

To be secure by default, the default state is changed to MPLS being
disabled on all interfaces unless explicitly enabled and no global
option is provided to change the default. Whilst this differs from
other protocols (e.g. IPv6), network operators are used to explicitly
enabling MPLS forwarding on interfaces, and with the number of links
to the MPLS core typically fairly low this doesn't present too much of
a burden on operators.

Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Robert Shearman <rshearma@brocade.com>
Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/mpls-sysctl.txt
net/mpls/af_mpls.c
net/mpls/internal.h