Allow multiple MPLS output labels to be passed on the CLI

Change-Id: Ib5af105e32b6b0df86923e189ab6bf6ee59de5b9
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet/mpls/mpls_tunnel.c b/src/vnet/mpls/mpls_tunnel.c
index 6452a60..5211c92 100644
--- a/src/vnet/mpls/mpls_tunnel.c
+++ b/src/vnet/mpls/mpls_tunnel.c
@@ -800,11 +800,24 @@
             is_del = 0;
         else if (unformat (line_input, "add"))
             is_del = 0;
-        else if (unformat (line_input, "out-label %U",
-                           unformat_mpls_unicast_label, &out_label))
-        {
-            vec_add1(rpath.frp_label_stack, out_label);
-        }
+        else if (unformat (line_input, "out-labels"))
+	{
+            if (vec_len (rpaths) == 0)
+	    {
+                error = clib_error_return (0, "Paths then labels");
+                goto done;
+            }
+            else
+            {
+                while (unformat (line_input, "%U",
+                                 unformat_mpls_unicast_label,
+                                 &out_label))
+                {
+                    vec_add1 (rpaths[vec_len (rpaths) - 1].frp_label_stack,
+                              out_label);
+                }
+            }
+	}
         else if (unformat (line_input, "via %U %U",
                            unformat_ip4_address,
                            &rpath.frp_addr.ip4,