From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] pmd: Add generic support for TCP TSO (Transmit Segmentation Offload) Date: Mon, 20 Oct 2014 15:51:09 +0200 Message-ID: <2828270.80eTSv21yY@xps13> References: <20141020094252.14456.58891.stgit@gklab-18-011.igk.intel.com> <1675767.ObibVazTHA@xps13> <7C4248CAE043B144B1CD242D275626532FDE0709@IRSMSX104.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: "Walukiewicz, Miroslaw" Return-path: In-Reply-To: <7C4248CAE043B144B1CD242D275626532FDE0709-kPTMFJFq+rGvNW/NfzhIbrfspsVTdybXVpNB7YpNyf8@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 2014-10-20 12:45, Walukiewicz, Miroslaw: > > > /* fields to support TX offloads */ > > > - union { > > > - uint16_t l2_l3_len; /**< combined l2/l3 lengths as single var > > */ > > > - struct { > > > - uint16_t l3_len:9; /**< L3 (IP) Header Length. */ > > > - uint16_t l2_len:7; /**< L2 (MAC) Header Length. > > */ > > > + /* two bytes - l2/l3 len for compatibility (endian issues) > > > + * two bytes - reseved for alignment > > > + * two bytes - l4 len (TCP/UDP) header len > > > + * two bytes - TCP tso segment size > > > + */ > > > + struct { > > > + union { > > > + uint16_t l2_l3_len; /**< combined l2/l3 len */ > > > + struct { > > > + uint16_t l3_len:9; /**< L3 (IP) Header */ > > > + uint16_t l2_len:7; /**< L2 (MAC) Header */ > > > + }; > > > }; > > > > Why nesting these fields in an anonymous structure? > > I want to keep a source compatibility with non-TSO applications using that > field for example IP checksum computing by NIC. > Keeping this structure anonymous I do not require changes in old > applications that do not need TSO support. > > The second argument is that in original patch extending the rte_mbuf to 128 > bytes made by Bruce the author made this structure anonymous and I follow > this assumption too. Excuse me, maybe I missed something, but I still don't understand why you are embedding the union into a struct? -- Thomas