Creating a Circuit ID Format

Timothy Creswick timothy at
Wed Aug 23 08:18:52 UTC 2017

> Things that most people generally agree on include:
> - carefully splitting out service types.  E.g. a fibre cable to a
> location is one ID; a wavelength on that service is another ID of
> another type; an IP transit service on that wave is a third ID, etc.

Definitely. We have one digit in our circuit ID which denotes the type to aid with quick identification.
We also use a luhn-10 checksum digit at the end, which is optional on re-entry. This is really helpful when getting references over the phone. When written, it's with a hyphen so that it's clear that it's able to be dropped.

A few things we also decided on:

- Circuit references are purely numerical (although we prefix them with letters when written, those letters are not part of what makes the numbers unique in our business). The main reason for this is that they can easily be entered in a variety of *compact* barcode formats. Most label printers support this, and it saves loads of time in the datacentre when you can just scan the label on a circuit on a handheld PC.

- Circuit references are always the same length. This way, if the checksum digit is being dropped (e.g. because it's coming from a non-human source like a barcode), we know that the checksum digit is missing.

- The first digit is never a zero, to avoid silly mistakes if you're sorting them in Excel etc.

- The first four digits are a simple date code of YYMM that the ID was generated. This is surprisingly handy when you're looking for a specific circuit reference in a list, and it sort of helps to spread the dataset out a bit. This is what ensures that it's a non-zero first digit for the next 80 years or so. The date code isn't a *requirement* of our format, however. Should we need more than 10,000 circuits per month, we'll just abandon the date coding.

For those interested, our system looks like this:


Any non [0-9] characters (including symbols) can be omitted.

VCI : denotes that this circuit identifier corresponds to our business
1506 : date code
0001 : sequence number, incremented per circuit, per month
9 : circuit type
7 : checksum (optional)


More information about the NANOG mailing list