diff options
Diffstat (limited to 'VNFs/DPPD-PROX/handle_lb_qinq.c')
-rw-r--r-- | VNFs/DPPD-PROX/handle_lb_qinq.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/VNFs/DPPD-PROX/handle_lb_qinq.c b/VNFs/DPPD-PROX/handle_lb_qinq.c index 18ff7df4..9726edda 100644 --- a/VNFs/DPPD-PROX/handle_lb_qinq.c +++ b/VNFs/DPPD-PROX/handle_lb_qinq.c @@ -104,9 +104,9 @@ static void init_task_lb_qinq(struct task_base *tbase, struct task_args *targ) plog_info("\t\ttask_lb_qinq protocols_mask = 0x%x\n", task->protocols_mask); if (targ->task_init->flag_features & TASK_FEATURE_LUT_QINQ_RSS) - tbase->flags |= BASE_FLAG_LUT_QINQ_RSS; + tbase->flags |= TBASE_FLAG_LUT_QINQ_RSS; if (targ->task_init->flag_features & TASK_FEATURE_LUT_QINQ_HASH) - tbase->flags |= BASE_FLAG_LUT_QINQ_HASH; + tbase->flags |= TBASE_FLAG_LUT_QINQ_HASH; plog_info("\t\ttask_lb_qinq flags = 0x%x\n", tbase->flags); } @@ -245,24 +245,24 @@ int handle_lb_qinq_bulk_set_port(struct task_base *tbase, struct rte_mbuf **mbuf struct qinq_packet { struct qinq_hdr qinq_hdr; union { - struct ipv4_hdr ipv4_hdr; - struct ipv6_hdr ipv6_hdr; + prox_rte_ipv4_hdr ipv4_hdr; + prox_rte_ipv6_hdr ipv6_hdr; }; -} __attribute__((packed)); +} __attribute__((packed)) __attribute__((__aligned__(2))); struct qinq_packet_data { - struct ether_addr d_addr; - struct ether_addr s_addr; + prox_rte_ether_addr d_addr; + prox_rte_ether_addr s_addr; uint64_t qinq; -} __attribute__((packed)); +} __attribute__((packed)) __attribute__((__aligned__(2))); struct ether_packet { - struct ether_hdr ether_hdr; + prox_rte_ether_hdr ether_hdr; union { - struct ipv4_hdr ipv4_hdr; - struct ipv6_hdr ipv6_hdr; + prox_rte_ipv4_hdr ipv4_hdr; + prox_rte_ipv6_hdr ipv6_hdr; }; -} __attribute__((packed)); +} __attribute__((packed)) __attribute__((__aligned__(2))); struct cpe_packet { union { @@ -275,7 +275,7 @@ struct cpe_packet { static inline uint8_t get_worker(struct task_lb_qinq *task, struct cpe_packet *packet) { uint8_t worker = 0; - if (((struct task_base *)task)->flags & BASE_FLAG_LUT_QINQ_HASH) { + if (((struct task_base *)task)->flags & TBASE_FLAG_LUT_QINQ_HASH) { // Load Balance on Hash of combination of cvlan and svlan uint64_t qinq_net = packet->qd.qinq; qinq_net = qinq_net & 0xFF0F0000FF0F0000; // Mask Proto and QoS bits @@ -286,7 +286,7 @@ static inline uint8_t get_worker(struct task_lb_qinq *task, struct cpe_packet *p worker = rte_hash_crc(&qinq_net,8,0) % task->nb_worker_threads; } plogx_dbg("Sending packet svlan=%x, cvlan=%x, pseudo_qinq=%lx to worker %d\n", rte_bswap16(0xFF0F & packet->qp.qinq_hdr.svlan.vlan_tci), rte_bswap16(0xFF0F & packet->qp.qinq_hdr.cvlan.vlan_tci), qinq_net, worker); - } else if (((struct task_base *)task)->flags & BASE_FLAG_LUT_QINQ_RSS){ + } else if (((struct task_base *)task)->flags & TBASE_FLAG_LUT_QINQ_RSS){ // Load Balance on rss of combination of cvlan and svlan uint32_t qinq = (packet->qp.qinq_hdr.cvlan.vlan_tci & 0xFF0F) << 16; uint32_t rss = toeplitz_hash((uint8_t *)&qinq, 4); |