Cni
1 Registration information
Name | cni |
Category | Network |
Permitted values | Per schema |
Version | 1.0 |
Schema | See below |
Type | Generic |
Description | This capability represents the realization of a secondary container cluster network interface. The expression of the related requirements allows the selection of a suitable CNITM and configuration of the Network Attachment Definition (NAD) or NADs accordingly. |
2 JSON schema
cni |
---|
{
"$schema": "http://json-schema.org/draft-07/schema#", "title": "cni", "description": "Realization of a secondary container cluster network interface", "additionalProperties": false, "required": [ "interfaceType" ], "type": "object", "properties": { "interfaceType": { "type": "string", "enum": [ "kernel.netdev", "direct.userspace", "direct.kernel", "bond", "userspace" ], "description": "Type of network interface" }, "nicOptions": { "type": "array", "items": { "type": "object", "properties": { "nicType": { "type": "string", "enum": [ "i710", "e810", "mlx-cx5", "mlx-cx6"], "description": "Nic types the driver is verified to work with in a direct.userspace interface." }, "speeds": { "type": "array", "items": { "type": "integer" }, "description": "List of speeds in bps the driver is verified to work with in a direct.userspace, direct.kernel or bond interface. If nicType is present, the speeds are applicable to that nicType." }, }, "minProperties": 1 }, "description": "For direct.userdriver interface nic types and/or speeds the driver is verified to work with. For direct.kernel and bond speeds the driver is verified to work with" }, "interfaceOptions": { "type": "array", "items": { "type": "string", "enum": [ "memif", "virtio"] }, "description": "For userspace vnic configurations the network interface is verified to work with " }, "interfaceRedundancy": { "type": "string", "enum": [ "infraProvided", "left", "right", "activeActiveBond", "activePassiveBond", "activeActiveL3" ], "description": " Switchplane redundancy management method " } }, "allOf": [ { "if": { "properties": { "interfaceType": { "enum": [ "direct.userspace", "direct.kernel" ] } } }, "then": { "required": ["interfaceRedundancy" ], "properties": { "interfaceRedundancy": { "enum": [ "activePassiveBond", "activeActiveBond", "activePassiveL3", "Left", "Right", "infraProvided" ] } } } }, { "if": { "properties": { "interfaceType": { "enum": ["kernel.netdev", "userspace" ] } } }, "then": { "properties": { "interfaceRedundancy": { "enum": ["infraProvided" ], "default": "infraProvided" } } } }, { "if": { "properties": { "interfaceType": { "enum": ["bond"] } } }, "then": { "required": ["interfaceRedundancy" ], "properties": { "interfaceRedundancy": { "enum": ["activePassiveBond", "activeActiveBond" ] } } } } ] } |
3 Detailed description
The interfaceType can take one of the following values:
kernel.netdev | Linux kernel or vSwitch based. It is supported by CNIsTM like: OVS, MACVLAN, IPVLAN, BRIDGE, PTP, etc. |
direct.userspace | Provides direct access to network PCIe, typically an SR-IOV VF, but could also be a PF. Uses application specific driver contained in the image. The device is bound to a driver by the cloud provider which supports user space control by the application (e.g. vfio_pci, igb_uio). It is supported by the following CNIsTM: SRIOV, HOST-DEVICE. |
direct.kernel | Similar to direct.userspace but device is bound to a kernel driver by the cloud provider and can be consumed in the same way as a kernel netdev. It is supported by the following CNIsTM: SRIOV, HOST-DEVICE. |
bond | Based on the BOND CNITM. Requires the existence of a mated pair of direct kernel network attachments prior to the creation of the bond. Thus, when this interface type is indicated, three attachments definitions to the secondary container cluster network are expected: two providing the direct kerneldriver functionality and one with the BOND CNITM |
userspace | Based on the userspace CNITM. requires infrastructure to support a DPDK-OVS or VPP based vSwitch. |
The nicOptions can take one of the following values:
e710 | Intel® Corporation Ethernet Controller 710 product family. |
e810 | Intel® Corporation Ethernet Controller E810 product family. |
mlx-cx5 | NVIDIA® Mellanox® ConnectX®-5 adapters product family. |
mlx-cx6 | NVIDIA® Mellanox® ConnectX®-6 adapters product family. |