This EXOS-CDP Implementation describes the operation of the protocol for reception of CDPPDUs on a single port, using a Multicast Mac address as the destination (01:00:0C:CC:CC:CC).
The following EXOS CDP related functions are created as part of the existing CDP process.
CDP frame reception consists of three phases: frame recognition, frame validation, CDP neighbor updates.
Frame Recognition is performed at the kernel level. A CDP raw socket is created and bound to the nexTx device. A filter to receive all the CDP packets with the Multicast MAC address of 01:00:0C:CC: CC:CC is attached during initialization, and when CDP is enabled in the port. Then a per port filter is added using expktInterface_t.
Frames that are recognized as CDP frames are validated to determine whether they are properly constructed and contain the correct CDP packet format. Frames that pass validation criteria are used to update the contents of the neighbor entries in the database.
If the neighbor entry does not exist in the CDP neighbor database, a new entry is created. If the neighbor entry already exists in the database, new information contained in the CDPPDU is used to replace the changed information of the existing entry in the neighbor database.One of the parameters received in an incoming CDPPDU is the TTL value. This determines how long the information is stored in the neighbor database before it is aged out and deleted. Aging out old data ensures that neighbor entries are purged that were originated by systems that are no longer neighbors, either because of system failure or system inactivation.
If the port, or the connection to the remote system fails, the neighbor entity from the database is not deleted. It will be deleted after the associated TTL timer expires.
rx_timer -- A global rx_timer is defined for the CDP receive functionality. This timer is created when any one neighbor is added to the neighbor database. This timer is operated as a countdown timer, with a value of 15 seconds.
The timers are started when at least one neighbor is created. Once the timer expires, it checks the neighbor database and deletes the neighbor entry when the hold time reaches 0.
tx_timer -- A tx_timer is defined for the CDP transmit functionality on each port. This timer is created when CDP is enabled on the port.
The following attributes are validated in the received CDP PDU:
The EXOS-CDP module uses the same socket created during initialization for transmitting the CDPPDUs.
Under normal circumstances, remote devices send CDP messages at a configured interval (default 1 minute). If you enable CDP between CDP Messages in Extreme Switches, the feature must wait for next CDPPDU to update in the neighbor database. To avoid this delay when CDP is enabled, a CDPPDUs is sent to peer.
For every default configuration of message interval 60 seconds, CDP packets are transmitted on the CDP-enabled ports.This message interval is the configurable through CLI. The default value is 60 seconds, and the range for this message interval is 5 to 254 seconds
Advertisements received from the peer contain time-to-live information that indicates the length of time a receiving device holds CDP information before discarding it.
A neighbor entry is discarded after three advertisements from the device are missed.
CDP counters of total TX and RX CDP control packets are maintained on each port.
CDP that runs over an aggregated MAC client, and the CDPPDUs information, is received on all ports that are part of the aggregated interface.