Find the answer to your Linux question:
Results 1 to 4 of 4
Hi guys , As the subject of this post suggest i came to know that IPv6 options header is 8-octet padded.As per my understanding padding is required beacause when we ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Oct 2010
    Posts
    7

    Exclamation Why IPv6 options header is 8-octet padded.


    Hi guys ,
    As the subject of this post suggest i came to know that IPv6 options header is 8-octet padded.As per my understanding padding is required beacause when we have a 32-bit machine i.e.databus =32 bits... it wil get addresses inmultiples of 4bytes ... but why is it 8bytes for IPv6 ?has it got anything to do with 64-bit machines being compatible with others ??please reply me as this doubt is killing me for an answer ...

  2. #2
    Linux Engineer Kloschüssel's Avatar
    Join Date
    Oct 2005
    Location
    Italy
    Posts
    773
    What is the options header? I know only following parts:

    Version (4 bits)
    Traffic Class (8 bits)
    Flow Label (20 bits)
    Payload Length (16 bits)
    Hop Limit (8 bits)
    Source Address (128 bits)
    Destination Address (128 bits)
    And the extension headers:

    Next Header (8 bits).
    Hdr Ext Len (8 bits)
    Options (variable)
    Where the variable Options actually should always fill 8 full octets (=padding) each. This makes it a lot easier to implement as one has only to shift 8bytes until reached Hdr Ext Len.
    Last edited by Kloschüssel; 11-19-2010 at 08:33 AM.

  3. #3
    Just Joined!
    Join Date
    Oct 2010
    Posts
    7
    The headers used for various options like jumbo payload,hop-to-hopt options are called options headers.And they are the ones specified by you as extension headers.

    and the reason to hav padding is say you hav a 32-bit machine then it should have a 32-bit data bus.So if they want to read or write it has to be done 4bytes at a time.
    Thats why they are aligned by 4byte boundary.

    The case here is its 64-bit boundary its ok with 64-bit machines but why is it maintained for evrybody.. this is my exact question....

    you did not get the core part of my question..

  4. $spacer_open
    $spacer_close
  5. #4
    Linux Engineer Kloschüssel's Avatar
    Join Date
    Oct 2005
    Location
    Italy
    Posts
    773
    Just to synch the semantics on the defined standards:

    Extension Headers are not "Options headers", see here.

    It is true, a IPv6 header is exactly 4 * 64 bits long and an extension header exactly a multiple of 64bit. For a 32bit machine reading that stream would be no problem either cause 2*32bit is 64bit.

    Is your question actually: Why was the IPv6 standard developed to fit best the 64bit architecture of computers?

    The answer to that question is pretty obvious, don't you think? IPv6 streams neatly fit the computer architecture of the next couple of years and is backwards compatible to older machines.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •