lib: remove unneeded header includes
[dpdk.git] / lib / net / rte_arp.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Intel Corporation
3  */
4
5 #include <rte_arp.h>
6
7 #define RARP_PKT_SIZE   64
8 struct rte_mbuf *
9 rte_net_make_rarp_packet(struct rte_mempool *mpool,
10                 const struct rte_ether_addr *mac)
11 {
12         struct rte_ether_hdr *eth_hdr;
13         struct rte_arp_hdr *rarp;
14         struct rte_mbuf *mbuf;
15
16         if (mpool == NULL)
17                 return NULL;
18
19         mbuf = rte_pktmbuf_alloc(mpool);
20         if (mbuf == NULL)
21                 return NULL;
22
23         eth_hdr = (struct rte_ether_hdr *)
24                 rte_pktmbuf_append(mbuf, RARP_PKT_SIZE);
25         if (eth_hdr == NULL) {
26                 rte_pktmbuf_free(mbuf);
27                 return NULL;
28         }
29
30         /* Ethernet header. */
31         memset(eth_hdr->dst_addr.addr_bytes, 0xff, RTE_ETHER_ADDR_LEN);
32         rte_ether_addr_copy(mac, &eth_hdr->src_addr);
33         eth_hdr->ether_type = RTE_BE16(RTE_ETHER_TYPE_RARP);
34
35         /* RARP header. */
36         rarp = (struct rte_arp_hdr *)(eth_hdr + 1);
37         rarp->arp_hardware = RTE_BE16(RTE_ARP_HRD_ETHER);
38         rarp->arp_protocol = RTE_BE16(RTE_ETHER_TYPE_IPV4);
39         rarp->arp_hlen = RTE_ETHER_ADDR_LEN;
40         rarp->arp_plen = 4;
41         rarp->arp_opcode  = RTE_BE16(RTE_ARP_OP_REVREQUEST);
42
43         rte_ether_addr_copy(mac, &rarp->arp_data.arp_sha);
44         rte_ether_addr_copy(mac, &rarp->arp_data.arp_tha);
45         memset(&rarp->arp_data.arp_sip, 0x00, 4);
46         memset(&rarp->arp_data.arp_tip, 0x00, 4);
47
48         return mbuf;
49 }