[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Clarification on object padding for Call-ID in RFC3474
In RFC3474, section 4.1.1 describes the Call-ID.
The Call-ID has a variable-length field, the source LSR address toward
the end of the object as follows:
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source LSR address |
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local identifier (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where the source LSR address length is defined its type:
For Type=0x01, the source LSR address is 4 bytes
For Type=0x02, the source LSR address is 16 bytes
For Type=0x03, the source LSR address is 20 bytes
For type=0x04, the source LSR address is 6 bytes
For type=0x7f, the source LSR address has the length defined by
the vendor
Since type=0x04 (and possibly type 0x7f) has a size that is not a
multiple of 4 bytes, the issue of padding and alignment is raised. Pad
bytes for objects are by default added to the end of an object and not
counted in the length (option A below). However, the diagram appears to
indicate 32-bit alignment of the Local identifier (Option B below).
So, for type=0x4, do we have:
A) Source LSR (6 bytes), Local Identifier (8 bytes), pad (2 bytes)
Or
B) Source LSR (6 bytes), pad (2 bytes), Local Identifier (8 bytes).
Thanks for your time,
Rich