+static void
+ikev2_process_pending_sa_init (ikev2_main_t * km)
+{
+ u32 sai;
+ u64 ispi;
+ ikev2_sa_t *sa;
+
+ /* *INDENT-OFF* */
+ hash_foreach (ispi, sai, km->sa_by_ispi,
+ ({
+ sa = pool_elt_at_index (km->sais, sai);
+ u32 bi0;
+ if (vlib_buffer_alloc (km->vlib_main, &bi0, 1) != 1)
+ return;
+
+ vlib_buffer_t * b = vlib_get_buffer (km->vlib_main, bi0);
+ clib_memcpy_fast (vlib_buffer_get_current (b),
+ sa->last_sa_init_req_packet_data,
+ vec_len (sa->last_sa_init_req_packet_data));
+ ikev2_send_ike (km->vlib_main, &sa->iaddr, &sa->raddr, bi0,
+ vec_len (sa->last_sa_init_req_packet_data));
+ }));
+ /* *INDENT-ON* */
+}
+