} __packed;
  
  enum {
+       MLX4_CQE_L2_TUNNEL_IPOK         = 1 << 31,
        MLX4_CQE_VLAN_PRESENT_MASK      = 1 << 29,
+       MLX4_CQE_L2_TUNNEL              = 1 << 27,
+       MLX4_CQE_L2_TUNNEL_CSUM         = 1 << 26,
+       MLX4_CQE_L2_TUNNEL_IPV4         = 1 << 25,
+ 
        MLX4_CQE_QPN_MASK               = 0xffffff,
 +      MLX4_CQE_VID_MASK               = 0xfff,
  };
  
  enum {
 
        MLX4_DEV_CAP_FLAG2_VLAN_CONTROL         = 1LL <<  6,
        MLX4_DEV_CAP_FLAG2_FSM                  = 1LL <<  7,
        MLX4_DEV_CAP_FLAG2_UPDATE_QP            = 1LL <<  8,
-       MLX4_DEV_CAP_FLAG2_DMFS_IPOIB           = 1LL <<  9
 -      MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS       = 1LL <<  9
++      MLX4_DEV_CAP_FLAG2_DMFS_IPOIB           = 1LL <<  9,
++      MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS       = 1LL <<  10,
  };
  
  enum {
  int mlx4_SET_PORT_PRIO2TC(struct mlx4_dev *dev, u8 port, u8 *prio2tc);
  int mlx4_SET_PORT_SCHEDULER(struct mlx4_dev *dev, u8 port, u8 *tc_tx_bw,
                u8 *pg, u16 *ratelimit);
+ int mlx4_SET_PORT_VXLAN(struct mlx4_dev *dev, u8 port, u8 steering);
 +int mlx4_find_cached_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *idx);
  int mlx4_find_cached_vlan(struct mlx4_dev *dev, u8 port, u16 vid, int *idx);
  int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index);
  void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, u16 vlan);