Hi Jiayu Hu, Good fix, thanks.
Thursday, January 25, 2018 4:14 AM, Jiayu Hu: > In current design, we can't enable SW checksum calculation for the devices > which don't have checksum offloading abilities via the command "csum set > ip|tcp|udp|sctp|outer-ip sw <port_id>". > But SW checksum calculation shouldn't depend on HW offloading abilities. > This patch is to fix this issue. > > Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check") > Signed-off-by: Jiayu Hu <jiayu...@intel.com> > --- > app/test-pmd/cmdline.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index > 9f12c0f..a2db9b7 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -3706,40 +3706,40 @@ cmd_csum_parsed(void *parsed_result, > hw = 1; > > if (!strcmp(res->proto, "ip")) { > - if (dev_info.tx_offload_capa & > - > DEV_TX_OFFLOAD_IPV4_CKSUM) { > + if (hw == 0 || (dev_info.tx_offload_capa & > + > DEV_TX_OFFLOAD_IPV4_CKSUM)) { > csum_offloads |= > DEV_TX_OFFLOAD_IPV4_CKSUM; > } else { > printf("IP checksum offload is not supported > " > "by port %u\n", res->port_id); > } > } else if (!strcmp(res->proto, "udp")) { > - if (dev_info.tx_offload_capa & > - > DEV_TX_OFFLOAD_UDP_CKSUM) { > + if (hw == 0 || (dev_info.tx_offload_capa & > + > DEV_TX_OFFLOAD_UDP_CKSUM)) { > csum_offloads |= > DEV_TX_OFFLOAD_UDP_CKSUM; > } else { > printf("UDP checksum offload is not > supported " > "by port %u\n", res->port_id); > } > } else if (!strcmp(res->proto, "tcp")) { > - if (dev_info.tx_offload_capa & > - > DEV_TX_OFFLOAD_TCP_CKSUM) { > + if (hw == 0 || (dev_info.tx_offload_capa & > + > DEV_TX_OFFLOAD_TCP_CKSUM)) { > csum_offloads |= > DEV_TX_OFFLOAD_TCP_CKSUM; > } else { > printf("TCP checksum offload is not > supported " > "by port %u\n", res->port_id); > } > } else if (!strcmp(res->proto, "sctp")) { > - if (dev_info.tx_offload_capa & > - > DEV_TX_OFFLOAD_SCTP_CKSUM) { > + if (hw == 0 || (dev_info.tx_offload_capa & > + > DEV_TX_OFFLOAD_SCTP_CKSUM)) { > csum_offloads |= > DEV_TX_OFFLOAD_SCTP_CKSUM; > } else { > printf("SCTP checksum offload is not > supported " > "by port %u\n", res->port_id); > } > } else if (!strcmp(res->proto, "outer-ip")) { > - if (dev_info.tx_offload_capa & > - > DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) { > + if (hw == 0 || (dev_info.tx_offload_capa & > + > DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM)) { > csum_offloads |= > > DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM; > } else { Reviewed-by: Shahaf Shuler <shah...@mellanox.com> > -- > 2.7.4