On Thu, 8 Jan 2026 09:59:13 -0500 [email protected] wrote: > diff --git a/lib/net/rte_ip4.h b/lib/net/rte_ip4.h > index 822a660cfb..67033875cc 100644 > --- a/lib/net/rte_ip4.h > +++ b/lib/net/rte_ip4.h > @@ -223,21 +223,19 @@ rte_ipv4_phdr_cksum(const struct rte_ipv4_hdr > *ipv4_hdr, uint64_t ol_flags) > uint8_t zero; /* zero. */ > uint8_t proto; /* L4 protocol type. */ > uint16_t len; /* L4 length. */ > - } psd_hdr; > - > - uint32_t l3_len; > - > - psd_hdr.src_addr = ipv4_hdr->src_addr; > - psd_hdr.dst_addr = ipv4_hdr->dst_addr; > - psd_hdr.zero = 0; > - psd_hdr.proto = ipv4_hdr->next_proto_id; > - if (ol_flags & (RTE_MBUF_F_TX_TCP_SEG | RTE_MBUF_F_TX_UDP_SEG)) { > - psd_hdr.len = 0; > - } else { > - l3_len = rte_be_to_cpu_16(ipv4_hdr->total_length); > - psd_hdr.len = rte_cpu_to_be_16((uint16_t)(l3_len - > - rte_ipv4_hdr_len(ipv4_hdr))); > - } > + } psd_hdr = { > + .src_addr = ipv4_hdr->src_addr, > + .dst_addr = ipv4_hdr->dst_addr, > + .proto = ipv4_hdr->next_proto_id, > + .len = (ol_flags & (RTE_MBUF_F_TX_TCP_SEG | > RTE_MBUF_F_TX_UDP_SEG)) ? 0 : > + > rte_cpu_to_be_16((uint16_t)(rte_be_to_cpu_16(ipv4_hdr->total_length) - > + rte_ipv4_hdr_len(ipv4_hdr))) > + }; > +#ifdef RTE_
I find it hard to read complex expressions in initialiazers. Much better as original if statement. Sometimes you need a union to convince compiler of aliasing

