|
PcapPlusPlus
20.08
|
Go to the documentation of this file. 1 #ifndef PCAPPP_KNI_DEVICE
2 #define PCAPPP_KNI_DEVICE
8 #include "MBufRawPacket.h"
9 #include "LinuxNicInformationSocket.h"
285 inline bool isInitialized()
const {
return !(m_Device == NULL || m_MBufMempool == NULL); }
289 inline std::string
getName()
const {
return std::string(m_DeviceInfo.name); }
293 inline uint16_t
getPort()
const {
return m_DeviceInfo.portId; }
365 bool setMtu(uint16_t mtu);
614 struct rte_kni* m_Device;
615 struct rte_mempool* m_MBufMempool;
626 bool init(
const KniDeviceConfiguration& conf);
635 static void* runCapture(
void* devicePointer);
636 inline bool isRunning()
const {
return thread != NULL; }
645 static void* runRequests(
void* devicePointer);
bool setLinkState(KniLinkState state)
Sets link state of KNI device. Firstly the link information is updated as by call to getLinkState(INF...
@ LINK_ERROR
Definition: KniDevice.h:133
std::string getName() const
Definition: KniDevice.h:289
bool handleRequests()
Handle requests from Linux kernel synchronously in calling thread. When one of events which is needed...
int(* config_network_if)(uint16_t port_id, uint8_t if_up)
Definition: KniDevice.h:182
@ PROMISC_ENABLE
Definition: KniDevice.h:157
uint16_t portId
Definition: KniDevice.h:254
int startCaptureBlockingMode(OnKniPacketArriveCallback onPacketArrives, void *onPacketArrivesUserCookie, int timeout)
Start capturing packets synchronously on this KNI interface in blocking mode. Blocking mode means tha...
KniPromiscuousMode getPromiscuous(KniInfoState state=INFO_CACHED)
Obtains information about promiscuous mode of KNI device. If called with INFO_CACHED - returns cached...
int(* change_mtu)(uint8_t port_id, unsigned int new_mtu)
Definition: KniDevice.h:214
bool(* OnKniPacketArriveCallback)(MBufRawPacket *packets, uint32_t numOfPackets, KniDevice *device, void *userCookie)
Definition: KniDevice.h:93
@ LINK_NOT_SUPPORTED
Definition: KniDevice.h:131
bool setMtu(uint16_t mtu)
Sets MTU of KNI device. Unconditionally changes MTU of KNI device. If MTU is updated successfully the...
KNI device initialization data. Used to create new KNI device. Usage of callbacks member or oldCallba...
Definition: KniDevice.h:228
@ INFO_CACHED
Definition: KniDevice.h:145
KniLinkState updateLinkState(KniLinkState state)
Updates link state of KNI device. Unconditionally updates link state of KNI device via call to DPDK l...
@ LINK_UP
Definition: KniDevice.h:137
uint16_t mtu
Definition: KniDevice.h:256
MacAddress mac
Definition: KniDevice.h:247
Old callbacks for KNI device events. This structure MUST be used ONLY when KniDeviceList::callbackVer...
Definition: KniDevice.h:208
Definition: MacAddress.h:27
uint32_t kthreadCoreId
Definition: KniDevice.h:266
Definition: KniDevice.h:120
std::string name
Definition: KniDevice.h:235
KniPromiscuousMode
Definition: KniDevice.h:152
bool sendPacket(RawPacket &rawPacket)
Send a raw packet to kernel. Please notice that if the raw packet isn't of type MBufRawPacket,...
uint16_t receivePackets(MBufRawPacketVector &rawPacketsArr)
Receive raw packets from kernel.
@ PROMISC_DISABLE
Definition: KniDevice.h:155
KniLinkState getLinkState(KniInfoState state=INFO_CACHED)
Obtains link status of KNI device. If called with INFO_CACHED - returns cached data about link state ...
Definition: KniDeviceList.h:22
uint16_t sendPackets(MBufRawPacket **rawPacketsArr, uint16_t arrLength)
Send an array of MBufRawPacket to kernel. Please notice the following:
bool isInitialized() const
Definition: KniDevice.h:285
uint16_t getPort() const
Definition: KniDevice.h:293
int(* config_promiscusity)(uint16_t port_id, uint8_t to_on)
Definition: KniDevice.h:198
@ LINK_DOWN
Definition: KniDevice.h:135
KniLinkState
Definition: KniDevice.h:128
int(* config_network_if)(uint8_t port_id, uint8_t if_up)
Definition: KniDevice.h:219
The main namespace for the PcapPlusPlus lib.
KniInfoState
Definition: KniDevice.h:142
bool setPromiscuous(KniPromiscuousMode mode)
Sets promiscuous mode of KNI device. Firstly the promiscuous mode information is updated as by call t...
MacAddress getMacAddress(KniInfoState state=INFO_CACHED)
Obtains MAC address of KNI device. If called with INFO_CACHED - returns cached data about MAC address...
void stopRequestHandlerThread()
Explicitly stops request thread for this device if it was running. See description of handleRequests(...
bool setMacAddress(MacAddress mac)
Sets MAC address of KNI device. Unconditionally changes MAC of KNI device. If MAC is updated successf...
int(* config_mac_address)(uint16_t port_id, uint8_t mac_addr[])
Definition: KniDevice.h:190
bool startRequestHandlerThread(long sleepSeconds, long sleepNanoSeconds=0)
Starts new thread (using pthread) to asynchronously handle KNI device requests. See description of ha...
void close()
Close the KNI device. When device is closed it's not possible to work with it. Stops asynchronous pac...
New callbacks for KNI device events. This structure MUST be used ONLY when KniDeviceList::callbackVer...
Definition: KniDevice.h:171
@ INFO_RENEW
Definition: KniDevice.h:147
bool startCapture(OnKniPacketArriveCallback onPacketArrives, void *onPacketArrivesUserCookie)
Start capturing packets asynchronously on this KNI interface. Each time a burst of packets is capture...
int(* change_mtu)(uint16_t port_id, unsigned int new_mtu)
Definition: KniDevice.h:177
bool bindKthread
Definition: KniDevice.h:264
uint16_t getMtu(KniInfoState state=INFO_CACHED)
Obtains MTU of KNI device. If called with INFO_CACHED - returns cached data about MTU (SUPER FAST may...
Definition: PointerVector.h:24
Definition: MBufRawPacket.h:43
Definition: RawPacket.h:252