Skip to content

Add LLDPNeighborDetailTable to /op/lldp.yml using <get-lldp-neighbors-detail-information> #1239

@cronicded

Description

@cronicded
Request:

Include in /op/lldp.yml an LLDPNeighborDetailView table making the <get-lldp-neighbors-detail-information> call to ensure <lldp-remote-port-id> available on varied JunOS hardware platforms.

PROBLEM Description:

EX Platform does not return <lldp-remote-port-id>. Inconsistent RPC returns between hardware for the RPC call <get-lldp-neighbors-information>. MX does not return and does not have a <get-lldp-neighbors-detail-information> call.

This issue is being specifically opened for the EX as required/expected data is available in <get-lldp-neighbor-detail-information>.

EXPECTED Behavior

/op/lldp.yml to return <lldp-remote-port-id> and <lldp-remote-system-id> from a <get-lldp-neighbors-information> call.

ACTUAL Behavior

For EX platforms the RPC:

user@host1> show lldp neighbors | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.2R0/junos">
    <rpc>
        <get-lldp-neighbors-information>
        </get-lldp-neighbors-information>
    </rpc>
    <cli>
        <banner>{master:0}</banner>
    </cli>
</rpc-reply>

Does not return <lldp-remote-port-id>:

user@host1> show lldp neighbors | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.2R0/junos">
    <lldp-neighbors-information junos:style="brief">
        <lldp-neighbor-information>
            <lldp-local-port-id>ge-0/0/27</lldp-local-port-id>
            <lldp-local-parent-interface-name>-</lldp-local-parent-interface-name>
            <lldp-remote-chassis-id-subtype>Mac address</lldp-remote-chassis-id-subtype>
            <lldp-remote-chassis-id>bb:cc:dd:ee:ff:aa</lldp-remote-chassis-id>
            <lldp-remote-port-description>eth0</lldp-remote-port-description>
            <lldp-remote-system-name>host3</lldp-remote-system-name>
        </lldp-neighbor-information>
        ...

MX platform the RPC:

user@host2> show lldp neighbors | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos">
    <rpc>
        <get-lldp-neighbors-information>
        </get-lldp-neighbors-information>
    </rpc>
    <cli>
        <banner></banner>
    </cli>
</rpc-reply>

Does not return <lldp-remote-system-name>:

user@host2> show lldp neighbors | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos">
    <lldp-neighbors-information junos:style="brief">
        <lldp-neighbor-information>
            <lldp-local-port-id>xe-0/1/5</lldp-local-port-id>
            <lldp-local-parent-interface-name>ae0</lldp-local-parent-interface-name>
            <lldp-remote-chassis-id-subtype>Mac address</lldp-remote-chassis-id-subtype>
            <lldp-remote-chassis-id>aa:bb:cc:dd:ee:ff</lldp-remote-chassis-id>
            <lldp-remote-port-id-subtype>Interface name</lldp-remote-port-id-subtype>
            <lldp-remote-port-id>TenGigabitEthernet 0/28</lldp-remote-port-id>
        </lldp-neighbor-information>
        ...
ADDITIONAL INFO:

Discovered this using the [junipernetworks.junos] collection for ansible to populate cable terminations in netbox. remote_port_id returns null/None when using the following play on EX platforms and returns null/None for remote_sysname on MX platforms using the [juniper_junos_table] module:

    - name: Get LLDP neighbors using table/views
      juniper_junos_table:
        table: "LLDPNeighborTable"
        file: "lldp.yml"
      register: lldp_results

There is an inconsistency between EX and MX platforms. MX does not include [show lldp neighbors detail]. Interestingly, <lldp-remote-system-name> is missing from the MX rpc return. Tested on multiple JunOS versions [15.x to JTAC 20.x-Ry on both platforms].

Similar / related to #645 but this lack of information was mentioned in #474 (comment)

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions