DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
WIBEthPacketBuilder.hpp File Reference
#include "detdataformats/DAQEthHeader.hpp"
#include "dpdklibs/udp/IPV4UDPPacket.hpp"
#include "fddetdataformats/WIBEthFrame.hpp"
#include <rte_byteorder.h>
#include <rte_ether.h>
#include <rte_ip.h>
#include <rte_udp.h>
#include <cstddef>
#include <cstdint>
#include <string>
Include dependency graph for WIBEthPacketBuilder.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dunedaq::dpdklibs::wibeth::PacketConfig
struct  dunedaq::dpdklibs::wibeth::HeaderPatch

Namespaces

namespace  dunedaq
 The DUNE-DAQ namespace.
namespace  dunedaq::dpdklibs
namespace  dunedaq::dpdklibs::wibeth

Functions

rte_be32_t dunedaq::dpdklibs::wibeth::parse_ipv4_addr (const std::string &addr)
void dunedaq::dpdklibs::wibeth::patch_daq_header (void *wibeth_frame, const HeaderPatch &patch)
void dunedaq::dpdklibs::wibeth::construct_packet (void *ethernet_packet, const void *wibeth_frame, const PacketConfig &cfg, const HeaderPatch &patch={})

Variables

constexpr std::size_t dunedaq::dpdklibs::wibeth::kEthernetHeaderBytes = sizeof(rte_ether_hdr)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kIPv4HeaderBytes = sizeof(rte_ipv4_hdr)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kUDPHeaderBytes = sizeof(rte_udp_hdr)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kPacketHeaderBytes = sizeof(dunedaq::dpdklibs::udp::ipv4_udp_packet_hdr)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kDAQEthHeaderBytes = sizeof(dunedaq::detdataformats::DAQEthHeader)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kWIBEthFrameBytes = sizeof(dunedaq::fddetdataformats::WIBEthFrame)
constexpr std::size_t dunedaq::dpdklibs::wibeth::kEthernetPacketBytes
constexpr std::size_t dunedaq::dpdklibs::wibeth::kIPv4TotalBytes = kIPv4HeaderBytes + kUDPHeaderBytes + kWIBEthFrameBytes
constexpr std::size_t dunedaq::dpdklibs::wibeth::kUDPDatagramBytes = kUDPHeaderBytes + kWIBEthFrameBytes
constexpr std::uint16_t dunedaq::dpdklibs::wibeth::kWIBEthBlockLength
constexpr std::uint64_t dunedaq::dpdklibs::wibeth::kDefaultTimestampStep = 2048
constexpr double dunedaq::dpdklibs::wibeth::kDefaultRateHz = 62500000.0 / static_cast<double>(kDefaultTimestampStep)

Detailed Description

Construction of Ethernet/IPv4/UDP headers around a WIBEthFrame for DPDK TX. Free of DPDK runtime calls, so the byte construction is unit-testable without EAL or a NIC.

Definition in file WIBEthPacketBuilder.hpp.