Packet generator: preserve pcap file timestamps

Set vnet_buffer2(b0)->pg_replay_timestamp, for use when desired.

Fix a memory leak in pg_stream_free(...), which wasn't freeing the
replay packet templates.

Change-Id: I01822a9e91a52de4774d2b95cf0c2ee254a915e9
Signed-off-by: Dave Barach <dave@barachs.net>
diff --git a/src/vnet/pg/pg.h b/src/vnet/pg/pg.h
index 20852ba..b2b5798 100644
--- a/src/vnet/pg/pg.h
+++ b/src/vnet/pg/pg.h
@@ -169,6 +169,7 @@
   pg_buffer_index_t *buffer_indices;
 
   u8 **replay_packet_templates;
+  u64 *replay_packet_timestamps;
   u32 current_replay_packet_index;
 } pg_stream_t;
 
@@ -192,6 +193,7 @@
 always_inline void
 pg_stream_free (pg_stream_t * s)
 {
+  int i;
   pg_edit_group_t *g;
   pg_edit_t *e;
   vec_foreach (e, s->non_fixed_edits) pg_edit_free (e);
@@ -201,6 +203,10 @@
   vec_free (s->fixed_packet_data);
   vec_free (s->fixed_packet_data_mask);
   vec_free (s->name);
+  for (i = 0; i < vec_len (s->replay_packet_templates); i++)
+    vec_free (s->replay_packet_templates[i]);
+  vec_free (s->replay_packet_templates);
+  vec_free (s->replay_packet_timestamps);
 
   {
     pg_buffer_index_t *bi;