2a09ede8fb
In Kernel 4.8 we introduced Traffic Control (TC see [1]) hardware offloads framework for SR-IOV VFs which allows us to configure the NIC [2]. Subsequent OVS patches [3] allow us to use the TC framework to offload OVS datapath rules. This patch adds plug/unplug when using ovs vif 'OVS_ACCELERATION'. The plug method will lookup the VF representor and connect it to 'br-int', while the unplug method will remove the VF representor from 'br-int'. [1] https://linux.die.net/man/8/tc [2] http://netdevconf.org/1.2/papers/efraim-gerlitz-sriov-ovs-final.pdf [3] https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330606.html Co-Authored-By: Stephen Finucane <sfinucan@redhat.com> Change-Id: Ia8214d4da5edfdfc188dc4cf791613cb475dc4c3
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
# 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.
|
|
|
|
from os_vif.i18n import _
|
|
|
|
from os_vif import exception as osv_exception
|
|
|
|
|
|
class AgentError(osv_exception.ExceptionBase):
|
|
msg_fmt = _('Error during following call to agent: %(method)s')
|
|
|
|
|
|
class MissingPortProfile(osv_exception.ExceptionBase):
|
|
msg_fmt = _('A port profile is mandatory for the OpenVSwitch plugin')
|
|
|
|
|
|
class WrongPortProfile(osv_exception.ExceptionBase):
|
|
msg_fmt = _('Port profile %(profile)s is not a subclass '
|
|
'of VIFPortProfileOpenVSwitch')
|
|
|
|
|
|
class RepresentorNotFound(osv_exception.ExceptionBase):
|
|
msg_fmt = _('Failed getting representor port for PF %(ifname)s with '
|
|
'%(vf_num)s')
|
|
|
|
|
|
class PciDeviceNotFoundById(osv_exception.ExceptionBase):
|
|
msg_fmt = _("PCI device %(id)s not found")
|