vRouter kernel datapath hardware offload hooks not available

Bug #1767107 reported by Frik Botha on 2018-04-26
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R4.1
Fix Committed
High
Frik Botha
R5.0
In Progress
Undecided
Frik Botha
Trunk
In Progress
Undecided
Frik Botha
OpenContrail
New
Undecided
Unassigned

Bug Description

Hardware offload hooks were added to the vrouter kernel datapath in R3.1. These hooks do not exist in R4.1, and therefore it is not possible to offload the datapath to a capable SmartNIC.

Review in progress for https://review.opencontrail.org/42504
Submitter: Frik Botha (<email address hidden>)

Jeba Paulaiyan (jebap) on 2018-04-26
tags: added: vrouter
Changed in juniperopenstack:
status: New → Won't Fix

Reviewed: https://review.opencontrail.org/42504
Committed: http://github.com/Juniper/contrail-vrouter/commit/4cc4453962411b0a460b809e8dd1f8d8e4da5e2b
Submitter: Zuul (<email address hidden>)
Branch: R4.1

commit 4cc4453962411b0a460b809e8dd1f8d8e4da5e2b
Author: Frik Botha <email address hidden>
Date: Mon Apr 23 10:35:42 2018 +0200

Include hardware offload hooks

This changeset provides a generic infrastructure for configuring hardware
offloads for vrouter. This defines function prototypes for callbacks which will
be registered by a vrouter offload module, which will be called at certain
points in the vrouter.ko processing (mainly around where it does configurations
of tables via sandesh messages).

Offloaded functionality includes flow, vif, MPLS, VXLAN, mirror, nexthop, layer2
and route tables. QoS API is defined but not currently supported by offload
module (offload module will return an error if configured).

Change-Id: I00119ec244bf0c3bc8fa218aae10dd1b164b47ce
Closes-Bug: #1767107
Signed-off-by: Frik Botha <email address hidden>

Review in progress for https://review.opencontrail.org/46674
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/46677
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47035
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47479
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47035
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47785
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47035
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47785
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/47035
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/48048
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/48947
Submitter: Jan Gutter (<email address hidden>)

Reviewed: https://review.opencontrail.org/47785
Committed: http://github.com/Juniper/contrail-packages/commit/50133e16655edd86dd8adf8b2767dc45cca029fa
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 50133e16655edd86dd8adf8b2767dc45cca029fa
Author: Frik Botha <email address hidden>
Date: Wed Nov 21 15:58:30 2018 +0200

Add liburcu-dev as a build requirement

Hardware offloads require rcu to enable safe runtime plugging and
unplugging.

Change-Id: Ieb451b6374918ef4ad2476610ba013b80aa83ce0
Partial-Bug: #1767107
Signed-off-by: Frik Botha <email address hidden>

Reviewed: https://review.opencontrail.org/47035
Committed: http://github.com/Juniper/contrail-vrouter/commit/923c9882d05f96800030858cdea0f205fc44f258
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 923c9882d05f96800030858cdea0f205fc44f258
Author: Frik Botha <email address hidden>
Date: Thu Nov 15 16:46:06 2018 +0200

dp-core: Add dynamic offload module registration

Extend the paravirtualized per-host type offloads with infrastructure
that allows arbitrary modules to plug into the framework. This closely
resembles the offload register/unregister callbacks that were present in
versions R3.1 and R4.1, with the addition of dpdk support (under Linux).

RCU is used to ensure integrity of the offload structure upon
plugging/unplugging. The registration interface exposes symbols when
building the vrouter kernel module. A framework for user space plugging
is not yet available, but dynamic loading could be used to achieve this.

Change-Id: Ifa2ea8af5b0abfeb4e732a4f68d48cf42bd8739f
Depends-On: Ieb451b6374918ef4ad2476610ba013b80aa83ce0
Partial-Bug: #1767107
Signed-off-by: Frik Botha <email address hidden>

Review in progress for https://review.opencontrail.org/48048
Submitter: Frik Botha (<email address hidden>)

Reviewed: https://review.opencontrail.org/48947
Committed: http://github.com/Juniper/contrail-nova-vif-driver/commit/ae45f3bcd44cfc6ca4918d13ffb3e42e25f158e6
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit ae45f3bcd44cfc6ca4918d13ffb3e42e25f158e6
Author: Jan Gutter <email address hidden>
Date: Mon Jan 28 16:49:08 2019 +0200

Add support for offload plugging

This enables the Contrail / Tungsten Fabric os-vif plugin to consume the
metadata made available by Nova since the Stein release:

https://specs.openstack.org/openstack/nova-specs/specs/stein/approved/vrouter-hw-offloads.html

With os-vif < 1.14.0, this change has no functional effect.

With os-vif >= 1.14.0, this change enables two new plugging modes:

* 'direct' VNIC type: this corresponds to an offloaded vrouter
datapath, plugged into the instance via IOMMU passthrough.
* 'virtio-forwarder' VNIC type: this corresponds to an offloaded
vrouter datapath, plugged into the instance via a virtio-forwarder.

Change-Id: Ib37eed922b30c20d11327bf792ad869de70f0bb0
Signed-off-by: Jan Gutter <email address hidden>
Partial-Bug: #1767107

Review in progress for https://review.opencontrail.org/48048
Submitter: Frik Botha (<email address hidden>)

Review in progress for https://review.opencontrail.org/49384
Submitter: Mateusz Neumann (<email address hidden>)

Reviewed: https://review.opencontrail.org/49384
Committed: http://github.com/Juniper/contrail-packages/commit/bc24909e7a421a8715dee50153ce1a4df5460dcc
Submitter: Vinay Vithal Mahuli (<email address hidden>)
Branch: R6.0-WIP

commit bc24909e7a421a8715dee50153ce1a4df5460dcc
Author: Frik Botha <email address hidden>
Date: Wed Nov 21 15:58:30 2018 +0200

Apply commits from master onto R6.0-WIP

Add liburcu-dev as a build requirement
Hardware offloads require rcu to enable safe runtime plugging and
unplugging.
Partial-Bug: #1767107
Signed-off-by: Frik Botha <email address hidden>

add ironic clients & ipmitool packages needed for server discovery
Partial-Bug: #1807762

Adding packages required by API server and DM
Depends-On: If7d3850e7d80087744ba428ca4bb03c5ec152352
Partial-Bug: #1780580

Use %config(noreplace) for config/ini dpdk files
partial-jira-bug: JCB-218657

Don't require python2-pip on RHEL
This package does not exist in RHEL yum repos, so it breaks the build.
closes-jira-bug: JCB-218785

Updated package dependency for 'Rocky' builds
When installing packages from the openstack rocky repo, they now require
python2-docker which obsoletes python-docker-py. This change is done only for
centos 7.x builds.
Partial-Jira-Bug: JCB-218848

remove init.d files and conf files from packages
these files are not needed in R5.x
Closes-Bug: #1786604

remove dependency to vrouter-netns from dpdk-init package
Closes-Bug: #1786604

Change-Id: Id0d8555b96deeafaa8c6b2cd4acc28e61e9c0f32
Partial-jira-bug: JBE-925

Review in progress for https://review.opencontrail.org/48048
Submitter: Frik Botha (<email address hidden>)

Reviewed: https://review.opencontrail.org/48048
Committed: http://github.com/Juniper/contrail-vrouter/commit/eeba94fcbb184c0b391f5e37dbed8397a3704b5d
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit eeba94fcbb184c0b391f5e37dbed8397a3704b5d
Author: Frik Botha <email address hidden>
Date: Wed Nov 7 16:07:18 2018 +0200

dp-core: Expose functions to update offloaded flow and vrf stats

In scenarios where external implementations offload the full datapath to
hardware, flow and vrf stats do not propogate to vrouter on the host.
Add callbacks which enable such implementations to update these stats.

Change-Id: I92ed304003284a0b69a0c27e37b579fe35d453b3
Partial-Bug: #1767107
Signed-off-by: Frik Botha <email address hidden>

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers