On this page:

You are viewing documentation for CNI version: v1.0

CNI v1.0 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest release, v1.1, or the current documentation.

host-device

plugins/main/host-device/README.md

Move an already-existing device into a container.

Overview

This simple plugin will move the requested device from the host’s network namespace to the container’s. IPAM configuration can be used for this plugin. This plugin can also be used for a device bound to dpdk driver via pciBusID or runtimeConfig deviceID parameter then IPAM configuration will be ignored.

Network configuration reference

The device can be specified with any one of four properties:

  • device: The device name, e.g. eth0, can0
  • hwaddr: A MAC address
  • kernelpath: The kernel device kobj, e.g. /sys/devices/pci0000:00/0000:00:1f.6
  • pciBusID: A PCI address of network device, e.g 0000:00:1f.6

For this plugin, CNI_IFNAME will be ignored. Upon DEL, the device will be moved back.

The plugin also supports the following capability argument :

  • deviceID: A PCI address of the network device, e.g 0000:00:1f.6

Example configuration

A sample configuration with device property looks like:

{
	"cniVersion": "0.3.1",
	"type": "host-device",
	"device": "enp0s1"
}

A sample configuration with pciBusID property looks like:

{
	"cniVersion": "0.3.1",
	"type": "host-device",
	"pciBusID": "0000:3d:00.1"
}

A sample configuration utilizing deviceID runtime configuration looks like:

  1. From operator perspective:
    {
       "cniVersion": "0.3.1",
       "type": "host-device",
       "capabilities": {
           "deviceID":  true
       }
    }
    
  2. From plugin perspective:
    {
        "cniVersion": "0.3.1",
        "type": "host-device",
        "runtimeConfig": {
            "deviceID":  "0000:3d:00.1"
        }
    }