PcapPlusPlus  20.08+
pcpp::KniDevice::KniDeviceConfiguration Struct Reference

KNI device initialization data. Used to create new KNI device. Usage of callbacks member or oldCallbacks member is defined by result of KniDeviceList::callbackVersion. More...

#include <KniDevice.h>

Public Attributes

std::string name
 
MacAddress mac
 
uint16_t portId
 
uint16_t mtu
 
bool bindKthread
 
uint32_t kthreadCoreId
 

Detailed Description

KNI device initialization data. Used to create new KNI device. Usage of callbacks member or oldCallbacks member is defined by result of KniDeviceList::callbackVersion.

Member Data Documentation

◆ bindKthread

bool pcpp::KniDevice::KniDeviceConfiguration::bindKthread

If set forces to bind KNI Linux kernel thread (NOT userspace thread) to specific core. If rte_kni kernel module is loaded with "kthread_mode=single" then - rebinds kernel thread used for all KNI devices to specified core. If rte_kni kernel module is loaded with "kthread_mode=multiple" then - binds new kernel thread for this device to specified core.

◆ kthreadCoreId

uint32_t pcpp::KniDevice::KniDeviceConfiguration::kthreadCoreId

ID of core to bind Linux kernel thread to (same as DPDK cores IDs)

◆ mac

MacAddress pcpp::KniDevice::KniDeviceConfiguration::mac

MAC (ETHERNET) address of new KNI device. If MacAddress::Zero is provided then some valid address will be automatically generated. If provided (not MacAddress::Zero) will be cached by new KNI device info structure.

◆ mtu

uint16_t pcpp::KniDevice::KniDeviceConfiguration::mtu

MTU of new KNI device. Will be cached by new KNI device info structure

◆ name

std::string pcpp::KniDevice::KniDeviceConfiguration::name

Name used to display device in system. Must not interfere with already existing network interfaces. Must be less than or equal to IFNAMSIZ (16 chars including \0 on most systems)

◆ portId

uint16_t pcpp::KniDevice::KniDeviceConfiguration::portId

Used in same way as DPDK port id. If some new callbacks are omitted then have separate meaning (see KniIoctlCallbacks::config_mac_address and KniIoctlCallbacks::config_promiscusity). Can be set to UINT16_MAX.