linux-toolchains.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: "Cufi, Carles" <Carles.Cufi@nordicsemi.no>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"jukka.rissanen@linux.intel.com" <jukka.rissanen@linux.intel.com>,
	"johan.hedberg@intel.com" <johan.hedberg@intel.com>,
	"Lubos, Robert" <Robert.Lubos@nordicsemi.no>,
	"Bursztyka, Tomasz" <tomasz.bursztyka@intel.com>,
	linux-toolchains@vger.kernel.org
Subject: Re: Non-packed structures in IP headers
Date: Fri, 01 Oct 2021 22:10:08 +0200	[thread overview]
Message-ID: <87bl48v74v.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <AS8PR05MB78952FE7E8D82245D309DEBCE7AA9@AS8PR05MB7895.eurprd05.prod.outlook.com> (Carles Cufi's message of "Thu, 30 Sep 2021 12:30:05 +0000")

* Carles Cufi:

> I was looking through the structures for IPv{4,6} packet headers and
> noticed that several of those that seem to be used to parse a packet
> directly from the wire are not declared as packed. This surprised me
> because, although I did find that provisions are made so that the
> alignment of the structure, it is still technically possible for the
> compiler to inject padding bytes inside those structures, since AFAIK
> the C standard makes no guarantees about padding unless it's
> instructed to pack the structure.

The C standards do not make such guarantees, but the platform ABI
standards describe struct layout and ensure that there is no padding.
Linux relies on that not just for networking, but also for the userspace
ABI, support for separately compiled kernel modules, and in other
places.

Sometimes there are alignment concerns in the way these structs are
used, but I believe the kernel generally controls placement of the data
that is being worked on, so that does not matter, either.

Therefore, I do not believe this is an actual problem.

Thanks,
Florian


       reply	other threads:[~2021-10-01 20:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AS8PR05MB78952FE7E8D82245D309DEBCE7AA9@AS8PR05MB7895.eurprd05.prod.outlook.com>
2021-10-01 20:10 ` Florian Weimer [this message]
2021-10-02 15:54   ` Non-packed structures in IP headers David Laight
2021-10-04 10:41     ` Cufi, Carles
2021-10-04 12:18       ` David Laight
2021-10-04 10:30   ` Cufi, Carles
2021-10-09  6:56     ` Florian Weimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bl48v74v.fsf@oldenburg.str.redhat.com \
    --to=fweimer@redhat.com \
    --cc=Carles.Cufi@nordicsemi.no \
    --cc=Robert.Lubos@nordicsemi.no \
    --cc=johan.hedberg@intel.com \
    --cc=jukka.rissanen@linux.intel.com \
    --cc=linux-toolchains@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=tomasz.bursztyka@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).