summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/task_init.c
diff options
context:
space:
mode:
authorXavier Simonart <xavier.simonart@intel.com>2017-12-17 16:46:52 +0100
committerXavier Simonart <xavier.simonart@intel.com>2017-12-18 18:55:34 +0100
commit3fc7bd53eda521cfd428759481964db30883d99f (patch)
tree026f3b9eb09e1767121961f9bcfb7e8b37b4dea4 /VNFs/DPPD-PROX/task_init.c
parent65504ce40edc1a2f5ad154ed7935d93a3650e5b7 (diff)
Add l3 support for tasks without physical tx ports
This adds support for tasks in l3 submode receiving from ports but transmitting to rings. ARP related information is exchanged between tasks through master core. Tasks transmitting to physical ports are responsible to transmit arp related packets. Tasks not transmitting to physical ports (and using rings) should not try to transmit arp packets. Transmitting arp packets through ring would be more complex, as we would need extra information (within the mbuf) to distinguish for instance an arp reply comoing from the network and an arp reply coming from a core (as a reply to an arp request). Change-Id: Ib55dc8c39d5e55703a933faa16bcc008f1274929 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/task_init.c')
-rw-r--r--VNFs/DPPD-PROX/task_init.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/VNFs/DPPD-PROX/task_init.c b/VNFs/DPPD-PROX/task_init.c
index 2bc83f3..2361d32 100644
--- a/VNFs/DPPD-PROX/task_init.c
+++ b/VNFs/DPPD-PROX/task_init.c
@@ -350,7 +350,7 @@ struct task_base *init_task_struct(struct task_args *targ)
offset = init_rx_tx_rings_ports(targ, tbase, offset);
tbase->aux = (struct task_base_aux *)(((uint8_t *)tbase) + offset);
- if ((targ->nb_txrings != 0) || (targ->nb_txports != 0)) {
+ if (targ->nb_txports != 0) {
if (targ->flags & TASK_ARG_L3) {
tbase->aux->tx_pkt_l2 = tbase->tx_pkt;
tbase->tx_pkt = tx_pkt_l3;
@@ -373,7 +373,7 @@ struct task_base *init_task_struct(struct task_args *targ)
plog_info("\tTask configured in L3 mode\n");
tbase->l3.ctrl_plane_ring = targ->ctrl_plane_ring;
}
- if ((targ->nb_txrings != 0) || (targ->nb_txports != 0)) {
+ if (targ->nb_txports != 0) {
if (targ->flags & TASK_ARG_L3)
task_init_l3(tbase, targ);
}