geneve: support geneve interface acting as a bvi

create geneve tunnel local 10.10.10.10 remote 10.10.10.9 vni 48 decap-next node ethernet-input l3-mode
set interface ip address geneve_tunnel0 11.11.11.12/24

Type: feature
Change-Id: I579ce879553d72a2e8048e33d0c0122674996b81
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/vnet/geneve/geneve.h b/src/vnet/geneve/geneve.h
index 491ae23..0b962e7 100644
--- a/src/vnet/geneve/geneve.h
+++ b/src/vnet/geneve/geneve.h
@@ -135,6 +135,8 @@
    * The tunnels sibling index on the FIB entry's dependency list.
    */
   u32 sibling_index;
+
+  u8 l3_mode;
 } geneve_tunnel_t;
 
 #define foreach_geneve_input_next        \
@@ -173,9 +175,6 @@
   /* mcast shared info */
   uword *mcast_shared;		/* keyed on mcast ip46 addr */
 
-  /* Free vlib hw_if_indices */
-  u32 *free_geneve_tunnel_hw_if_indices;
-
   /* Mapping from sw_if_index to tunnel index */
   u32 *tunnel_index_by_sw_if_index;
 
@@ -205,6 +204,7 @@
   u32 encap_fib_index;
   u32 decap_next_index;
   u32 vni;
+  u8 l3_mode;
 } vnet_geneve_add_del_tunnel_args_t;
 
 int vnet_geneve_add_del_tunnel