Merge "Update Fraser document..."
authorDeepak S <deepak.s@linux.intel.com>
Thu, 26 Apr 2018 06:07:13 +0000 (06:07 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 26 Apr 2018 06:07:13 +0000 (06:07 +0000)
VNFs/DPPD-PROX/main.c
VNFs/DPPD-PROX/prox_port_cfg.c

index 931b30c..59a169d 100644 (file)
@@ -249,7 +249,7 @@ static void configure_if_tx_queues(struct task_args *targ, uint8_t socket)
                }
                /* Set the ETH_TXQ_FLAGS_NOREFCOUNT flag if none of
                   the tasks up to the task transmitting to the port
-                  does not use refcnt. */
+                  use refcnt. */
                if (!chain_flag_state(targ, TASK_FEATURE_TXQ_FLAGS_REFCOUNT, 1)) {
                        prox_port_cfg[if_port].tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOREFCOUNT;
                        plog_info("\t\tEnabling No refcnt on port %d\n", if_port);
@@ -262,7 +262,7 @@ static void configure_if_tx_queues(struct task_args *targ, uint8_t socket)
                   chain has NOOFFLOADS set all the way until the
                   first task that receives from a port, it will be
                   disabled for the destination port. */
-               if (chain_flag_state(targ, TASK_FEATURE_TXQ_FLAGS_NOOFFLOADS, 1)) {
+               if (!chain_flag_state(targ, TASK_FEATURE_TXQ_FLAGS_NOOFFLOADS, 0)) {
                        prox_port_cfg[if_port].tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOOFFLOADS;
                        plog_info("\t\tDisabling TX offloads on port %d\n", if_port);
                } else {
@@ -271,8 +271,8 @@ static void configure_if_tx_queues(struct task_args *targ, uint8_t socket)
 
                /* By default NOMULTSEGS is disabled, as drivers/NIC might split packets on RX
                   It should only be enabled when we know for sure that the RX does not split packets.
-                  Set the ETH_TXQ_FLAGS_NOMULTSEGS flag if none of the tasks up to the task
-                  transmitting to the port does not use multsegs. */
+                  Set the ETH_TXQ_FLAGS_NOMULTSEGS flag if all of the tasks up to the task
+                  transmitting to the port use no_multsegs. */
                if (!chain_flag_state(targ, TASK_FEATURE_TXQ_FLAGS_NOMULTSEGS, 0)) {
                        prox_port_cfg[if_port].tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOMULTSEGS;
                        plog_info("\t\tEnabling No MultiSegs on port %d\n", if_port);
index c00948a..269b1c6 100644 (file)
@@ -372,14 +372,14 @@ static void init_port(struct prox_port_cfg *port_cfg)
 
                PROX_PANIC(ret < 0, "\t\t\trte_eth_rx_queue_setup() failed on port %u: error %s (%d)\n", port_id, strerror(-ret), ret);
        }
-       if (!strcmp(port_cfg->short_name, "virtio")) {
+       if (port_cfg->capabilities.tx_offload_cksum == 0) {
                port_cfg->tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOOFFLOADS;
-               plog_info("\t\tDisabling TX offloads (virtio does not support TX offloads)\n");
+               plog_info("\t\tDisabling TX offloads as pmd reports that it does not support them)\n");
        }
 
        if (!strcmp(port_cfg->short_name, "vmxnet3")) {
-               port_cfg->tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOOFFLOADS | ETH_TXQ_FLAGS_NOMULTSEGS;
-               plog_info("\t\tDisabling TX offloads and multsegs on port %d as vmxnet3 does not support them\n", port_id);
+               port_cfg->tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOMULTSEGS;
+               plog_info("\t\tDisabling multsegs on port %d as vmxnet3 does not support them\n", port_id);
        }
        /* initialize one TX queue per logical core on each port */
        for (uint16_t queue_id = 0; queue_id < port_cfg->n_txq; ++queue_id) {