Press "Enter" to skip to content

How to interpret MP_REACH_NLRI attribute with address length of 32 bytes contained in a MRT Dump

Last updated on December 27, 2018

        While parsing an <a href="http://tools.ietf.org/html/rfc6396#page-9" rel="nofollow">TABLE_DUMP_V2 RIB_IPV6_UNICAST</a> entry I encountered this binary sequence representing a <a href="http://tools.ietf.org/html/rfc4760" rel="nofollow">MP_REACH_NLRI</a> BGP Path Attribute:
80 E 26 0 2 1 20 20 1 5 4 0 1 0 0 0 0 A5 1 30 30
 0 1 FE 80 0 0 0 0 0 0 2 1B ED FF FE 32 A1 1 0 0
Whereas:
  Attribute Header
  80  -> 10000000 attribute is optional and no other flag set
  E   -> attribute type 14 (MP_REACH_NLRI)
  26  -> a length of 38 octets
  Attribute
  0 2 -> AFI-Type two is IPv6 (as indicated by dump subtype)
  1   -> SAFI-Type 1 which is unicast (as indicated by dump subtype)
  20  -> indicates a length of 32 bytes
And that last part is the point where I am confused as an IPv6 address is supposed to be at most 16 bytes of length and the rfc does not state that more than a single next hop address can be specified. How am I supposed to interprete an IPv6 address(es?) of length 32 in this context?

Be First to Comment

Leave a Reply

How to interpret MP_REACH_NLRI attribute with address length of 32 bytes contained in a MRT Dump

Last updated on December 27, 2018

        While parsing an <a href="http://tools.ietf.org/html/rfc6396#page-9" rel="nofollow">TABLE_DUMP_V2 RIB_IPV6_UNICAST</a> entry I encountered this binary sequence representing a <a href="http://tools.ietf.org/html/rfc4760" rel="nofollow">MP_REACH_NLRI</a> BGP Path Attribute:
80 E 26 0 2 1 20 20 1 5 4 0 1 0 0 0 0 A5 1 30 30
 0 1 FE 80 0 0 0 0 0 0 2 1B ED FF FE 32 A1 1 0 0
Whereas:
  Attribute Header
  80  -> 10000000 attribute is optional and no other flag set
  E   -> attribute type 14 (MP_REACH_NLRI)
  26  -> a length of 38 octets
  Attribute
  0 2 -> AFI-Type two is IPv6 (as indicated by dump subtype)
  1   -> SAFI-Type 1 which is unicast (as indicated by dump subtype)
  20  -> indicates a length of 32 bytes
And that last part is the point where I am confused as an IPv6 address is supposed to be at most 16 bytes of length and the rfc does not state that more than a single next hop address can be specified. How am I supposed to interprete an IPv6 address(es?) of length 32 in this context?

Be First to Comment

Leave a Reply

%d bloggers like this: