ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESN
[vpp.git] / src / vnet / pg / stream.c
index bf0eac3..c60c584 100644 (file)
@@ -435,17 +435,13 @@ pg_stream_add (pg_main_t * pg, pg_stream_t * s_init)
   s->last_increment_packet_size = s->min_packet_bytes;
 
   {
-    pg_buffer_index_t *bi;
     int n;
 
-    s->buffer_bytes = VLIB_BUFFER_DEFAULT_FREE_LIST_BYTES;
+    s->buffer_bytes = vlib_buffer_get_default_data_size (vm);
     n = s->max_packet_bytes / s->buffer_bytes;
     n += (s->max_packet_bytes % s->buffer_bytes) != 0;
 
     vec_resize (s->buffer_indices, n);
-
-    vec_foreach (bi, s->buffer_indices)
-      bi->free_list_index = VLIB_BUFFER_DEFAULT_FREE_LIST_INDEX;
   }
 
   /* Find an interface to use. */
@@ -487,6 +483,31 @@ pg_stream_del (pg_main_t * pg, uword index)
   pool_put (pg->streams, s);
 }
 
+void
+pg_stream_change (pg_main_t * pg, pg_stream_t * s)
+{
+  /* Determine packet size. */
+  switch (s->packet_size_edit_type)
+    {
+    case PG_EDIT_INCREMENT:
+    case PG_EDIT_RANDOM:
+      if (s->min_packet_bytes == s->max_packet_bytes)
+       s->packet_size_edit_type = PG_EDIT_FIXED;
+    case PG_EDIT_FIXED:
+      break;
+
+    default:
+      /* Get packet size from fixed edits. */
+      s->packet_size_edit_type = PG_EDIT_FIXED;
+      if (!s->replay_packet_templates)
+       s->min_packet_bytes = s->max_packet_bytes =
+         vec_len (s->fixed_packet_data);
+      break;
+    }
+
+  s->last_increment_packet_size = s->min_packet_bytes;
+}
+
 
 /*
  * fd.io coding-style-patch-verification: ON