app/testpmd: fix SW checksum calculation enabling
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.hu@intel.com> Reviewed-by: Shahaf Shuler <shahafs@mellanox.com>
This commit is contained in:
parent
8b9bd0efe0
commit
7132ca8fa8
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user