diff --git a/openvimd.cfg b/openvimd.cfg
new file mode 100644
index 0000000..022a5e3
--- /dev/null
+++ b/openvimd.cfg
@@ -0,0 +1,127 @@
+##
+# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
+# This file is part of openmano
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact with: nfvlabs@tid.es
+##
+
+
+
+#Miscellaneous
+#Option to test openvim without the needed infrastructure, possible values are
+#    "normal"      by default, Openflow controller (OFC), switch and real host are needed
+#    "test"        Used for testing http API and database without connecting to host or to OFC
+#    "host only"   Used when neither OFC nor OF switch are provided. 
+#                  Dataplane network connection must be done manually.
+#    "OF only"     Used for testing of new openflow controllers support. No real VM deployments will be done but
+#                  OFC will be used as in real mode
+#    "development" Forced a cloud-type deployment, nomal memory instead of hugepages is used, 
+#                  without cpu pinning, and using a bridge network instead of a real OFC dataplane networks.
+#                  The same 'development_bridge' (see below) is used for all dataplane networks
+mode: test
+
+#Openflow controller information
+of_controller:      floodlight                   # Type of controller to be used. 
+                                                 # Valid controllers are 'opendaylight', 'floodlight' or <custom>
+#of_controller_module: module                    # Only needed for <custom>.  Python module that implement
+                                                 # this controller. By default a file with the name  <custom>.py is used 
+#of_<other>:           value                     # Other parameters required by <custom> controller. Consumed by __init__
+of_user:            user credentials             # User credentials for the controller if needed
+of_password:        passwd credentials           # Password credentials for the controller if needed
+of_controller_ip:   127.0.0.1                    # IP address where the Openflow controller is listening
+of_controller_port: 7070                         # TCP port where the Openflow controller is listening (REST API server)
+of_controller_dpid: '00:01:02:03:04:05:06:07'    # Openflow Switch identifier (put here the right number)
+
+#This option is used for those openflow switch that cannot deliver one packet to several output with different vlan tags
+#When set to true, it fails when trying to attach different vlan tagged ports to the same net
+of_controller_nets_with_same_vlan: false         # (by default, true)
+
+#Server parameters
+http_host:       localhost           # IP address where openvim is listening (by default, localhost)
+http_port:       9080                # General port where openvim is listening (by default, 9080)
+http_admin_port: 9085                # Admin port where openvim is listening (when missing, no administration server is launched)
+
+#database parameters
+db_host:   localhost                 # by default localhost
+db_user:   vim                       # DB user
+db_passwd: vimpw                     # DB password
+db_name:   vim_db                    # Name of the VIM DB
+
+#host paremeters
+image_path: "/opt/VNF/images"        # Folder, same for every host, where the VNF images will be copied
+
+#testing parameters (used by ./test/test_openvim.py)
+tenant_id: fc7b43b6-6bfa-11e4-84d2-5254006d6777   # Default tenant identifier for testing
+
+#VLAN ranges used for the dataplane networks (ptp, data)
+#When a network is created an unused value in this range is used
+network_vlan_range_start: 3000
+network_vlan_range_end:   4000
+
+#host bridge interfaces for networks
+# Openvim cannot create bridge networks automatically, in the same way as other CMS do.
+# Bridge networks need to be pre-provisioned on each host and Openvim uses those pre-provisioned bridge networks.
+# Openvim assumes that the following bridge interfaces have been created on each host, appropriately associated to a physical port.
+# The following information needs to be provided:
+#    - Name of the bridge (identical in all hosts)
+#    - VLAN tag associated to each bridge interface
+#    - The speed of the physical port in Gbps, where that bridge interface was created
+# For instance, next example assumes that 10 bridges have been created on each host
+# using vlans 2001 to 2010, associated to a 1Gbps physical port 
+bridge_ifaces:
+   #name:      [vlan, speed in Gbps]
+   virbrMan1:  [2001, 1]
+   virbrMan2:  [2002, 1]
+   virbrMan3:  [2003, 1]
+   virbrMan4:  [2004, 1]
+   virbrMan5:  [2005, 1]
+   virbrMan6:  [2006, 1]
+   virbrMan7:  [2007, 1]
+   virbrMan8:  [2008, 1]
+   virbrMan9:  [2009, 1]
+   virbrMan10: [2010, 1]
+
+#Used only when 'mode' is at development'. Indicates which 'bridge_ifaces' is used for dataplane networks
+development_bridge: virbrMan10
+
+#DHCP SERVER PARAMETERS. 
+#In case some of the previous 'bridge_ifaces' are connected to an EXTERNAL dhcp server, provide 
+#   the server parameters to allow openvim getting the allocated IP addresses of virtual machines
+#   connected to the indicated 'bridge_ifaces' and or 'nets'. Openvim will connect to the dhcp server by ssh.
+#DHCP server must contain a shell script "./get_dhcp_lease.sh" that accept a mac address as parameter 
+#   and return empty or the allocated IP address. See an example at the end of the file ./openvim/dhcp_thread.py 
+#COMMENT all lines in case you do not have a DHCP server in 'normal', 'development'  or 'host only' modes.
+#   For 'test' or 'OF only' modes you can leave then uncommented, because in these modes fake IP 
+#   address are generated instead of connecting with a real DHCP server.
+dhcp_server:
+   host:     host-ip-or-name  
+   #port:     22               #ssh port, by default 22
+   provider: isc-dhcp-server  #dhcp-server type
+   user:     user
+   #provide password, or key if needed
+   password: passwd           
+   #key:     ssh-access-key
+   #list of the previous bridge interfaces attached to this dhcp server
+   bridge_ifaces:   [ virbrMan1, virbrMan2 ] 
+   #list of the networks attached to this dhcp server
+   nets: [default]
+
+
+#logging parameters       # DEBUG, INFO, WARNING, ERROR, CRITICAL
+log_level:       ERROR
+log_level_db:    DEBUG
+log_level_of:    DEBUG
