ipip: Multi-point interface
[vpp.git] / src / vnet / ipip / ipip_api.c
index 4f6aa7f..97fff15 100644 (file)
@@ -40,6 +40,7 @@ vl_api_ipip_add_tunnel_t_handler (vl_api_ipip_add_tunnel_t * mp)
   tunnel_encap_decap_flags_t flags;
   ip46_address_t src, dst;
   ip46_type_t itype[2];
+  tunnel_mode_t mode;
 
   itype[0] = ip_address_decode (&mp->tunnel.src, &src);
   itype[1] = ip_address_decode (&mp->tunnel.dst, &dst);
@@ -58,6 +59,11 @@ vl_api_ipip_add_tunnel_t_handler (vl_api_ipip_add_tunnel_t * mp)
 
   rv = tunnel_encap_decap_flags_decode (mp->tunnel.flags, &flags);
 
+  if (rv)
+    goto out;
+
+  rv = tunnel_mode_decode (mp->tunnel.mode, &mode);
+
   if (rv)
     goto out;
 
@@ -75,7 +81,8 @@ vl_api_ipip_add_tunnel_t_handler (vl_api_ipip_add_tunnel_t * mp)
                             IPIP_TRANSPORT_IP4),
                            ntohl (mp->tunnel.instance), &src, &dst,
                            fib_index, flags,
-                           ip_dscp_decode (mp->tunnel.dscp), &sw_if_index);
+                           ip_dscp_decode (mp->tunnel.dscp), mode,
+                           &sw_if_index);
     }
 
 out: