summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/handle_arp.c
diff options
context:
space:
mode:
Diffstat (limited to 'VNFs/DPPD-PROX/handle_arp.c')
-rw-r--r--VNFs/DPPD-PROX/handle_arp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/VNFs/DPPD-PROX/handle_arp.c b/VNFs/DPPD-PROX/handle_arp.c
index 767cee11..c0286d42 100644
--- a/VNFs/DPPD-PROX/handle_arp.c
+++ b/VNFs/DPPD-PROX/handle_arp.c
@@ -28,7 +28,7 @@
struct task_arp {
struct task_base base;
- struct ether_addr src_mac;
+ prox_rte_ether_addr src_mac;
uint32_t seed;
uint32_t flags;
uint32_t ip;
@@ -44,9 +44,9 @@ static void task_update_config(struct task_arp *task)
task->ip = task->tmp_ip;
}
-static void handle_arp(struct task_arp *task, struct ether_hdr_arp *hdr, struct ether_addr *s_addr)
+static void handle_arp(struct task_arp *task, struct ether_hdr_arp *hdr, prox_rte_ether_addr *s_addr)
{
- build_arp_reply(hdr, s_addr);
+ build_arp_reply((prox_rte_ether_hdr *)hdr, s_addr, &hdr->arp);
}
static int handle_arp_bulk(struct task_base *tbase, struct rte_mbuf **mbufs, uint16_t n_pkts)
@@ -56,12 +56,12 @@ static int handle_arp_bulk(struct task_base *tbase, struct rte_mbuf **mbufs, uin
uint8_t out[MAX_PKT_BURST] = {0};
struct rte_mbuf *replies_mbufs[64] = {0}, *arp_pkt_mbufs[64] = {0};
int n_arp_reply_pkts = 0, n_other_pkts = 0,n_arp_pkts = 0;
- struct ether_addr s_addr;
+ prox_rte_ether_addr s_addr;
for (uint16_t j = 0; j < n_pkts; ++j) {
hdr = rte_pktmbuf_mtod(mbufs[j], struct ether_hdr_arp *);
if (hdr->ether_hdr.ether_type == ETYPE_ARP) {
- if (arp_is_gratuitous(hdr)) {
+ if (arp_is_gratuitous(&hdr->arp)) {
out[n_other_pkts] = OUT_DISCARD;
n_other_pkts++;
plog_info("Received gratuitous packet \n");
@@ -71,7 +71,7 @@ static int handle_arp_bulk(struct task_base *tbase, struct rte_mbuf **mbufs, uin
out[n_arp_pkts] = task->arp_replies_ring;
n_arp_pkts++;
} else if (task->ip == 0) {
- create_mac(hdr, &s_addr);
+ create_mac(&hdr->arp, &s_addr);
handle_arp(task, hdr, &s_addr);
replies_mbufs[n_arp_reply_pkts] = mbufs[j];
out[n_arp_reply_pkts] = 0;
@@ -130,7 +130,7 @@ static void init_task_arp(struct task_base *tbase, struct task_args *targ)
task->arp_replies_ring = OUT_DISCARD;
task->seed = rte_rdtsc();
- memcpy(&task->src_mac, &prox_port_cfg[task->base.tx_params_hw_sw.tx_port_queue.port].eth_addr, sizeof(struct ether_addr));
+ memcpy(&task->src_mac, &prox_port_cfg[task->base.tx_params_hw_sw.tx_port_queue.port].eth_addr, sizeof(prox_rte_ether_addr));
task->ip = rte_cpu_to_be_32(targ->local_ipv4);
task->tmp_ip = task->ip;