24{
25 struct rte_ether_hdr* eth = rte_pktmbuf_mtod(m, struct rte_ether_hdr*);
26 struct rte_arp_hdr*
arp = (
struct rte_arp_hdr*)ð[1];
27
28
29 memset(ð->dst_addr, 0xFF, 6);
30
31 struct rte_ether_addr mac_addr;
32 rte_eth_macaddr_get(port_id, &mac_addr);
33 rte_ether_addr_copy(&mac_addr, ð->src_addr);
34
35 eth->ether_type = htons(RTE_ETHER_TYPE_ARP);
36
37 memset(
arp, 0,
sizeof(
struct rte_arp_hdr));
38 rte_memcpy(&
arp->arp_data.arp_sha, &mac_addr, 6);
39
41
42 rte_memcpy(&
arp->arp_data.arp_tha, &mac_addr, 6);
44
45
46 arp->arp_hardware = htons(RTE_ARP_HRD_ETHER);
47 arp->arp_protocol = htons(RTE_ETHER_TYPE_IPV4);
50 arp->arp_opcode = htons(RTE_ARP_OP_REQUEST);
51
52 m->pkt_len = 60;
53 m->data_len = 60;
54
55 struct rte_mbuf* arp_tx_mbuf[1];
56 arp_tx_mbuf[0] = m;
57
67
68 rte_eth_tx_burst(port_id, 0, arp_tx_mbuf, 1);
69}
void inetAddrCopy(void *t, void *f)