Add flags to bsn_vport_l2gre.
diff --git a/openflow_input/bsn_vport b/openflow_input/bsn_vport
index 97316b4..82d9d33 100644
--- a/openflow_input/bsn_vport
+++ b/openflow_input/bsn_vport
@@ -42,17 +42,12 @@
     OF_BSN_VPORT_Q_IN_Q_UNTAGGED = 0xffff,
 };
 
-enum ofp_bsn_vport_l2gre_dscp_mode(wire_type=uint8_t) {
-    OF_BSN_VPORT_L2GRE_DSCP_ASSIGN = 0,
-    OF_BSN_VPORT_L2GRE_DSCP_COPY = 1,
-};
+enum ofp_bsn_vport_l2gre_flags(wire_type=uint32_t, bitmask=True) {
+    OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID = 0x1,
 
-enum ofp_bsn_vport_l2gre_dscp_dont_care(wire_type=uint8_t, complete=False) {
-    OF_BSN_VPORT_L2GRE_DSCP_DONT_CARE = 0xff,
-};
-
-enum ofp_bsn_vport_l2gre_ttl_dont_care(wire_type=uint8_t, complete=False) {
-    OF_BSN_VPORT_L2GRE_TTL_DONT_CARE = 0xff,
+    /* DSCP flags are mutually exclusive */
+    OF_BSN_VPORT_L2GRE_DSCP_ASSIGN = 0x2,
+    OF_BSN_VPORT_L2GRE_DSCP_COPY = 0x4,
 };
 
 // BSN Virtual port object header
@@ -83,15 +78,15 @@
 struct of_bsn_vport_l2gre : of_bsn_vport {
     uint16_t type == 1;
     uint16_t length;
+    enum ofp_bsn_vport_l2gre_flags flags;
     of_port_no_t port_no;       /* OF port number of parent */
     of_mac_addr_t local_mac;    /* Local MAC */
     of_mac_addr_t nh_mac;       /* Next Hop MAC */
     of_ipv4_t src_ip;           /* Source IP */
     of_ipv4_t dst_ip;           /* Destination IP */
-    enum ofp_bsn_vport_l2gre_dscp_mode dscp_mode;
     uint8_t dscp;
     uint8_t ttl;
-    pad(1);
+    pad(2);
     uint32_t vpn;               /* VPN ID (for GRE Key) */
     of_port_name_t if_name;     /* Virtual Interface Name */
 };