On 12/05/2017 01:17 PM, Алексей Болдырев wrote:
Hello, when will VPLS be implemented in Linux? August 15, 2017 were patches
from ekoinoks, which in Linux added support for VPLS. But, these patches for
some reason did not pass. Also, for some reason, the author of these patches
has no activity
Hi,
I was pleased to try to get the patch in and to include my comments, but
David was having better ideas. However, we do not hear news from David
for a while.
David, please, are you still on it? If not, I'll try to find time to
work on it, please share with us your intents.
Thanks,
Amin
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API by simply adding ipgre_tunnel_encap_(add|del)_mpls_ops() and the new
tunnel type TUNNEL_ENCAP_MPLS.
Signed-off-by: Amine Kherbouche
---
include/uapi/linux/if_tunnel.h | 1 +
net/mpls/af_mpls.c | 36
0.200.0.1/24 dev p6
Now using this scapy to forge and send packets from the port p1 of node1:
p = Ether(src='de:ed:01:0c:41:09', dst='de:ed:01:2f:3b:ba')
p /= MPLS(s=1, ttl=64, label=111)/Raw(load='\xde')
sendp(p, iface="p1", count=20, inter=0.1)
Amine Kher
On 09/29/2017 06:11 AM, Tom Herbert wrote:
> @@ -122,6 +125,30 @@ int gre_parse_header(struct sk_buff *skb, struct
tnl_ptk_info *tpi,
> }
> EXPORT_SYMBOL(gre_parse_header);
>
> +#if IS_ENABLED(CONFIG_MPLS)
> +int mpls_gre_rcv(struct sk_buff *skb, int gre_hdr_len)
> +{
> + if (unlikely(
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API.
Encap:
- Add a new iptunnel type mpls.
- Share tx path: gre type mpls loaded from skb->protocol.
Decap:
- pull gre hdr and call mpls_forward().
Signed-off-by: Amine Kherbouche
Acked-by: Roopa Pra
Exporting mpls_forward() function to be able to be called from elsewhere
such as MPLSoverGRE in the next commit.
Signed-off-by: Amine Kherbouche
Acked-by: Roopa Prabhu
---
include/linux/mpls.h | 4
net/mpls/af_mpls.c | 5 +++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff
this scapy to forge and send packets from the port p1 of node1:
p = Ether(src='de:ed:01:0c:41:09', dst='de:ed:01:2f:3b:ba')
p /= MPLS(s=1, ttl=64, label=111)/Raw(load='\xde')
sendp(p, iface="p1", count=20, inter=0.1)
Amine Kherbouche (2):
mpls: export mpls_
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API.
Encap:
- Add a new iptunnel type mpls.
- Share tx path: gre type mpls loaded from skb->protocol.
Decap:
- pull gre hdr and call mpls_forward().
Signed-off-by: Amine Kherbouche
Acked-by: Roopa Pra
port p1 of node1:
p = Ether(src='de:ed:01:0c:41:09', dst='de:ed:01:2f:3b:ba')
p /= MPLS(s=1, ttl=64, label=111)/Raw(load='\xde')
sendp(p, iface="p1", count=20, inter=0.1)
Amine Kherbouche (2):
expose stack entry function
ip_tunnel: add mpls over
Exporting mpls_forward() function to be able to be called from elsewhere
such as MPLSoverGRE in the next commit.
Signed-off-by: Amine Kherbouche
Acked-by: Roopa Prabhu
---
include/linux/mpls.h | 4
net/mpls/af_mpls.c | 5 +++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff
On 09/27/2017 06:20 PM, Roopa Prabhu wrote:
I think its better to bring the patch back in.
Sounds good, ok
On 09/27/2017 05:36 PM, Roopa Prabhu wrote:
Amine, one small nit here.., if you define mpls_gre_rcv in gre header
(like you had initially), you could do the below...
#if IS_ENABLED(CONFIG_MPLS)
mpls_gre_rcv()
{
/* real func */
}
#else
mpls_gre_rcv()
{
kfree_skb(skb)
return NET_RX_
\xde')
sendp(p, iface="p1", count=20, inter=0.1)
Amine Kherbouche (1):
ip_tunnel: add mpls over gre encapsulation
include/linux/mpls.h | 2 ++
include/uapi/linux/if_tunnel.h | 1 +
net/ipv4/ip_gre.c | 11 +
net/ipv6/ip6_gre.c | 11 ++
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API.
Encap:
- Add a new iptunnel type mpls.
- Share tx path: gre type mpls loaded from skb->protocol.
Decap:
- pull gre hdr and call mpls_forward().
Signed-off-by: Amine Kherbouche
---
include/linux/mpl
Hi Roopa,
Thanks for the feedback, I have just one question:
On 09/26/2017 05:15 PM, Roopa Prabhu wrote:
+static int ipgre_tunnel_encap_add_mpls_ops(void)
> +{
> + int ret = -1;
> +
> +#if IS_ENABLED(CONFIG_NET_IP_TUNNEL)
> + ret = ip_tunnel_encap_add_ops(&mpls_iptun_ops, TUNNEL_ENC
/= MPLS(s=1, ttl=64, label=111)/Raw(load='\xde')
sendp(p, iface="p1", count=20, inter=0.1)
Amine Kherbouche (2):
mpls: expose stack entry function
ip_tunnel: add mpls over gre encapsulation
include/linux/mpls.h | 3 +++
include/net/gre.h | 3 +++
in
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API.
Encap:
- Add a new iptunnel type mpls.
- Share tx path: gre type mpls loaded from skb->protocol.
Decap:
- pull gre hdr and call mpls_forward().
Signed-off-by: Amine Kherbouche
---
include/net/gr
Exporting mpls_forward() function to be able to be called from elsewhere
such as MPLS over GRE in the next commit.
Signed-off-by: Amine Kherbouche
---
include/linux/mpls.h | 3 +++
net/mpls/af_mpls.c | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/linux
On 09/22/2017 12:35 AM, Roopa Prabhu wrote:
> diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
> index 36ea2ad..060ed07 100644
> --- a/net/mpls/af_mpls.c
> +++ b/net/mpls/af_mpls.c
> @@ -16,6 +16,7 @@
> #include
> #include
> #include
> +#include
> #include
> #if IS_ENABLED(CONFIG_
Hi Francois,
Thanks for the feedback, I'll make it for the next version.
On 21/09/2017 23:25, Francois Romieu wrote:
Amine Kherbouche :
[...]
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index 36ea2ad..060ed07 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
[...]
@@
Exposing mpls_forward() function to be able to be called from elsewhere
such as MPLS over GRE in the next commit.
Signed-off-by: Amine Kherbouche
---
include/linux/mpls.h | 3 +++
net/mpls/af_mpls.c | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/linux/mpls.h
This commit introduces the MPLSoGRE support (RFC 4023), using ip tunnel
API.
Encap:
- Add a new iptunnel type mpls.
Decap:
- pull gre hdr and call mpls_forward().
Signed-off-by: Amine Kherbouche
---
include/net/gre.h | 3 +++
include/uapi/linux/if_tunnel.h | 1 +
net/ipv4
This series introduces the MPLS over GRE encapsulation (RFC 4023).
Various applications of MPLS make use of label stacks with multiple
entries. In some cases, it is possible to replace the top label of
the stack with an IP-based encapsulation, thereby, it is possible for
two LSRs that are adjacen
Hi David,
What's next ? do you plan to send a v3 or should I do it ?
On 09/11/2017 10:02 AM, Amine Kherbouche wrote:
Hi David,
Do you plan to send a v3?
On 21/08/2017 18:15, David Lamparter wrote:
Hi all,
this is an update on the earlier "[RFC net-next] VPLS support". No
Hi David,
Do you plan to send a v3?
On 21/08/2017 18:15, David Lamparter wrote:
Hi all,
this is an update on the earlier "[RFC net-next] VPLS support". Note
I've changed the subject lines on some of the patches to better reflect
what they really do (tbh the earlier subject lines were crap.)
any opinion on vpls driver path ?
On 08/21/2017 07:15 PM, David Lamparter wrote:
[work-in-progress, works but needs changes]
[v2: refactored lots of things, e.g. dst_metadata, no more genetlink]
[v4: removed pointless include/net/vpls.h, squashed pseudowire control
word support, squashed netlink
On 08/21/2017 05:55 PM, David Lamparter wrote:
+ if (rt->rt_payload_type == MPT_VPLS)
> > + return vpls_rcv(skb, dev, pt, rt, hdr, orig_dev);
>
> you should get the ret value of vpls_rcv() and increment stats if error
> occurs.
An error in vpls_rcv() is not a receive error o
Is it right to put vpls.c file in /net/mpls, I know it's depends
essentially from the mpls stack, but vpls is a driver so moving it in
/drivers/net should be cleaner but we have to export some mpls functions.
Let's see others opinion.
On 08/16/2017 07:02 PM, David Lamparter wrote:
[work-in-
new file mode 100644
index ..28ac810da6e9
--- /dev/null
+++ b/net/mpls/vpls.c
@@ -0,0 +1,469 @@
+/*
+ * net/mpls/vpls.c
+ *
+ * Copyright (C) 2016 David Lamparter
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#inclu
On 08/16/2017 07:01 PM, David Lamparter wrote:
This wires up the neccessary calls for VPLS into the MPLS forwarding
pieces. Since CONFIG_MPLS_VPLS doesn't exist yet in Kconfig, it'll
never be enabled, so we're on the stubs for now.
Signed-off-by: David Lamparter
---
include/uapi/linux/rtnet
On 08/16/2017 07:30 AM, Roopa Prabhu wrote:
On Tue, Aug 15, 2017 at 2:37 AM, David Lamparter wrote:
[snip]
I think the reverse is the better option, removing the vpls device
information and just going with the route table. My approach to this
would be to add a new netlink route attribute "
On 11/08/2017 17:14, Roopa Prabhu wrote:
On Fri, Aug 11, 2017 at 5:55 AM, David Lamparter wrote:
On Thu, Aug 10, 2017 at 10:28:37PM +0200, Amine Kherbouche wrote:
This commit introduces the support of VPLS virtual device, that allows
performing L2VPN multipoint to multipoint communication
On 11/08/2017 16:37, Roopa Prabhu wrote:
On Fri, Aug 11, 2017 at 5:34 AM, David Lamparter wrote:
On Thu, Aug 10, 2017 at 10:28:36PM +0200, Amine Kherbouche wrote:
Mpls handler allows creation/deletion of mpls routes without using
rtnetlink. When an incoming mpls packet matches this route
Mpls handler allows creation/deletion of mpls routes without using
rtnetlink. When an incoming mpls packet matches this route, the saved
function handler is called.
Signed-off-by: Amine Kherbouche
Signed-off-by: David Lamparter
---
include/net/mpls.h | 10 +++
net/mpls/af_mpls.c | 75
: Amine Kherbouche
---
drivers/net/Kconfig | 8 +
drivers/net/Makefile | 1 +
drivers/net/vpls.c | 531 +++
include/net/mpls.h | 15 ++
include/net/vpls.h | 21 ++
include/uapi/linux/if_link.h | 15 ++
net
This small series implements the support of VPLS dataplane using MPLS
encapsulation to perform a l2VPN using a virtual network device.
The ingress ethernet frames are encapsulated and carried over an MPLS packet
switched network, then decapsulated in the egress router (LER) by a vpls
device.
This
37 matches
Mail list logo