vppinfra: make _vec_len() read-only
[vpp.git] / src / plugins / pppoe / pppoe.c
index d073a94..2bdbd3a 100644 (file)
@@ -374,7 +374,7 @@ int vnet_pppoe_add_del_session
          vnet_interface_main_t *im = &vnm->interface_main;
          hw_if_index = pem->free_pppoe_session_hw_if_indices
            [vec_len (pem->free_pppoe_session_hw_if_indices) - 1];
-         _vec_len (pem->free_pppoe_session_hw_if_indices) -= 1;
+         vec_dec_len (pem->free_pppoe_session_hw_if_indices, 1);
 
          hi = vnet_get_hw_interface (vnm, hw_if_index);
          hi->dev_instance = t - pem->sessions;
@@ -413,6 +413,8 @@ int vnet_pppoe_add_del_session
       si->flags &= ~VNET_SW_INTERFACE_FLAG_HIDDEN;
       vnet_sw_interface_set_flags (vnm, sw_if_index,
                                   VNET_SW_INTERFACE_FLAG_ADMIN_UP);
+      vnet_set_interface_l3_output_node (vnm->vlib_main, sw_if_index,
+                                        (u8 *) "tunnel-output");
 
       /* add reverse route for client ip */
       fib_table_entry_path_add (a->decap_fib_index, &pfx,
@@ -431,6 +433,7 @@ int vnet_pppoe_add_del_session
       t = pool_elt_at_index (pem->sessions, result.fields.session_index);
       sw_if_index = t->sw_if_index;
 
+      vnet_reset_interface_l3_output_node (vnm->vlib_main, sw_if_index);
       vnet_sw_interface_set_flags (vnm, t->sw_if_index, 0 /* down */ );
       vnet_sw_interface_t *si = vnet_get_sw_interface (vnm, t->sw_if_index);
       si->flags |= VNET_SW_INTERFACE_FLAG_HIDDEN;