summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/handle_lb_qinq.c
diff options
context:
space:
mode:
Diffstat (limited to 'VNFs/DPPD-PROX/handle_lb_qinq.c')
-rw-r--r--VNFs/DPPD-PROX/handle_lb_qinq.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/VNFs/DPPD-PROX/handle_lb_qinq.c b/VNFs/DPPD-PROX/handle_lb_qinq.c
index 49ed1b79..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);
}
@@ -248,13 +248,13 @@ struct qinq_packet {
prox_rte_ipv4_hdr ipv4_hdr;
prox_rte_ipv6_hdr ipv6_hdr;
};
-} __attribute__((packed));
+} __attribute__((packed)) __attribute__((__aligned__(2)));
struct qinq_packet_data {
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 {
prox_rte_ether_hdr ether_hdr;
@@ -262,7 +262,7 @@ struct ether_packet {
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);