From: Dakota Sicher <[email protected]> Removed ternary operators with identical results and consolidated identical branches in bnxt_validate_and_parse_flow_type() and bnxt_start_xmit(). The NTUPLE and EM_FLOW variants of several HWRM enable-bit and IP address type macros resolve to identical values, making the use_ntuple-conditioned ternaries redundant; several adjacent if/else-if branches in the Tx checksum-flag dispatch were also textually identical (same action for a checksum-combination flag and each of its constituent single-flag variants) and have been merged.
Signed-off-by: Dakota Sicher <[email protected]> Signed-off-by: Mohammad Shuab Siddique <[email protected]> --- v2: * No code change. The AI-review bot flagged the merged Tx checksum-flag branches as a possible correctness regression, on the theory that a packet with a combined flag (e.g. PKT_TX_OIP_IIP_TCP_UDP_CKSUM) might now hit a different branch than before. Checked the flag definitions in bnxt_txr.h: each combined flag is defined as the bitwise OR of its constituent single flags (e.g. PKT_TX_OIP_IIP_TCP_UDP_CKSUM == PKT_TX_OIP_IIP_TCP_CKSUM | PKT_TX_OIP_IIP_UDP_CKSUM), so a masked equality check against either single-flag macro already matches the combined-flag case too. Since all three variants produced the same action in the pre-patch code, the merge is behavior-preserving. drivers/net/bnxt/bnxt_flow.c | 14 ++++------ drivers/net/bnxt/bnxt_txr.c | 52 ++++++++++-------------------------- 2 files changed, 19 insertions(+), 47 deletions(-) diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c index a2e590540b..c2338a0f51 100644 --- a/drivers/net/bnxt/bnxt_flow.c +++ b/drivers/net/bnxt/bnxt_flow.c @@ -259,9 +259,7 @@ bnxt_validate_and_parse_flow_type(const struct rte_flow_attr *attr, } rte_memcpy(filter->src_macaddr, ð_spec->hdr.src_addr, RTE_ETHER_ADDR_LEN); - en |= use_ntuple ? - NTUPLE_FLTR_ALLOC_INPUT_EN_SRC_MACADDR : - EM_FLOW_ALLOC_INPUT_EN_SRC_MACADDR; + en |= NTUPLE_FLTR_ALLOC_INPUT_EN_SRC_MACADDR; valid_flags |= inner ? BNXT_FLOW_L2_INNER_SRC_VALID_FLAG : BNXT_FLOW_L2_SRC_VALID_FLAG; @@ -379,9 +377,8 @@ bnxt_validate_and_parse_flow_type(const struct rte_flow_attr *attr, NTUPLE_FLTR_ALLOC_INPUT_EN_DST_IPADDR_MASK; } - filter->ip_addr_type = use_ntuple ? - HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_IP_ADDR_TYPE_IPV4 : - HWRM_CFA_EM_FLOW_ALLOC_INPUT_IP_ADDR_TYPE_IPV4; + filter->ip_addr_type = + HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_IP_ADDR_TYPE_IPV4; if (ipv4_spec->hdr.next_proto_id) { filter->ip_protocol = @@ -444,9 +441,8 @@ bnxt_validate_and_parse_flow_type(const struct rte_flow_attr *attr, NTUPLE_FLTR_ALLOC_INPUT_EN_DST_IPADDR_MASK; } - filter->ip_addr_type = use_ntuple ? - NTUPLE_FLTR_ALLOC_INPUT_IP_ADDR_TYPE_IPV6 : - EM_FLOW_ALLOC_INPUT_IP_ADDR_TYPE_IPV6; + filter->ip_addr_type = + NTUPLE_FLTR_ALLOC_INPUT_IP_ADDR_TYPE_IPV6; break; case RTE_FLOW_ITEM_TYPE_TCP: tcp_spec = item->spec; diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c index 3fae0824d1..9d249143da 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -409,68 +409,44 @@ static int bnxt_start_xmit(struct rte_mbuf *tx_pkt, goto drop; } - } else if ((tx_pkt->ol_flags & PKT_TX_OIP_IIP_TCP_UDP_CKSUM) == - PKT_TX_OIP_IIP_TCP_UDP_CKSUM) { - /* Outer IP, Inner IP, Inner TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_TIP_IP_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & PKT_TX_OIP_IIP_TCP_CKSUM) == - PKT_TX_OIP_IIP_TCP_CKSUM) { - /* Outer IP, Inner IP, Inner TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_TIP_IP_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_OIP_IIP_UDP_CKSUM) == + PKT_TX_OIP_IIP_TCP_CKSUM || + (tx_pkt->ol_flags & PKT_TX_OIP_IIP_UDP_CKSUM) == PKT_TX_OIP_IIP_UDP_CKSUM) { /* Outer IP, Inner IP, Inner TCP/UDP CSO */ txbd1->lflags |= TX_BD_FLG_TIP_IP_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_IIP_TCP_UDP_CKSUM) == - PKT_TX_IIP_TCP_UDP_CKSUM) { - /* (Inner) IP, (Inner) TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_IP_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_IIP_UDP_CKSUM) == - PKT_TX_IIP_UDP_CKSUM) { - /* (Inner) IP, (Inner) TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_IP_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & PKT_TX_IIP_TCP_CKSUM) == - PKT_TX_IIP_TCP_CKSUM) { + PKT_TX_IIP_TCP_CKSUM || + (tx_pkt->ol_flags & PKT_TX_IIP_UDP_CKSUM) == + PKT_TX_IIP_UDP_CKSUM) { /* (Inner) IP, (Inner) TCP/UDP CSO */ txbd1->lflags |= TX_BD_FLG_IP_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_OIP_TCP_UDP_CKSUM) == - PKT_TX_OIP_TCP_UDP_CKSUM) { - /* Outer IP, (Inner) TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_TIP_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_OIP_UDP_CKSUM) == - PKT_TX_OIP_UDP_CKSUM) { - /* Outer IP, (Inner) TCP/UDP CSO */ - txbd1->lflags |= TX_BD_FLG_TIP_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & PKT_TX_OIP_TCP_CKSUM) == - PKT_TX_OIP_TCP_CKSUM) { + PKT_TX_OIP_TCP_CKSUM || + (tx_pkt->ol_flags & PKT_TX_OIP_UDP_CKSUM) == + PKT_TX_OIP_UDP_CKSUM) { /* Outer IP, (Inner) TCP/UDP CSO */ txbd1->lflags |= TX_BD_FLG_TIP_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & PKT_TX_OIP_IIP_CKSUM) == - PKT_TX_OIP_IIP_CKSUM) { + PKT_TX_OIP_IIP_CKSUM) { /* Outer IP, Inner IP CSO */ txbd1->lflags |= TX_BD_FLG_TIP_IP_CHKSUM; - } else if ((tx_pkt->ol_flags & PKT_TX_TCP_UDP_CKSUM) == - PKT_TX_TCP_UDP_CKSUM) { - /* TCP/UDP CSO */ - txbd1->lflags |= TX_BD_LONG_LFLAGS_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) == - RTE_MBUF_F_TX_TCP_CKSUM) { - /* TCP/UDP CSO */ - txbd1->lflags |= TX_BD_LONG_LFLAGS_TCP_UDP_CHKSUM; - } else if ((tx_pkt->ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) == + RTE_MBUF_F_TX_TCP_CKSUM || + (tx_pkt->ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) == RTE_MBUF_F_TX_UDP_CKSUM) { /* TCP/UDP CSO */ txbd1->lflags |= TX_BD_LONG_LFLAGS_TCP_UDP_CHKSUM; } else if ((tx_pkt->ol_flags & RTE_MBUF_F_TX_IP_CKSUM) == - RTE_MBUF_F_TX_IP_CKSUM) { + RTE_MBUF_F_TX_IP_CKSUM) { /* IP CSO */ txbd1->lflags |= TX_BD_LONG_LFLAGS_IP_CHKSUM; } else if ((tx_pkt->ol_flags & RTE_MBUF_F_TX_OUTER_IP_CKSUM) == - RTE_MBUF_F_TX_OUTER_IP_CKSUM) { + RTE_MBUF_F_TX_OUTER_IP_CKSUM) { /* IP CSO */ txbd1->lflags |= TX_BD_LONG_LFLAGS_T_IP_CHKSUM; } else if ((tx_pkt->ol_flags & RTE_MBUF_F_TX_IEEE1588_TMST) == - RTE_MBUF_F_TX_IEEE1588_TMST || pkt_needs_ts) { + RTE_MBUF_F_TX_IEEE1588_TMST || pkt_needs_ts) { /* PTP */ txbd1->lflags |= TX_BD_LONG_LFLAGS_STAMP; } -- 2.47.3

