#include "log.h"
#include "quit.h"
#include "prox_shared.h"
+#include "prox_compat.h"
/* Packets must all be IPv6, always store QinQ tags for lookup (not configurable) */
struct task_qinq_decap6 {
struct rte_table_hash *cpe_table;
uint16_t *user_table;
uint32_t bucket_index;
- struct ether_addr edaddr;
+ prox_rte_ether_addr edaddr;
struct rte_lpm6 *rte_lpm6;
void* period_data; /* used if using dual stack*/
void (*period_func)(void* data);
static inline uint8_t handle_qinq_decap6(struct task_qinq_decap6 *task, struct rte_mbuf *mbuf)
{
struct qinq_hdr *pqinq = rte_pktmbuf_mtod(mbuf, struct qinq_hdr *);
- struct ipv6_hdr *pip6 = (struct ipv6_hdr *)(pqinq + 1);
+ prox_rte_ipv6_hdr *pip6 = (prox_rte_ipv6_hdr *)(pqinq + 1);
uint16_t svlan = pqinq->svlan.vlan_tci & 0xFF0F;
uint16_t cvlan = pqinq->cvlan.vlan_tci & 0xFF0F;
int key_found = 0;
void* entry_in_hash = NULL;
- int ret = rte_table_hash_ext_dosig_ops.
- f_add(task->cpe_table, pip6->src_addr, &entry, &key_found, &entry_in_hash);
+ int ret = prox_rte_table_add(task->cpe_table, pip6->src_addr, &entry, &key_found, &entry_in_hash);
if (unlikely(ret)) {
plogx_err("Failed to add key " IPv6_BYTES_FMT "\n", IPv6_BYTES(pip6->src_addr));
return OUT_DISCARD;
}
- pqinq = (struct qinq_hdr *)rte_pktmbuf_adj(mbuf, 2 * sizeof(struct vlan_hdr));
+ pqinq = (struct qinq_hdr *)rte_pktmbuf_adj(mbuf, 2 * sizeof(prox_rte_vlan_hdr));
PROX_ASSERT(pqinq);
pqinq->ether_type = ETYPE_IPv6;
// Dest MAC addresses
- ether_addr_copy(&task->edaddr, &pqinq->d_addr);
+ prox_rte_ether_addr_copy(&task->edaddr, &pqinq->d_addr);
return 0;
}
if (entries[i]->tsc < cur_tsc) {
int key_found = 0;
void* entry = 0;
- rte_table_hash_ext_dosig_ops.f_delete(task->cpe_table, key[i], &key_found, entry);
+ prox_rte_table_delete(task->cpe_table, key[i], &key_found, entry);
}
}