cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3044
Views
5
Helpful
3
Replies

eigrp packet, TLV

sarahr202
Level 5
Level 5

hi every body

How is everyone ?

I have few questions.

one of the field in eigrp packet format is vesion  which indicates the eigrp version.

But when we look at General TLV  ( software version , specified by type 0x0004),  It also shows Eigrp release version.     What is the difference between the two  i.e  version in eigrp packet format and  eigrp release version in software TLV ?

thanks and have a great weekend.

1 Accepted Solution

Accepted Solutions

Peter Paluch
Cisco Employee
Cisco Employee

Hello Sarah,

Nice to be in touch with you again! How are you and how are things going?

Regarding the Version field in EIGRP packet header and the Version TLV, I have no definitive answer for that, but my assumption is as follows.

The Version field in the EIGRP packet header that is currently set to 2, and it will always be set to 2 regardless of the true EIGRP version. I assume this is an additional check for the IOS code to distinguish between IGRP and EIGRP messages. The IGRP used the Version field set to 1 and Cisco has always considered the EIGRP to be the next generation of the former IGRP, hence the value of 2 for EIGRP messages.

Please see the following document about IGRP:

http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a00800c8ae1.shtml#ipimplement

Specifically, it states: "The version number is currently 1. Packets having other version numbers are ignored."

Regarding EIGRP, the encoding of its messages and the details about RTP itself, I strongly recommend reading the patent application No. 5,519,704 "Reliable Transport Protocol for Internetwork Routing" at

http://www.google.com/patents?id=XSMdAAAAEBAJ&printsec=frontcover&dq=5,519,704&hl=en&ei=437zTeHTJo_KtAabu7m1Bg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCkQ6AEwAA

The page 20 of the PDF document in the section "Example Headers and Data for Protocol Packets" specifically states: "In a preferred embodiment, a fixed header for EIGRP packets may comprise a version number 1201 (always 2) [... cut ...]". The 1201 in this statement only refers to a diagram element in Figure 12.

It is true that the IGRP was sent as IP protocol 9 messages while the EIGRP is using IP protocol 88, so the IP protocol number alone could be indicative of the IGRP/EIGRP. However, this is very similar to the IPv4 and IPv6 having their Version field set to 4 and 6, respectively, despite IPv4 using the EtherType 0x0800 and IPv6 using the EtherType 0x86DD. Strictly taken, because of EtherType or similar protocol-demultiplexing fields in L2 frames, the Version field in the IP header is not necessary, but then again, it is an additional useful check. I consider the Version field in IGRP and EIGRP packet headers to serve the same purpose.

Regarding the EIGRP version itself, the following document puts it quite nicely:

http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094cb7.shtml#majorrevisions

"There are two major revisions of EIGRP, versions 0 and 1. Cisco IOS versions earlier than 10.3(11), 11.0(8), and 11.1(3) run the earlier version of EIGRP; some explanations in this paper may not apply to that earlier version. We highly recommend using the later version of EIGRP, as it includes many performance and stability enhancements."

Thus the Version TLV contains the true version of the EIGRP being used, and so far, we seem to be running the EIGRP version 1.2 on most IOS platforms.

So to sum it up, the Version field in EIGRP packet headers is actually a protocol discriminator: a value of 1 would mean IGRP, the value 2 means EIGRP. The true EIGRP version, however, is indicated in the Version TLV.

My two cents about this...

Best regards,

Peter

View solution in original post

3 Replies 3

Florin Barhala
Level 6
Level 6

It had been asked on this forum, still no answer. I dug a little but couldn't find more than

https://cisco-support.hosted.jivesoftware.com/message/514889

For sure EIGRP version is 2, while hello packets use version 1.2, but that 4 hexa value seems a mistery .

Peter Paluch
Cisco Employee
Cisco Employee

Hello Sarah,

Nice to be in touch with you again! How are you and how are things going?

Regarding the Version field in EIGRP packet header and the Version TLV, I have no definitive answer for that, but my assumption is as follows.

The Version field in the EIGRP packet header that is currently set to 2, and it will always be set to 2 regardless of the true EIGRP version. I assume this is an additional check for the IOS code to distinguish between IGRP and EIGRP messages. The IGRP used the Version field set to 1 and Cisco has always considered the EIGRP to be the next generation of the former IGRP, hence the value of 2 for EIGRP messages.

Please see the following document about IGRP:

http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a00800c8ae1.shtml#ipimplement

Specifically, it states: "The version number is currently 1. Packets having other version numbers are ignored."

Regarding EIGRP, the encoding of its messages and the details about RTP itself, I strongly recommend reading the patent application No. 5,519,704 "Reliable Transport Protocol for Internetwork Routing" at

http://www.google.com/patents?id=XSMdAAAAEBAJ&printsec=frontcover&dq=5,519,704&hl=en&ei=437zTeHTJo_KtAabu7m1Bg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCkQ6AEwAA

The page 20 of the PDF document in the section "Example Headers and Data for Protocol Packets" specifically states: "In a preferred embodiment, a fixed header for EIGRP packets may comprise a version number 1201 (always 2) [... cut ...]". The 1201 in this statement only refers to a diagram element in Figure 12.

It is true that the IGRP was sent as IP protocol 9 messages while the EIGRP is using IP protocol 88, so the IP protocol number alone could be indicative of the IGRP/EIGRP. However, this is very similar to the IPv4 and IPv6 having their Version field set to 4 and 6, respectively, despite IPv4 using the EtherType 0x0800 and IPv6 using the EtherType 0x86DD. Strictly taken, because of EtherType or similar protocol-demultiplexing fields in L2 frames, the Version field in the IP header is not necessary, but then again, it is an additional useful check. I consider the Version field in IGRP and EIGRP packet headers to serve the same purpose.

Regarding the EIGRP version itself, the following document puts it quite nicely:

http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094cb7.shtml#majorrevisions

"There are two major revisions of EIGRP, versions 0 and 1. Cisco IOS versions earlier than 10.3(11), 11.0(8), and 11.1(3) run the earlier version of EIGRP; some explanations in this paper may not apply to that earlier version. We highly recommend using the later version of EIGRP, as it includes many performance and stability enhancements."

Thus the Version TLV contains the true version of the EIGRP being used, and so far, we seem to be running the EIGRP version 1.2 on most IOS platforms.

So to sum it up, the Version field in EIGRP packet headers is actually a protocol discriminator: a value of 1 would mean IGRP, the value 2 means EIGRP. The true EIGRP version, however, is indicated in the Version TLV.

My two cents about this...

Best regards,

Peter

Hello Peter,

this is much more then two cents

rated as it deserves

Best Regards

Giuseppe

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Review Cisco Networking products for a $25 gift card