diff options
author | Patrice Buriez <patrice.buriez@intel.com> | 2017-10-25 20:30:34 +0200 |
---|---|---|
committer | Patrice Buriez <patrice.buriez@intel.com> | 2017-10-25 20:30:34 +0200 |
commit | f6abc2e6a02557e82ad0d1e5440653bb8884ecc8 (patch) | |
tree | ae36de03e9553cd55300771271576369c7484f9e /VNFs/DPPD-PROX/commands.c | |
parent | 504e70cbb19a3e65b1704ee085cd079d26cf16f8 (diff) |
Merge changes from PROX-v041
Change-Id: Ie6d4e7ce22c27967117a446626f5923643397812
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/commands.c')
-rw-r--r-- | VNFs/DPPD-PROX/commands.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/VNFs/DPPD-PROX/commands.c b/VNFs/DPPD-PROX/commands.c index 93acc62a..adfb690a 100644 --- a/VNFs/DPPD-PROX/commands.c +++ b/VNFs/DPPD-PROX/commands.c @@ -101,10 +101,22 @@ static inline int wait_command_handled(struct lcore_cfg *lconf) } return 0; } + +static inline void start_l3(struct task_args *targ) +{ + if (!task_is_master(targ)) { + if ((targ->nb_txrings != 0) || (targ->nb_txports != 0)) { + if (targ->task_init->flag_features & TASK_FEATURE_L3) + task_start_l3(targ->tbase, targ); + } + } +} + void start_cores(uint32_t *cores, int count, int task_id) { int n_started_cores = 0; uint32_t started_cores[RTE_MAX_LCORE]; + struct task_args *targ; warn_inactive_cores(cores, count, "Can't start core"); @@ -112,7 +124,15 @@ void start_cores(uint32_t *cores, int count, int task_id) struct lcore_cfg *lconf = &lcore_cfg[cores[i]]; if (lconf->n_tasks_run != lconf->n_tasks_all) { - + if (task_id == -1) { + for (uint8_t tid = 0; tid < lconf->n_tasks_all; ++tid) { + targ = &lconf->targs[tid]; + start_l3(targ); + } + } else { + targ = &lconf->targs[task_id]; + start_l3(targ); + } lconf->msg.type = LCONF_MSG_START; lconf->msg.task_id = task_id; lconf_set_req(lconf); |