DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dpdklibs
include
dpdklibs
arp
ARP.hpp
Go to the documentation of this file.
1
8
#ifndef DPDKLIBS_INCLUDE_DPDKLIBS_ARP_ARP_HPP_
9
#define DPDKLIBS_INCLUDE_DPDKLIBS_ARP_ARP_HPP_
10
11
#include "
dpdklibs/udp/Utils.hpp
"
12
#include <cstdint>
13
#include <rte_mbuf.h>
14
15
namespace
dunedaq
{
16
namespace
dpdklibs
{
17
namespace
arp
{
18
19
// RARP and ARP opcodes
20
enum
21
{
22
ARP_REQUEST
= 1,
23
ARP_REPLY
= 2,
24
RARP_REQUEST
= 3,
25
RARP_REPLY
= 4,
26
GRATUITOUS_ARP
= 5
27
};
28
29
// Queue flags
30
enum
31
{
32
CLEAR_FAST_ALLOC_FLAG
= 0x00000001,
// < Clear the TX fast alloc flag
33
DO_TX_FLUSH
= 0x00000002
// Do a TX Flush by sending all of the pkts in the queue
34
};
35
36
// ethSwap(u16_t * to, u16_t * from) - Swap two 16 bit values
37
inline
void
38
uint16Swap
(
void
* t,
void
* f)
39
{
40
uint16_t* d = (uint16_t*)t;
41
uint16_t* s = (uint16_t*)f;
42
uint16_t
v
;
43
v
= *d;
44
*d = *s;
45
*s =
v
;
46
}
47
48
// ethAddrSwap( u16_t * to, u16_t * from ) - Swap two ethernet addresses
49
inline
void
50
ethAddrSwap
(
void
* t,
void
* f)
51
{
52
uint16_t* d = (uint16_t*)t;
53
uint16_t* s = (uint16_t*)f;
54
uint16Swap
(d++, s++);
55
uint16Swap
(d++, s++);
56
uint16Swap
(d, s);
57
}
58
59
// inetAddrSwap( void * t, void * f ) - Swap two IPv4 addresses
60
inline
void
61
inetAddrSwap
(
void
* t,
void
* f)
62
{
63
uint32_t* d = (uint32_t*)t;
64
uint32_t* s = (uint32_t*)f;
65
uint32_t
v
;
66
v
= *d;
67
*d = *s;
68
*s =
v
;
69
}
70
71
/* inetAddrCopy( void * t, void * f ) - Copy IPv4 address */
72
inline
void
73
inetAddrCopy
(
void
* t,
void
* f)
74
{
75
uint32_t* d = (uint32_t*)t;
76
uint32_t* s = (uint32_t*)f;
77
78
*d = *s;
79
}
80
81
// Send GARP
82
void
83
pktgen_send_garp
(
struct
rte_mbuf* m, uint32_t port_id, rte_be32_t binary_ip_address);
84
85
// Reply to ARP
86
void
87
pktgen_process_arp
(
struct
rte_mbuf* m, uint32_t pid, rte_be32_t binary_ip_address);
88
89
}
// namespace arp
90
}
// namespace dpdklibs
91
}
// namespace dunedaq
92
93
#endif
// DPDKLIBS_INCLUDE_DPDKLIBS_ARP_ARP_HPP_
Utils.hpp
dunedaq::dpdklibs::arp
Definition
ARP.hpp:17
dunedaq::dpdklibs::arp::inetAddrCopy
void inetAddrCopy(void *t, void *f)
Definition
ARP.hpp:73
dunedaq::dpdklibs::arp::DO_TX_FLUSH
@ DO_TX_FLUSH
Definition
ARP.hpp:33
dunedaq::dpdklibs::arp::CLEAR_FAST_ALLOC_FLAG
@ CLEAR_FAST_ALLOC_FLAG
Definition
ARP.hpp:32
dunedaq::dpdklibs::arp::ethAddrSwap
void ethAddrSwap(void *t, void *f)
Definition
ARP.hpp:50
dunedaq::dpdklibs::arp::pktgen_send_garp
void pktgen_send_garp(struct rte_mbuf *m, uint32_t port_id, rte_be32_t binary_ip_address)
Definition
ARP.cpp:23
dunedaq::dpdklibs::arp::uint16Swap
void uint16Swap(void *t, void *f)
Definition
ARP.hpp:38
dunedaq::dpdklibs::arp::ARP_REPLY
@ ARP_REPLY
Definition
ARP.hpp:23
dunedaq::dpdklibs::arp::RARP_REQUEST
@ RARP_REQUEST
Definition
ARP.hpp:24
dunedaq::dpdklibs::arp::GRATUITOUS_ARP
@ GRATUITOUS_ARP
Definition
ARP.hpp:26
dunedaq::dpdklibs::arp::RARP_REPLY
@ RARP_REPLY
Definition
ARP.hpp:25
dunedaq::dpdklibs::arp::ARP_REQUEST
@ ARP_REQUEST
Definition
ARP.hpp:22
dunedaq::dpdklibs::arp::pktgen_process_arp
void pktgen_process_arp(struct rte_mbuf *m, uint32_t pid, rte_be32_t binary_ip_address)
Definition
ARP.cpp:78
dunedaq::dpdklibs::arp::inetAddrSwap
void inetAddrSwap(void *t, void *f)
Definition
ARP.hpp:61
dunedaq::dpdklibs
Definition
ARP.hpp:16
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
dunedaq::v
default char v[0]
Definition
Serialization.hpp:261
Generated on
for DUNE-DAQ by
1.18.0