fib: Source Address Selection
[vpp.git] / src / plugins / igmp / igmp_pkt.c
index 81b8ecb..8912e5a 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #include <igmp/igmp_pkt.h>
+#include <vnet/fib/fib_sas.h>
 
 static void
 vlib_buffer_append (vlib_buffer_t * b, uword l)
@@ -27,7 +28,6 @@ vlib_buffer_append (vlib_buffer_t * b, uword l)
 static vlib_buffer_t *
 igmp_pkt_get_buffer (igmp_pkt_build_t * bk)
 {
-  vlib_buffer_free_list_t *fl;
   vlib_main_t *vm;
   vlib_buffer_t *b;
   u32 bi;
@@ -38,8 +38,6 @@ igmp_pkt_get_buffer (igmp_pkt_build_t * bk)
     return (NULL);
 
   b = vlib_get_buffer (vm, bi);
-  fl = vlib_buffer_get_free_list (vm, VLIB_BUFFER_DEFAULT_FREE_LIST_INDEX);
-  vlib_buffer_init_for_free_list (b, fl);
   VLIB_BUFFER_TRACE_TRAJECTORY_INIT (b);
 
   b->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
@@ -79,8 +77,7 @@ igmp_pkt_build_ip_header (igmp_pkt_build_t * bk,
   ip4->protocol = IP_PROTOCOL_IGMP;
   ip4->tos = 0xc0;
 
-  ip4_src_address_for_packet (&ip4_main.lookup_main,
-                             bk->sw_if_index, &ip4->src_address);
+  fib_sas4_get (bk->sw_if_index, NULL, &ip4->src_address);
 
   vlib_buffer_append (b, sizeof (*ip4));
   bk->n_avail -= sizeof (*ip4);