45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
|
/**
|
||
|
* @file PacketInfoIpv4Icmp.hpp
|
||
|
* @author Tobias
|
||
|
* @brief class to provide packets IPv4 and ICMP header information
|
||
|
* @date 2021-06-08
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <rte_byteorder.h>
|
||
|
#include <rte_icmp.h>
|
||
|
|
||
|
#include "PacketDissection/PacketInfoIpv4.hpp"
|
||
|
|
||
|
class PacketInfoIpv4Icmp : public PacketInfoIpv4 {
|
||
|
public:
|
||
|
inline PacketInfoIpv4Icmp();
|
||
|
inline PacketInfoIpv4Icmp(rte_mbuf* mbuf, rte_ether_hdr* eth_hdr,
|
||
|
rte_ipv4_hdr* ip_hdr, rte_icmp_hdr* l4_hdr)
|
||
|
: PacketInfoIpv4(IPv4ICMP, mbuf, eth_hdr, ip_hdr), _icmp_hdr(l4_hdr) {}
|
||
|
inline ~PacketInfoIpv4Icmp() {
|
||
|
// PacketInfoIpv4::~PacketInfoIpv4();
|
||
|
_icmp_hdr = nullptr;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Get packets payload size in byte
|
||
|
*
|
||
|
* @return uint16_t
|
||
|
*/
|
||
|
inline uint16_t get_payload_size() { return 0; }
|
||
|
|
||
|
private:
|
||
|
rte_icmp_hdr* _icmp_hdr;
|
||
|
|
||
|
/**
|
||
|
* @brief Set the icmp header struct
|
||
|
*
|
||
|
* @param icmp_hdr
|
||
|
*/
|
||
|
inline void set_icmp_hdr(rte_icmp_hdr* icmp_hdr) {
|
||
|
this->_icmp_hdr = icmp_hdr;
|
||
|
}
|
||
|
};
|