Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Deploying Contrail Release 4.1 with Netronome SmartNICs by Using Juju


Make sure that the following requirements are met:

  • MaaS Server (if the cloud type is maas)—Install MaaS and Juju on this server

  • Juju Controller—Bootstrap the Juju controller. This can be on a VM or a bare metal server.

  • A repository—To get Netronome and patched OpenStack packages. The repository can be a virtual machine.

  • Contrail controller—Use Ubuntu 16.04 xenial

  • OpenStack—OpenStack can be on the same node as contrail-controller. Use the patched packages to support virtio-forwarder

  • Compute node with Agilio SmartNIC—Use Ubuntu16.04 xenial

Deploying Contrail Release 4.1 with Netronome SmartNIC

Follow these steps to deploy Contrail Release 4.1 with Netronome SmartNIC:

  1. Download the Netronome build package (Agilio vRouter r4.1.2—release notes build 82—(2018/10/25) ) from .

  2. Download the Contrail package (contrail-networking-docker_4.1.2.0-<build>_xenial.tgz) at .


    You must use Ubuntu 16.04 Xenial for the deployment.

  3. Run the following script to rename the NFP interfaces.

    Ubuntu-16.04-ga (kernel-4.4) package does not contain NFP driver. So the NFP driver needs to be installed separately. If deployed using MaaS, run the following command in the /etc/maas/preseeds/curtin_userdata directory to install the NFP driver.

    The sample bundle.yaml file for the deployment is available in the Netronome .tar file in the following path:

    Netronome_R4.1.2_build_26_Juju/agilio-vrouter/ example-docker-ocata-agilio-bundle.yaml

  4. Change the Kernel options setting for enabling Huge Pages as shown below:

  5. Enable hardware acceleration by installing the following Agilio packages.

  6. Bootstrap Juju controller.

  7. Run the following command to clone Contrail Charm from Github.

  8. Agilio-vrouter uses virtio-forwarder as vnic-type to enable hardware acceleration. You need to patch OpenStack packages to use virtio-forwarder as vnic-type. For this, you need to specify the location of the patched OpenStack packages in the bundle.yaml file.

    The following are the patched OpenStack Charm packages to be picked from the local directory.

    You can find the patches in .

    Use the following script provided in the Netronome build tar file:

  9. Deploy the cluster using the following command.

  10. Run the following commands to attach the Contrail packages to Juju.

  11. Use the following commands to view the status or to log into any of the contrail/openstack units after deployment:

  12. Identify the name of the unit or IP address from the juju status output:

    You can find the logs in the /var/log/juju directory of the unit.

    If logs do not indicate failure of any of the above steps, and all the units are deployed and are ready for use, make sure that contrail-api is reachable from neutron-server. If control data subnet is not same as the subnet used for the provisioning, you may need to configure a static route.

Launching a VM after Deploying Contrail Release 4.1 with Netronome SmartNIC

Follow these steps to launch a VM after deployment.

  1. Create a flavour with the following metadata for spawning hardware accelerated VMs.

    In this release, spawning a VM without creating a port is not supported. You need to create a port with virtio-forwarder as vnic-type. Then you need to use this port to launch a hardware accelerated VM.

  2. Use OpenStack dashboard or nova boot to spawn the VM.


This section lists the known issues with Netronome SmartNIC deployment.