45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
/**
|
|
* @file PacketProtUdp.hpp
|
|
* @author Tobias
|
|
* @brief provide UDP specific functions
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <rte_byteorder.h>
|
|
#include <rte_ip.h>
|
|
#include <rte_lcore.h>
|
|
#include <rte_mbuf.h>
|
|
#include <rte_udp.h>
|
|
|
|
class PacketProtUdp {
|
|
public:
|
|
/**
|
|
* @brief Get packets UDP destination port
|
|
*
|
|
* @return uint16_t
|
|
*/
|
|
inline static uint16_t get_dst_port(rte_udp_hdr* const udp_hdr) {
|
|
return rte_be_to_cpu_16(udp_hdr->dst_port);
|
|
}
|
|
|
|
/**
|
|
* @brief Get packets UDP source port
|
|
*
|
|
* @return uint16_t
|
|
*/
|
|
inline static uint16_t get_src_port(rte_udp_hdr* const udp_hdr) {
|
|
return rte_be_to_cpu_16(udp_hdr->src_port);
|
|
}
|
|
|
|
|
|
inline static void fill_payloadless_udp_header(rte_udp_hdr* const udp_hdr,
|
|
uint16_t dst_port, uint16_t src_port) {
|
|
|
|
udp_hdr->dst_port = rte_cpu_to_be_16(dst_port);
|
|
udp_hdr->src_port = rte_cpu_to_be_16(src_port);
|
|
udp_hdr->dgram_len = rte_cpu_to_be_16(8);
|
|
udp_hdr->dgram_cksum = 0;
|
|
}
|
|
}; |