Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dell : LLDP messages in S6100 should be same as S6000 #116

Closed
chitra-raghavan opened this issue Oct 20, 2017 · 5 comments
Closed

Dell : LLDP messages in S6100 should be same as S6000 #116

chitra-raghavan opened this issue Oct 20, 2017 · 5 comments
Labels

Comments

@chitra-raghavan
Copy link
Contributor

There is a difference in lldp messages coming from S6000 and S6100.
Both devices should be replying with similar message type.

S6100 : Show lldp neighbors in ARISTA vms fails

In S6100 setup in ARISTA vms , neighbor port id is shown as sonic device mac address
Where as in S6000 setup , show lldp neighbor in ARISTA shows the sonic device port address.

S6100 vm output
ARISTA01T2#show lldp neighbors
Last table change time : 0:20:27 ago
Number of table inserts : 24
Number of table deletes : 23
Number of table drops : 0
Number of table age-outs : 8
Port Neighbor Device ID Neighbor Port ID TTL
Et1 sonic-s6100-01 4c76.25f4.7081 120
ARISTA01T2#

S6000 Vm output
ARISTA01T2#show lldp neighbors
Last table change time : 6:24:34 ago
Number of table inserts : 12
Number of table deletes : 11
mNumber of table drops : 0
Number of table age-outs : 1
Port Neighbor Device ID Neighbor Port ID TTL
Et1 sonic-s6000-02 fortyGigE0/0 120
ARISTA01T2#

Debug :
Upon debugging lldp packets in s6000 , the interface id is mentioned in Port ID TLV (2) , where as in S6100 , it is mentioned as mac address with (oui Unknown)

S6000 LLDP packet snip :
08:52:11.618909 LLDP, length 237
Chassis ID TLV (1), length 7
Subtype MAC address (4): 90:b1:1c:f4:9a:62 (oui Unknown)
Port ID TLV (2), length 13
Subtype Local (7): fortyGigE0/0

Time to Live TLV (3), length 2: TTL 120s
System Name TLV (5), length 14: sonic-s6000-02
System Description TLV (6), length 99
Debian GNU/Linux 8 (jessie) Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2015-12-19) x86_64

S6100 LLDP packet snip :
08:59:50.649027 LLDP, length 220
Chassis ID TLV (1), length 7
Subtype MAC address (4): 4c:76:25:f4:70:81 (oui Unknown)
Port ID TLV (2), length 7
Subtype MAC address (3): 4c:76:25:f4:70:81 (oui Unknown)

Time to Live TLV (3), length 2: TTL 120s
System Name TLV (5), length 14: sonic-s6100-01
System Description TLV (6), length 99
Debian GNU/Linux 8 (jessie) Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2015-12-19) x86_64·

RFC
Both implementation is fine as per RFC2922.
Looks like 6100 is sending mac address as Port ID string instead of port alias.
There is difference on the subtype.

Port ID
The Port ID is a mandatory TLV which identifies the port component of the
endpoint identifier associated with the transmitting LLDP agent. If the
specified port is an IEEE 802.3 Repeater port, then this TLV is optional.
0123
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x2 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Port ID Type | Port ID String...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
[ Figure 6 – Port ID TLV Format ]
Paul Congdon – IEEE 802.1 Page 6 3/7/2002 – St Louis Plenary
The Port ID fields are defined as follows:
Port ID Type
This field identifies the format and source of the port identifier
string. It is an enumerator defined by the PtopoPortIdType object
from RFC2922
Port ID String
The binary string containing the actual port identifier for the port
which this LLDP PDU was transmitted. The source and format of this
field is defined by PtopoPortId from RFC2922.

Port ID String
The binary string containing the actual port identifier for the port
which this LLDP PDU was transmitted. The source and format of this
field is defined by PtopoPortId from RFC2922.


PtopoPortId ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This TC describes the format of a port identifier string.
Objects of this type are always used with an associated
PtopoPortIdType object, which identifies the format of the
particular PtopoPortId object instance.

        If the associated PtopoPortIdType object has a value of
        'portIdIfAlias(1)', then the octet string identifies a
        particular instance of the ifAlias object.

        If the associated PtopoPortIdType object has a value of
        'portIdEntPhysicalAlias(2)', then the octet string
        identifies a particular instance of the entPhysicalAlias
        object for a port component (i.e., entPhysicalClass value of
        'port(10)').

        If the associated PtopoPortIdType object has a value of
        'portIdMacAddr(3)', then this string identifies a particular
        unicast source MAC address associated with the port.

        If the associated PtopoPortIdType object has a value of
        'portIdPtopoGenAddr(4)', then this string identifies a
        network address associated with the port.  The first octet
        contains the IANA AddressFamilyNumbers enumeration value for
        the specific address type, and octets 2 through N contain

IMAGE VERSION :
root@sonic-s6100-01:~# show ver
SONiC Software Version: SONiC.HEAD.361-f7cdca4
Distribution: Debian 8.9
Kernel: 3.16.0-4-amd64
Build commit: f7cdca4
Build date: Mon Oct 16 13:14:32 UTC 2017
Built by: johnar@jenkins-worker-3

@rodnymolina
Copy link

Chitra, make sure that both the S600 and S6100 boxes have a valid /etc/lldp.conf file within LLDP docker (/etc/lldp.conf). I have noticed that SONiC’s LLDP daemon makes use of ‘portIdMacAddr’ type as the default value to advertise in the absence of a proper config file.

If the affected box doesn’t have a proper config file, execute this within your LLDP container and let us know if you see an error there:

sonic-cfggen -d -t /usr/share/sonic/templates/lldpd.conf.j2

@chitra-raghavan
Copy link
Contributor Author

After Executing the command in lldp container and restarting lldp service, it worked fine. I didn't see any errors.

LLDP packet snip:

root@sonic-s6100-01:~# tcpdump -i Ethernet0 ether proto 0x88cc -vv
tcpdump: listening on Ethernet0, link-type EN10MB (Ethernet), capture size 262144 bytes
08:25:24.668825 LLDP, length 239
Chassis ID TLV (1), length 7
Subtype MAC address (4): 4c:76:25:f4:70:81 (oui Unknown)
0x0000: 044c 7625 f470 81
Port ID TLV (2), length 15
Subtype Local (7): fortyGigE1/1/1
0x0000: 0766 6f72 7479 4769 6745 312f 312f 31
Time to Live TLV (3), length 2: TTL 120s
0x0000: 0078
System Name TLV (5), length 14: sonic-s6100-01
0x0000: 736f 6e69 632d 7336 3130 302d 3031

@stcheng
Copy link
Contributor

stcheng commented Oct 23, 2017

sonic-net/sonic-buildimage#1069
I believe this pull request will address your issue?

@stcheng stcheng added the bug label Oct 23, 2017
@stcheng
Copy link
Contributor

stcheng commented Oct 24, 2017

@chitra-raghavan could you help verify if this issue is fixed? then we could close this one.

@chitra-raghavan
Copy link
Contributor Author

LLDP passes in latest label 369.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants