-# Copyright 2015-2016 Intel Corporation.
+# Copyright 2015-2017 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
import logging
import subprocess
-import os
from src.ovs import OFBridge
from src.dpdk import dpdk
bridge = self._bridges[switch_name]
dpdk_count = self._get_port_count('type=dpdk')
port_name = 'dpdk' + str(dpdk_count)
- params = ['--', 'set', 'Interface', port_name, 'type=dpdk']
+ # PCI info. Please note there must be no blank space, eg must be
+ # like 'options:dpdk-devargs=0000:06:00.0'
+ _nics = settings.getValue('NICS')
+ nic_pci = 'options:dpdk-devargs=' + _nics[dpdk_count]['pci']
+ params = ['--', 'set', 'Interface', port_name, 'type=dpdk', nic_pci]
# multi-queue enable
if int(settings.getValue('VSWITCH_DPDK_MULTI_QUEUES')) and \
not settings.getValue('OVS_OLD_STYLE_MQ'):
- params += ['options:n_rxq={}'.format(
- settings.getValue('VSWITCH_DPDK_MULTI_QUEUES'))]
+ params += ['options:n_rxq={}'.format(
+ settings.getValue('VSWITCH_DPDK_MULTI_QUEUES'))]
of_port = bridge.add_port(port_name, params)
return (port_name, of_port)
vhost_count = self._get_port_count('type=dpdkvhostuser')
port_name = 'dpdkvhostuser' + str(vhost_count)
params = ['--', 'set', 'Interface', port_name, 'type=dpdkvhostuser']
- # multi queue enable
- if int(settings.getValue('VSWITCH_DPDK_MULTI_QUEUES')) and \
- not settings.getValue('OVS_OLD_STYLE_MQ'):
- params += ['options:n_rxq={}'.format(
- settings.getValue('VSWITCH_DPDK_MULTI_QUEUES'))]
of_port = bridge.add_port(port_name, params)
return (port_name, of_port)