diff --git a/docs/gettingstarted/developers/vnet.md b/docs/gettingstarted/developers/vnet.md
index cd9e22f..60362f4 100644
--- a/docs/gettingstarted/developers/vnet.md
+++ b/docs/gettingstarted/developers/vnet.md
@@ -52,7 +52,7 @@
      u16 nexts[VLIB_FRAME_SIZE], *next;
 
      n_left_from = frame->n_vectors;
-     from = vlib_frame_args (frame);
+     from = vlib_frame_vector_args (frame);
 
      /* 
       * Convert up to VLIB_FRAME_SIZE indices in "from" to 
diff --git a/src/examples/vlib/main_stub.c b/src/examples/vlib/main_stub.c
index 3b19c53..c5c19aa 100644
--- a/src/examples/vlib/main_stub.c
+++ b/src/examples/vlib/main_stub.c
@@ -50,7 +50,7 @@
 format_my_node_frame (u8 * s, va_list * va)
 {
   vlib_frame_t *f = va_arg (*va, vlib_frame_t *);
-  my_frame_t *g = vlib_frame_args (f);
+  my_frame_t *g = vlib_frame_scalar_args (f);
   int i;
 
   s = format (s, "scalar %d, vector { ", g->scalar);
@@ -82,7 +82,7 @@
     {
       vlib_frame_t *next = vlib_get_next_frame (vm, rt, /* next index */ 0);
       n_left = VLIB_FRAME_SIZE - next->n_vectors;
-      y = vlib_frame_args (next);
+      y = vlib_frame_scalar_args (next);
       y->scalar = serial++;
     }
   else
diff --git a/src/plugins/avf/output.c b/src/plugins/avf/output.c
index 72892d1..e4b4228 100644
--- a/src/plugins/avf/output.c
+++ b/src/plugins/avf/output.c
@@ -45,7 +45,7 @@
   u8 qid = thread_index;
   avf_txq_t *txq = vec_elt_at_index (ad->txqs, qid % ad->num_queue_pairs);
   avf_tx_desc_t *d0, *d1, *d2, *d3;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 bi0, bi1, bi2, bi3;
   u16 n_left, n_left_to_send, n_in_batch;
   vlib_buffer_t *b0, *b1, *b2, *b3;
diff --git a/src/plugins/marvell/pp2/output.c b/src/plugins/marvell/pp2/output.c
index 468440c..18969a4 100644
--- a/src/plugins/marvell/pp2/output.c
+++ b/src/plugins/marvell/pp2/output.c
@@ -39,7 +39,7 @@
     vec_elt_at_index (ppm->per_thread_data, thread_index);
   u8 qid = thread_index;
   mrvl_pp2_outq_t *outq = vec_elt_at_index (ppif->outqs, qid);
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u16 n_desc = frame->n_vectors, n_left = n_desc, n_sent = n_desc, n_done;
   struct pp2_ppio_desc *d;
   u16 mask = outq->size - 1;
@@ -87,7 +87,7 @@
   /* free unsent buffers */
   if (PREDICT_FALSE (n_sent != n_desc))
     {
-      vlib_buffer_free (vm, vlib_frame_args (frame) + n_sent,
+      vlib_buffer_free (vm, vlib_frame_vector_args (frame) + n_sent,
 			frame->n_vectors - n_sent);
       vlib_error_count (vm, node->node_index, MRVL_PP2_TX_ERROR_NO_FREE_SLOTS,
 			frame->n_vectors - n_sent);
@@ -98,7 +98,7 @@
   if (n_sent)
     {
       u16 slot = outq->head & mask;
-      buffers = vlib_frame_args (frame);
+      buffers = vlib_frame_vector_args (frame);
       u16 n_copy = clib_min (outq->size - slot, n_sent);
 
       clib_memcpy (outq->buffers + slot, buffers, n_copy * sizeof (u32));
diff --git a/src/plugins/memif/device.c b/src/plugins/memif/device.c
index a05ab87..9e4cd69 100644
--- a/src/plugins/memif/device.c
+++ b/src/plugins/memif/device.c
@@ -103,7 +103,7 @@
 			   memif_per_thread_data_t * ptd)
 {
   memif_ring_t *ring;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 n_left = frame->n_vectors;
   u32 n_copy_op;
   u16 ring_size, mask, slot, free_slots;
@@ -287,7 +287,7 @@
       mq->int_count++;
     }
 
-  vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
 
   return frame->n_vectors;
 }
@@ -299,7 +299,7 @@
 			      memif_per_thread_data_t * ptd)
 {
   memif_ring_t *ring = mq->ring;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 n_left = frame->n_vectors;
   u16 slot, free_slots, n_free;
   u16 ring_size = 1 << mq->log2_ring_size;
diff --git a/src/plugins/vmxnet3/output.c b/src/plugins/vmxnet3/output.c
index 2886c31..2a6418d 100644
--- a/src/plugins/vmxnet3/output.c
+++ b/src/plugins/vmxnet3/output.c
@@ -100,7 +100,7 @@
   vmxnet3_main_t *vmxm = &vmxnet3_main;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
   vmxnet3_device_t *vd = pool_elt_at_index (vmxm->devices, rd->dev_instance);
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 bi0;
   vlib_buffer_t *b0;
   vmxnet3_tx_desc *txd = 0;
diff --git a/src/vlib/error.c b/src/vlib/error.c
index e6e4f2d..691e639 100644
--- a/src/vlib/error.c
+++ b/src/vlib/error.c
@@ -114,7 +114,7 @@
 misc_drop_buffers (vlib_main_t * vm,
 		   vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  return vlib_error_drop_buffers (vm, node, vlib_frame_args (frame),
+  return vlib_error_drop_buffers (vm, node, vlib_frame_vector_args (frame),
 				  /* buffer stride */ 1,
 				  frame->n_vectors,
 				  /* next */ 0,
diff --git a/src/vlib/main.c b/src/vlib/main.c
index 1b9eb39..b46caf1 100644
--- a/src/vlib/main.c
+++ b/src/vlib/main.c
@@ -157,6 +157,7 @@
   f->n_vectors = 0;
   f->scalar_size = scalar_size;
   f->vector_size = vector_size;
+  f->flags = 0;
 
   fs->n_alloc_frames += 1;
 
diff --git a/src/vlib/node.c b/src/vlib/node.c
index c87400d..88185ce 100644
--- a/src/vlib/node.c
+++ b/src/vlib/node.c
@@ -529,7 +529,7 @@
   u16 n_vectors = frame->n_vectors;
 
   vlib_node_increment_counter (vm, node->node_index, 0, n_vectors);
-  vlib_buffer_free (vm, vlib_frame_args (frame), n_vectors);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), n_vectors);
   vlib_frame_free (vm, node, frame);
 
   return n_vectors;
diff --git a/src/vlib/node_funcs.h b/src/vlib/node_funcs.h
index 3304d0f..13614aa 100644
--- a/src/vlib/node_funcs.h
+++ b/src/vlib/node_funcs.h
@@ -271,9 +271,6 @@
 
 /** \brief Get pointer to frame scalar data.
 
- @warning This is almost certainly not the function you wish to call.
- See @ref vlib_frame_vector_args instead.
-
  @param f vlib_frame_t pointer
 
  @return arbitrary node scalar data
@@ -281,7 +278,7 @@
  @sa vlib_frame_vector_args
 */
 always_inline void *
-vlib_frame_args (vlib_frame_t * f)
+vlib_frame_scalar_args (vlib_frame_t * f)
 {
   return vlib_frame_vector_args (f) - f->scalar_size;
 }
diff --git a/src/vlibmemory/vlib_api.c b/src/vlibmemory/vlib_api.c
index 16e6402..6f0cdf9 100644
--- a/src/vlibmemory/vlib_api.c
+++ b/src/vlibmemory/vlib_api.c
@@ -464,7 +464,7 @@
 
   vec_validate (long_msg, 4095);
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   while (n_left_from > 0)
     {
@@ -498,7 +498,7 @@
     }
 
   /* Free what we've been given. */
-  vlib_buffer_free (vm, vlib_frame_args (frame), n_packets);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), n_packets);
 
   return n_packets;
 }
diff --git a/src/vnet/bonding/device.c b/src/vnet/bonding/device.c
index 13ff644..e7d6cda 100644
--- a/src/vnet/bonding/device.c
+++ b/src/vnet/bonding/device.c
@@ -658,7 +658,7 @@
 
   if (PREDICT_FALSE (bif->admin_up == 0))
     {
-      vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+      vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
       vlib_increment_simple_counter (vnet_main.interface_main.sw_if_counters +
 				     VNET_INTERFACE_COUNTER_DROP,
 				     thread_index, bif->sw_if_index,
@@ -671,7 +671,7 @@
   n_slaves = vec_len (bif->active_slaves);
   if (PREDICT_FALSE (n_slaves == 0))
     {
-      vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+      vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
       vlib_increment_simple_counter (vnet_main.interface_main.sw_if_counters +
 				     VNET_INTERFACE_COUNTER_DROP,
 				     thread_index, bif->sw_if_index,
diff --git a/src/vnet/devices/af_packet/device.c b/src/vnet/devices/af_packet/device.c
index b8c7501..811642e 100644
--- a/src/vnet/devices/af_packet/device.c
+++ b/src/vnet/devices/af_packet/device.c
@@ -81,7 +81,7 @@
 			vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
   af_packet_main_t *apm = &af_packet_main;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 n_left = frame->n_vectors;
   u32 n_sent = 0;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
@@ -168,7 +168,7 @@
     vlib_error_count (vm, node->node_index, AF_PACKET_TX_ERROR_TXRING_OVERRUN,
 		      n_left);
 
-  vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
   return frame->n_vectors;
 }
 
diff --git a/src/vnet/devices/netmap/device.c b/src/vnet/devices/netmap/device.c
index e39888f..409a52f 100644
--- a/src/vnet/devices/netmap/device.c
+++ b/src/vnet/devices/netmap/device.c
@@ -98,7 +98,7 @@
 		     vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
   netmap_main_t *nm = &netmap_main;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 n_left = frame->n_vectors;
   f64 const time_constant = 1e3;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
@@ -169,7 +169,7 @@
 		       frame->n_vectors ? NETMAP_TX_ERROR_PENDING_MSGS :
 		       NETMAP_TX_ERROR_NO_FREE_SLOTS), n_left);
 
-  vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
   return frame->n_vectors;
 }
 
diff --git a/src/vnet/devices/pipe/pipe.c b/src/vnet/devices/pipe/pipe.c
index 8b30f47..f45c088 100644
--- a/src/vnet/devices/pipe/pipe.c
+++ b/src/vnet/devices/pipe/pipe.c
@@ -140,7 +140,7 @@
   pipe_t *pipe;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   while (n_left_from > 0)
     {
diff --git a/src/vnet/devices/virtio/device.c b/src/vnet/devices/virtio/device.c
index 69aca65..2b2c853 100644
--- a/src/vnet/devices/virtio/device.c
+++ b/src/vnet/devices/virtio/device.c
@@ -180,7 +180,7 @@
   u16 used, next, avail;
   u16 sz = vring->size;
   u16 mask = sz - 1;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
 
   clib_spinlock_lock_if_init (&vif->lockp);
 
diff --git a/src/vnet/devices/virtio/vhost_user_output.c b/src/vnet/devices/virtio/vhost_user_output.c
index 9b6c017..dff129e 100644
--- a/src/vnet/devices/virtio/vhost_user_output.c
+++ b/src/vnet/devices/virtio/vhost_user_output.c
@@ -230,7 +230,7 @@
 						   vlib_node_runtime_t *
 						   node, vlib_frame_t * frame)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   u32 n_left = frame->n_vectors;
   vhost_user_main_t *vum = &vhost_user_main;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
@@ -555,7 +555,7 @@
 	 thread_index, vui->sw_if_index, n_left);
     }
 
-  vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
   return frame->n_vectors;
 }
 
diff --git a/src/vnet/ethernet/interface.c b/src/vnet/ethernet/interface.c
index 2cb137c..c66fa82 100644
--- a/src/vnet/ethernet/interface.c
+++ b/src/vnet/ethernet/interface.c
@@ -405,7 +405,7 @@
   u32 new_tx_sw_if_index = ~0;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   vlib_get_buffers (vm, from, bufs, n_left_from);
   b = bufs;
diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c
index f858564..be4ab7d 100644
--- a/src/vnet/interface_output.c
+++ b/src/vnet/interface_output.c
@@ -99,7 +99,7 @@
   u32 n_left, *from;
 
   n_left = n_buffers;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   while (n_left >= 4)
     {
@@ -222,7 +222,7 @@
   if (node->flags & VLIB_NODE_FLAG_TRACE)
     vnet_interface_output_trace (vm, node, frame, n_buffers);
 
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   if (rt->is_deleted)
     return vlib_error_drop_buffers (vm, node, from,
@@ -475,7 +475,7 @@
 
   n_left_from = frame->n_vectors;
 
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   next_index = node->cached_next_index;
 
   while (n_left_from > 0)
@@ -669,7 +669,7 @@
 validate_error_frame (vlib_main_t * vm,
 		      vlib_node_runtime_t * node, vlib_frame_t * f)
 {
-  u32 *buffers = vlib_frame_args (f);
+  u32 *buffers = vlib_frame_vector_args (f);
   vlib_buffer_t *b;
   u8 *msg = 0;
   uword i;
@@ -719,7 +719,7 @@
   static vlib_error_t memory[VNET_ERROR_N_DISPOSITION];
   static char memory_init[VNET_ERROR_N_DISPOSITION];
 
-  buffers = vlib_frame_args (frame);
+  buffers = vlib_frame_vector_args (frame);
   first_buffer = buffers;
 
   {
diff --git a/src/vnet/ip/punt.c b/src/vnet/ip/punt.c
index 538a1ac..a6d6c08 100644
--- a/src/vnet/ip/punt.c
+++ b/src/vnet/ip/punt.c
@@ -312,7 +312,7 @@
 			  vlib_node_runtime_t * node,
 			  vlib_frame_t * frame, bool is_ip4)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_packets = frame->n_vectors;
   struct iovec *iovecs = 0;
   punt_main_t *pm = &punt_main;
diff --git a/src/vnet/pg/output.c b/src/vnet/pg/output.c
index 016e5b3..410a433 100644
--- a/src/vnet/pg/output.c
+++ b/src/vnet/pg/output.c
@@ -47,7 +47,7 @@
 pg_output (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
   pg_main_t *pg = &pg_main;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_buffers = frame->n_vectors;
   uword n_left = n_buffers;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
@@ -80,7 +80,7 @@
     pcap_write (&pif->pcap_main);
 
 
-  vlib_buffer_free (vm, vlib_frame_args (frame), n_buffers);
+  vlib_buffer_free (vm, vlib_frame_vector_args (frame), n_buffers);
   if (PREDICT_FALSE (pif->lockp != 0))
     clib_atomic_release (pif->lockp);
 
diff --git a/src/vnet/pipeline.h b/src/vnet/pipeline.h
index ec2ac0b..2ac1a9a 100644
--- a/src/vnet/pipeline.h
+++ b/src/vnet/pipeline.h
@@ -92,7 +92,7 @@
   AUX_DATA_DECL;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   vlib_get_buffers (vm, from, bufs, n_left_from);
 
   for (pi = 0; pi < NSTAGES - 1; pi++)
@@ -134,7 +134,7 @@
   AUX_DATA_DECL;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   vlib_get_buffers (vm, from, bufs, n_left_from);
 
   for (pi = 0; pi < NSTAGES - 1; pi++)
@@ -181,7 +181,7 @@
   AUX_DATA_DECL;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   vlib_get_buffers (vm, from, bufs, n_left_from);
 
   for (pi = 0; pi < NSTAGES - 1; pi++)
@@ -233,7 +233,7 @@
   AUX_DATA_DECL;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   vlib_get_buffers (vm, from, bufs, n_left_from);
 
   for (pi = 0; pi < NSTAGES - 1; pi++)
@@ -290,7 +290,7 @@
   AUX_DATA_DECL;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
   vlib_get_buffers (vm, from, bufs, n_left_from);
 
   for (pi = 0; pi < NSTAGES - 1; pi++)
diff --git a/src/vnet/srp/interface.c b/src/vnet/srp/interface.c
index b418ec2..28e5199 100644
--- a/src/vnet/srp/interface.c
+++ b/src/vnet/srp/interface.c
@@ -281,7 +281,7 @@
   vlib_buffer_t * b;
 
   n_left_from = frame->n_vectors;
-  from = vlib_frame_args (frame);
+  from = vlib_frame_vector_args (frame);
 
   while (n_left_from > 0)
     {
diff --git a/src/vnet/unix/tapcli.c b/src/vnet/unix/tapcli.c
index 765e857..83ac33f 100644
--- a/src/vnet/unix/tapcli.c
+++ b/src/vnet/unix/tapcli.c
@@ -170,7 +170,7 @@
 static uword
 tapcli_tx (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_packets = frame->n_vectors;
   tapcli_main_t *tm = &tapcli_main;
   tapcli_interface_t *ti;
@@ -603,7 +603,7 @@
 tapcli_nopunt_frame (vlib_main_t * vm,
 		     vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_packets = frame->n_vectors;
   vlib_buffer_free (vm, buffers, n_packets);
   vlib_frame_free (vm, node, frame);
diff --git a/src/vnet/unix/tuntap.c b/src/vnet/unix/tuntap.c
index 5f22592..d663d96 100644
--- a/src/vnet/unix/tuntap.c
+++ b/src/vnet/unix/tuntap.c
@@ -146,7 +146,7 @@
 static uword
 tuntap_tx (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_packets = frame->n_vectors;
   tuntap_main_t *tm = &tuntap_main;
   vnet_main_t *vnm = vnet_get_main ();
@@ -934,7 +934,7 @@
 tuntap_nopunt_frame (vlib_main_t * vm,
 		     vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_packets = frame->n_vectors;
   vlib_buffer_free (vm, buffers, n_packets);
   vlib_frame_free (vm, node, frame);
@@ -980,7 +980,7 @@
 		 vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
   tuntap_main_t *tm = &tuntap_main;
-  u32 *buffers = vlib_frame_args (frame);
+  u32 *buffers = vlib_frame_vector_args (frame);
   uword n_buffers = frame->n_vectors;
 
   /* Normal interface transmit happens only on the normal interface... */
