X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=VNFs%2FDPPD-PROX%2Fhandle_qos.c;h=5af7a310683717916727782b647bf02292f4270d;hb=9d1c6c3ff1f464fc2b99857f9113f5688f9b34f1;hp=eef64796f422d5a0a2a59f4ea9901b5f29cd4ade;hpb=cb94e0036256c6a3fb0aadb682a04d8ad30ddd2a;p=samplevnf.git diff --git a/VNFs/DPPD-PROX/handle_qos.c b/VNFs/DPPD-PROX/handle_qos.c index eef64796..5af7a310 100644 --- a/VNFs/DPPD-PROX/handle_qos.c +++ b/VNFs/DPPD-PROX/handle_qos.c @@ -34,6 +34,7 @@ #include "qinq.h" #include "prox_cfg.h" #include "prox_shared.h" +#include "prox_compat.h" struct task_qos { struct task_base base; @@ -75,7 +76,7 @@ static inline int handle_qos_bulk(struct task_base *tbase, struct rte_mbuf **mbu const struct qinq_hdr *pqinq = rte_pktmbuf_mtod(mbufs[j], const struct qinq_hdr *); uint32_t qinq = PKT_TO_LUTQINQ(pqinq->svlan.vlan_tci, pqinq->cvlan.vlan_tci); if (pqinq->ether_type == ETYPE_IPv4) { - const struct ipv4_hdr *ipv4_hdr = (const struct ipv4_hdr *)(pqinq + 1); + const prox_rte_ipv4_hdr *ipv4_hdr = (const prox_rte_ipv4_hdr *)(pqinq + 1); queue = task->dscp[ipv4_hdr->type_of_service >> 2] & 0x3; tc = task->dscp[ipv4_hdr->type_of_service >> 2] >> 2; } else { @@ -83,8 +84,7 @@ static inline int handle_qos_bulk(struct task_base *tbase, struct rte_mbuf **mbu queue = 0; tc = 0; } - - rte_sched_port_pkt_write(mbufs[j], 0, task->user_table[qinq], tc, queue, 0); + prox_rte_sched_port_pkt_write(task->sched_port, mbufs[j], 0, task->user_table[qinq], tc, queue, 0); } #ifdef PROX_PREFETCH_OFFSET prefetch_nta(rte_pktmbuf_mtod(mbufs[n_pkts - 1], void *)); @@ -92,7 +92,7 @@ static inline int handle_qos_bulk(struct task_base *tbase, struct rte_mbuf **mbu const struct qinq_hdr *pqinq = rte_pktmbuf_mtod(mbufs[j], const struct qinq_hdr *); uint32_t qinq = PKT_TO_LUTQINQ(pqinq->svlan.vlan_tci, pqinq->cvlan.vlan_tci); if (pqinq->ether_type == ETYPE_IPv4) { - const struct ipv4_hdr *ipv4_hdr = (const struct ipv4_hdr *)(pqinq + 1); + const prox_rte_ipv4_hdr *ipv4_hdr = (const prox_rte_ipv4_hdr *)(pqinq + 1); queue = task->dscp[ipv4_hdr->type_of_service >> 2] & 0x3; tc = task->dscp[ipv4_hdr->type_of_service >> 2] >> 2; } else { @@ -101,13 +101,13 @@ static inline int handle_qos_bulk(struct task_base *tbase, struct rte_mbuf **mbu tc = 0; } - rte_sched_port_pkt_write(mbufs[j], 0, task->user_table[qinq], tc, queue, 0); + prox_rte_sched_port_pkt_write(task->sched_port, mbufs[j], 0, task->user_table[qinq], tc, queue, 0); } #endif } int16_t ret = rte_sched_port_enqueue(task->sched_port, mbufs, n_pkts); task->nb_buffered_pkts += ret; - TASK_STATS_ADD_IDLE(&task->base.aux->stats, n_pkts - ret); + TASK_STATS_ADD_DROP_DISCARD(&task->base.aux->stats, n_pkts - ret); } if (task->nb_buffered_pkts) { @@ -166,6 +166,7 @@ static void init_task_qos(struct task_base *tbase, struct task_args *targ) } static struct task_init task_init_qos = { + .mode = QOS, .mode_str = "qos", .init = init_task_qos, .handle = handle_qos_bulk,