netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Maximum MPLS labels on Linux network stack
@ 2017-05-03 17:33 Алексей Болдырев
  2017-05-03 18:14 ` David Ahern
  0 siblings, 1 reply; 8+ messages in thread
From: Алексей Болдырев @ 2017-05-03 17:33 UTC (permalink / raw)
  To: netdev

I watched one forum, there is listed in the properties of one license for Cisco, it says:

Layer 3 VPN • Multi-VRF CE (VRF-lite); requires IP Services Feature license
• MPLS VPN; requires Advanced IP Feature license
• 26 VRFs
• 8192 MPLS labels 

Especially interested in the figure 8192 MPLS Labels.

As I understand it, is it either a limit on the number of labels on the stack or the total number of labels?

In Linux, for example, you can specify a common col- lection of labels through /proc/sys/net/mpls/platforms_labels

Also I would like to know if the openvswitch has a limit of 3 tags in the stack or the total number of MPLS labels that can send?

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 17:33 Maximum MPLS labels on Linux network stack Алексей Болдырев
@ 2017-05-03 18:14 ` David Ahern
  2017-05-03 20:21   ` Joe Stringer
  0 siblings, 1 reply; 8+ messages in thread
From: David Ahern @ 2017-05-03 18:14 UTC (permalink / raw)
  To: Алексей Болдырев,
	netdev

On 5/3/17 11:33 AM, Алексей Болдырев wrote:
> I watched one forum, there is listed in the properties of one license for Cisco, it says:
> 
> Layer 3 VPN • Multi-VRF CE (VRF-lite); requires IP Services Feature license
> • MPLS VPN; requires Advanced IP Feature license
> • 26 VRFs

There is no direct limit on the number of VRFs the kernel allows you to
create. There are indirect ones -- total memory in the system and limits
such as /proc/sys/net/ipv6/route/max_size. By increasing the latter I
have created 4k VRFs in a system.


> • 8192 MPLS labels 
> 
> Especially interested in the figure 8192 MPLS Labels.

8192 labels added in one pass is absurd. There is no reason to support
such a number. With the latest version of the MPLS stack in the kernel
you can add up to 30 labels in a single route. If you want more you have
to either recirculate the packet using routes or recompile the kernel
and increase the memory limit and the number of labels limit.

> 
> As I understand it, is it either a limit on the number of labels on the stack or the total number of labels?
> 
> In Linux, for example, you can specify a common col- lection of labels through /proc/sys/net/mpls/platforms_labels

that just allocates the size of an array which dictates the max label
number for that namespace. The array needs to be converted to a hash
table at some point.

> 
> Also I would like to know if the openvswitch has a limit of 3 tags in the stack or the total number of MPLS labels that can send?
> 

someone familiar with OVS needs to answer that.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 18:14 ` David Ahern
@ 2017-05-03 20:21   ` Joe Stringer
  2017-05-03 21:19     ` Алексей Болдырев
  2017-05-04  2:22     ` David Ahern
  0 siblings, 2 replies; 8+ messages in thread
From: Joe Stringer @ 2017-05-03 20:21 UTC (permalink / raw)
  To: David Ahern
  Cc: Алексей Болдырев,
	netdev

On 3 May 2017 at 11:14, David Ahern <dsahern@gmail.com> wrote:
> On 5/3/17 11:33 AM, Алексей Болдырев wrote:
>> I watched one forum, there is listed in the properties of one license for Cisco, it says:
>>
>> Layer 3 VPN • Multi-VRF CE (VRF-lite); requires IP Services Feature license
>> • MPLS VPN; requires Advanced IP Feature license
>> • 26 VRFs
>
> There is no direct limit on the number of VRFs the kernel allows you to
> create. There are indirect ones -- total memory in the system and limits
> such as /proc/sys/net/ipv6/route/max_size. By increasing the latter I
> have created 4k VRFs in a system.
>
>
>> • 8192 MPLS labels
>>
>> Especially interested in the figure 8192 MPLS Labels.
>
> 8192 labels added in one pass is absurd. There is no reason to support
> such a number. With the latest version of the MPLS stack in the kernel
> you can add up to 30 labels in a single route. If you want more you have
> to either recirculate the packet using routes or recompile the kernel
> and increase the memory limit and the number of labels limit.
>
>>
>> As I understand it, is it either a limit on the number of labels on the stack or the total number of labels?
>>
>> In Linux, for example, you can specify a common col- lection of labels through /proc/sys/net/mpls/platforms_labels
>
> that just allocates the size of an array which dictates the max label
> number for that namespace. The array needs to be converted to a hash
> table at some point.
>
>>
>> Also I would like to know if the openvswitch has a limit of 3 tags in the stack or the total number of MPLS labels that can send?
>>
>
> someone familiar with OVS needs to answer that.

That would be 3 tags in a stack. When we spoke to people involved in
the design and usage of MPLS in practice, we got the impression that
it's very rare for anyone to configure a setup where more than that is
used concurrently on a packet. If you believe the contrary, then I
imagine it's not hard to bump that limit.

There is no limit on which labels can be used from OVS, it's just a
number in an action attached to a flow.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 20:21   ` Joe Stringer
@ 2017-05-03 21:19     ` Алексей Болдырев
  2017-05-03 21:22       ` Joe Stringer
  2017-05-04  2:22     ` David Ahern
  1 sibling, 1 reply; 8+ messages in thread
From: Алексей Болдырев @ 2017-05-03 21:19 UTC (permalink / raw)
  To: Joe Stringer, David Ahern; +Cc: netdev

Is it possible to increase this limit in OpenVswitch?

03.05.2017, 23:21, "Joe Stringer" <joe@ovn.org>:
> On 3 May 2017 at 11:14, David Ahern <dsahern@gmail.com> wrote:
>>  On 5/3/17 11:33 AM, Алексей Болдырев wrote:
>>>  I watched one forum, there is listed in the properties of one license for Cisco, it says:
>>>
>>>  Layer 3 VPN • Multi-VRF CE (VRF-lite); requires IP Services Feature license
>>>  • MPLS VPN; requires Advanced IP Feature license
>>>  • 26 VRFs
>>
>>  There is no direct limit on the number of VRFs the kernel allows you to
>>  create. There are indirect ones -- total memory in the system and limits
>>  such as /proc/sys/net/ipv6/route/max_size. By increasing the latter I
>>  have created 4k VRFs in a system.
>>
>>>  • 8192 MPLS labels
>>>
>>>  Especially interested in the figure 8192 MPLS Labels.
>>
>>  8192 labels added in one pass is absurd. There is no reason to support
>>  such a number. With the latest version of the MPLS stack in the kernel
>>  you can add up to 30 labels in a single route. If you want more you have
>>  to either recirculate the packet using routes or recompile the kernel
>>  and increase the memory limit and the number of labels limit.
>>
>>>  As I understand it, is it either a limit on the number of labels on the stack or the total number of labels?
>>>
>>>  In Linux, for example, you can specify a common col- lection of labels through /proc/sys/net/mpls/platforms_labels
>>
>>  that just allocates the size of an array which dictates the max label
>>  number for that namespace. The array needs to be converted to a hash
>>  table at some point.
>>
>>>  Also I would like to know if the openvswitch has a limit of 3 tags in the stack or the total number of MPLS labels that can send?
>>
>>  someone familiar with OVS needs to answer that.
>
> That would be 3 tags in a stack. When we spoke to people involved in
> the design and usage of MPLS in practice, we got the impression that
> it's very rare for anyone to configure a setup where more than that is
> used concurrently on a packet. If you believe the contrary, then I
> imagine it's not hard to bump that limit.
>
> There is no limit on which labels can be used from OVS, it's just a
> number in an action attached to a flow.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 21:19     ` Алексей Болдырев
@ 2017-05-03 21:22       ` Joe Stringer
  2017-05-03 21:29         ` Алексей Болдырев
  0 siblings, 1 reply; 8+ messages in thread
From: Joe Stringer @ 2017-05-03 21:22 UTC (permalink / raw)
  To: Алексей Болдырев
  Cc: David Ahern, netdev

On 3 May 2017 at 14:19, Алексей Болдырев
<devel-net-ne-vlezay80@yandex.ru> wrote:
> Is it possible to increase this limit in OpenVswitch?

Yes.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 21:22       ` Joe Stringer
@ 2017-05-03 21:29         ` Алексей Болдырев
  2017-05-03 21:46           ` Joe Stringer
  0 siblings, 1 reply; 8+ messages in thread
From: Алексей Болдырев @ 2017-05-03 21:29 UTC (permalink / raw)
  To: Joe Stringer; +Cc: David Ahern, netdev

As I understand it, it's enough to just set the variable in the source
#define FLOW_MAX_MPLS_LABELS 3
on
#define FLOW_MAX_MPLS_LABELS 7
Or is there somehow still pitfalls?

04.05.2017, 00:22, "Joe Stringer" <joe@ovn.org>:
> On 3 May 2017 at 14:19, Алексей Болдырев
> <devel-net-ne-vlezay80@yandex.ru> wrote:
>>  Is it possible to increase this limit in OpenVswitch?
>
> Yes.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 21:29         ` Алексей Болдырев
@ 2017-05-03 21:46           ` Joe Stringer
  0 siblings, 0 replies; 8+ messages in thread
From: Joe Stringer @ 2017-05-03 21:46 UTC (permalink / raw)
  To: Алексей Болдырев
  Cc: David Ahern, netdev

On 3 May 2017 at 14:29, Алексей Болдырев
<devel-net-ne-vlezay80@yandex.ru> wrote:
> As I understand it, it's enough to just set the variable in the source
> #define FLOW_MAX_MPLS_LABELS 3
> on
> #define FLOW_MAX_MPLS_LABELS 7
> Or is there somehow still pitfalls?

You'll probably need to update the BUILD_ASSERT_DECL for the offset of
igmp_group_ip4, and for extra safety increment FLOW_WC_SEQ and inspect
each other place that has BUILD_ASSERT_DECL statements relying on that
FLOW_WC_SEQ. Changing FLOW_WC_SEQ will introduce compiler
warnings/failures so you can step through each location, take a look
if it's relevant and update the BUILD_ASSERT_DECL.

At a glance it seems like even with that bump, OVS userspace is only
detecting support for 3 labels so you might need to update something
kernel-side as well.

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

* Re: Maximum MPLS labels on Linux network stack
  2017-05-03 20:21   ` Joe Stringer
  2017-05-03 21:19     ` Алексей Болдырев
@ 2017-05-04  2:22     ` David Ahern
  1 sibling, 0 replies; 8+ messages in thread
From: David Ahern @ 2017-05-04  2:22 UTC (permalink / raw)
  To: Joe Stringer,
	Алексей Болдырев
  Cc: netdev

On 5/3/17 2:21 PM, Joe Stringer wrote:
>> • 8192 MPLS labels
>>
>> Especially interested in the figure 8192 MPLS Labels.

The 8k labels has to be 8k individual routes with a single label (or a
few labels in the stack for the route). In that case you can set
net.mpls.platforms_labels to 10001 and install routes with label values
up to 10000.

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

end of thread, other threads:[~2017-05-04  2:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-03 17:33 Maximum MPLS labels on Linux network stack Алексей Болдырев
2017-05-03 18:14 ` David Ahern
2017-05-03 20:21   ` Joe Stringer
2017-05-03 21:19     ` Алексей Болдырев
2017-05-03 21:22       ` Joe Stringer
2017-05-03 21:29         ` Алексей Болдырев
2017-05-03 21:46           ` Joe Stringer
2017-05-04  2:22     ` David Ahern

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).