Pseudowires (xconnect) VC ID value can range from 1-4294967295, but the “cpwVcID” value maxes out at 2147483648 due to MariaDB INT type value limitations. If a pseudowire value is greater than 2147483648, the “cpwVcID” will be entered as 2147483648 instead of the actual value of the pseudowire VC ID.
!!! Cisco Router !!!
no ip address
xconnect 10.250.250.1 2723500018 encapsulation mpls
hold-queue 4096 out
2723500018 is greater than 2147483648
When the “cisco-pw” discovery module runs it will send 2723500018 to MariaDB, but because it exceeds the maximum integer value of 2147483648, it will be entered as 2147483648 instead of the actual VC ID. As a result, every time discovery.php runs against that device, the pseudowire will be entered into the database again because the module checks for the existence of 2723500018 which doesn’t exist. When it doesn’t find 2723500018 in the database it inserts it into the database thus creating another entry with a value of 2147483648 for the same reason explained previously. Now there are two entries for the same pseudowire with a “cpwVcID” value of 2147483648. This will continue to happen every time discovery.php runs against the device.
In my case, I didn’t figure out what the issue was until there were over 8000 entries. Some symptoms that will be noticeable in the UI if this occurs are multiple pseudowire entries under the Pseudowires tab of a device. It also will be visible under the Ports tab for a device. On the right side of the page where the linked ports are shown, multiple entries for the same connection will appear.