Support for specifying interface name while creating virtual port.
diff --git a/c_gen/templates/loci_show.h b/c_gen/templates/loci_show.h
index b28b807..d720e06 100644
--- a/c_gen/templates/loci_show.h
+++ b/c_gen/templates/loci_show.h
@@ -154,6 +154,7 @@
 #define LOCI_SHOW_string(writer, cookie, val) writer(cookie, "%s", val)
 
 #define LOCI_SHOW_port_name(writer, cookie, val) LOCI_SHOW_string(writer, cookie, val)
+#define LOCI_SHOW_port_name_if_name(writer, cookie, val) LOCI_SHOW_string(writer, cookie, val)
 #define LOCI_SHOW_tab_name(writer, cookie, val) LOCI_SHOW_string(writer, cookie, val)
 #define LOCI_SHOW_desc_str(writer, cookie, val) LOCI_SHOW_string(writer, cookie, val)
 #define LOCI_SHOW_ser_num(writer, cookie, val) LOCI_SHOW_string(writer, cookie, val)
diff --git a/openflow_input/bsn_vport b/openflow_input/bsn_vport
index 52f7c1d..122a398 100644
--- a/openflow_input/bsn_vport
+++ b/openflow_input/bsn_vport
@@ -46,6 +46,7 @@
 // FIXME For now, inheritance is not exercised.  See below.
 struct of_bsn_vport {
     uint16_t type == ?;  /* Discriminate virtual port type */
+    of_port_name_t if_name;  /* Name to use in create operation */
     uint16_t length; /* Length in bytes of this structure with this header */
     /* Remainder of data is specific to the port type */
 };
@@ -55,7 +56,8 @@
 
 struct of_bsn_vport_q_in_q : of_bsn_vport {
     uint16_t type == 0;
-    uint16_t length;  /* 16 */
+    of_port_name_t if_name;
+    uint16_t length;  /* 32 */
     uint32_t port_no;     /* OF port number of parent; usually phys port */
     uint16_t ingress_tpid;
     uint16_t ingress_vlan_id;