echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

cd /root/dpdk-2.0.0/x86_64-native-linuxapp-gcc/kmod
modprobe uio
insmod igb_uio.ko
cd /root/dpdk-2.0.0/tools

#Bind igb_uio driver
python dpdk_nic_bind.py --bind=igb_uio 0000:0a:00.0
python dpdk_nic_bind.py --bind=igb_uio 0000:0a:00.1

modprobe openvswitch
pkill -9 ovs
rm -rf /usr/local/etc/openvswitch/
rm -rf /usr/local/var/run/openvswitch/
rm -rf /usr/local/etc/openvswitch/conf.db

#Create ovsdb schema and initialize
mkdir -p /usr/local/var/run/openvswitch/
mkdir -p /usr/local/etc/openvswitch/
cd /root/OVS/ovs-branch-2.4/ovsdb
./ovsdb-tool create /usr/local/etc/openvswitch/conf.db  ../vswitchd/vswitch.ovsschema

./ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
                 --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
                 --private-key=db:Open_vSwitch,SSL,private_key \
                 --certificate=db:Open_vSwitch,SSL,certificate \
                 --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
                 --pidfile --detach

cd /root/OVS/ovs-branch-2.4/utilities
./ovs-vsctl --no-wait init

#Run vswitch daemon
export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
cd /root/OVS/ovs-branch-2.4/vswitchd
echo > /usr/local/var/log/openvswitch/ovs-vswitchd.log
./ovs-vswitchd --dpdk -c 0x1 -n 4 -- unix:$DB_SOCK --pidfile --detach --log-file=/usr/local/var/log/openvswitch/ovs-vswitchd.log

#Creating OVS bridges and add ports
cd /root/OVS/ovs-branch-2.4/utilities
./ovs-vsctl --no-wait add-br ovs -- set Bridge ovs datapath_type=netdev				 
./ovs-vsctl add-port ovs dpdk0 -- set Interface dpdk0 type=dpdk
./ovs-vsctl --no-wait add-br pktovs -- set Bridge pktovs datapath_type=netdev				 
./ovs-vsctl add-port pktovs dpdk1 -- set Interface dpdk1 type=dpdk

#Assign IP Addresses Is it really required??
ifconfig ovs 10.54.218.77 netmask 255.255.255.0 up
ifconfig pktovs 10.54.218.81 netmask 255.255.255.0 up
