From 4cc4dabe80eb7d19c20920b7ec20899d6a76a1dd Mon Sep 17 00:00:00 2001 From: Xavier Simonart Date: Tue, 28 May 2019 15:31:43 +0200 Subject: Added support for DPDK 19.02 and 19.05 This includes supporting following API changes - RTE_VER_... now in rte_config.h instead of rte_version.h - now seems required by - rte_sched_port_pkt_write takes extra argument - rte_sched_port_pkt_read_tree_path takes extra argument - enum rte_meter_color replaced by rte_color The extra argument, sched_port, is initialized based on qos_conf parameters. Modes such as qinq_encap4 uses sched_port when doing classification, but does not set qos_conf params. It inherits the sched_port from QoS Change-Id: If8312918241e7d482161a7538f53faac6c303e86 Signed-off-by: Xavier Simonart --- VNFs/DPPD-PROX/handle_qinq_encap6.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'VNFs/DPPD-PROX/handle_qinq_encap6.c') diff --git a/VNFs/DPPD-PROX/handle_qinq_encap6.c b/VNFs/DPPD-PROX/handle_qinq_encap6.c index a46f30fb..b0245cb7 100644 --- a/VNFs/DPPD-PROX/handle_qinq_encap6.c +++ b/VNFs/DPPD-PROX/handle_qinq_encap6.c @@ -30,6 +30,7 @@ #include "hash_utils.h" #include "quit.h" #include "prox_compat.h" +#include "handle_sched.h" struct task_qinq_encap6 { struct task_base base; @@ -37,6 +38,7 @@ struct task_qinq_encap6 { uint8_t tx_portid; uint8_t runtime_flags; struct rte_table_hash *cpe_table; + struct rte_sched_port *sched_port; }; static void init_task_qinq_encap6(struct task_base *tbase, struct task_args *targ) @@ -46,6 +48,10 @@ static void init_task_qinq_encap6(struct task_base *tbase, struct task_args *tar task->qinq_tag = targ->qinq_tag; task->cpe_table = targ->cpe_table; task->runtime_flags = targ->runtime_flags; + if (task->runtime_flags & TASK_CLASSIFY) { + int rc = init_port_sched(&task->sched_port, targ); + PROX_PANIC(rc, "Did not find any QoS task to transmit to => undefined sched_port parameters\n"); + } } /* Encapsulate IPv6 packet in QinQ where the QinQ is derived from the IPv6 address */ @@ -81,7 +87,7 @@ static inline uint8_t handle_qinq_encap6(struct rte_mbuf *mbuf, struct task_qinq /* classification can only be done from this point */ if (task->runtime_flags & TASK_CLASSIFY) { - rte_sched_port_pkt_write(mbuf, 0, entries[0]->user, 0, 0, 0); + prox_rte_sched_port_pkt_write(task->sched_port, mbuf, 0, entries[0]->user, 0, 0, 0); } return 0; } -- cgit 1.2.3-korg