Configuring GNSS

Information About GNSS

Industrial automation and control, utilities, and military networks require large numbers of devices in their networks to have an accurate and synchronized view of time. Cisco Industrial Ethernet switches are capable of accurate time distribution using PTP or IRIG-B, but previously relied on an external source (Grand Master Clock) to provide accurate time. The IE 5000 switch has a built-in Global Navigation Satellite System (GNSS) receiver that enables the switch to determine its own location and get an accurate time from a satellite constellation. The switch can then become the source (Grand Master Clock) for time distribution in the network. GNSS capability simplifies network synchronization planning and provides flexibility and resilience in resolving network synchronization issues in a hierarchical network.

GNSS Hardware

The IE 5000 uses a GNSS receiver with precise frequency and phase outputs for the host system. When connected to an external GNSS antenna, the receiver contains all the circuitry necessary to automatically acquire GNSS satellite signals, track up to 32 GNSS satellites, and compute location, speed, heading, and time. It provides an accurate one pulse-per-second (PPS) and stable 10 MHz frequency output. For more information, see GNSS Signaling

The GNSS chip supports the following frequency bands:

  • GPS/NAVSTAR - Global Positioning System – USA: L1

  • GLONASS – Global'naya Navigatsionnaya Sputnikovaya Sistema – Russia: L1/G1

  • BeiDou – China: (including B1-2)


Note

The Galileo satellite system is not currently supported in the released software.


Software

The GNSS feature is available for all feature sets (lanbase, ipservices). GNSS software performs the following functions:

  • Configures the GNSS receiver.

  • After the receiver has gained lock, software performs the following functions once per second:

    • Reads the new time/date.

    • Reads the corresponding PPS timestamp from the hardware.

    • Feeds time/date and PPS timestamp into the Time Services SW Virtual Clock/Servo for GNSS.

      The GNSS SW Virtual Clock time can then be used to drive PTP output.

GNSS Signaling

There are two stages in the process for the GNSS receiver to acquire satellites and provide timing signals to the host system:

  • Self-Survey Mode: On reset, the GNSS receiver comes up in self-survey mode and attempts to lock on to a minimum of four different satellites to obtain a 3-D fix on its current position. It computes nearly 2000 different positions for these satellites, which takes about 35 minutes. Also during this stage, the GNSS receiver is able to generate accurate timing signals and achieve “Normal (Locked to GPS)” state. Note that the timing signal obtained during self-survey mode can be off by 20 seconds; therefore, Cisco IOS collects PPS only during OD mode.

    After the self-survey is complete, the results are saved to the GNSS receiver flash, which speeds up the transition to OD mode the next time the self-survey runs. You can manually restart the self-survey process with the gnss self-survey restart Cisco IOS command. After self-survey mode completes again, the results in the GNSS receiver flash are overwritten with the updated results.

  • Over-determined (OD) clock mode: The device transitions to OD mode when self-survey mode is completed and the position information is stored in non-volatile memory on the device. In this mode, the GNSS receiver outputs timing information based on satellite positions obtained in self-survey mode.

The GNSS receiver remains in OD mode until there is a reason to leave it, such as:

  • Detection of a position relocation of the antenna of more than 100m, which triggers an automatic restart of the self-survey.

  • Manual restart of the self-survey using the gnss self-survey restart command.

After the GNSS receiver locks on to a satellite system, it sends a 10ms wide PPS pulse and the current time/date according to the satellite system to the Cisco IOS time service.

GNSS LED

The GNSS LED (labeled "GPS" on the cable side and power supply side LEDs) indicates the GNSS status. The following table shows LED colors and their meaning.

Table 1. GNSS LED

Color

Status

Flashing Green

  • GNSS is in self-survey mode.

  • The signal is lost.

Solid Green

  • GNSS is in normal state and self-survey is complete.

  • GNSS has valid signal/fix.

Amber

  • GNSS receiver firmware upgrade is in process.

    After the GNSS receiver firmware upgrade is complete, GNSS is reset and the LED flashes green as self-survey starts after reset.

  • A GNSS error occurred, such as antenna open, antenna shorted, no tracking satellite, etc.

    See show gnss status command for details.

Guidelines and Limitations

  • GNSS is supported only on IE 5000 switches with SKUs that have Version ID (VID) v05 or later. The show version command output includes the VID:

    Switch# show version
    .
    .
    .
    Version ID : V05
  • The GNSS feature is supported only on IE 5000 switches that have GNSS receiver firmware version 1.04 or later. To verify the GNSS firmware version, use the show version command:

    Switch# show version
    .
    .
    .
    GNSS firmware version : 1.04
  • A GNSS license is not required. The GNSS feature is available for all feature sets (lanbase, ipservices).

  • GNSS is available as a timing source for PTP default and power profiles only.

  • GNSS is available as a timing source for PTP only when PTP is in GMC-BC mode.

  • Syslog messages are sent when the following GNSS events occur:

    • GNSS is in self-survey mode.

    • GNSS reaches OD mode.

    • GNSS firmware upgrade is in progress, complete, or failed.

  • If the switch is the PTP grandmaster clock and it loses the antenna signal, the clock quality will degrade, resulting in a grandmaster clock switchover.

  • The GPS antenna alarm will not trigger an external relay alarm.

Default Settings

GNSS is disabled by default.

Parameter

Description

Default

cable-delay

Amount of time to compensate for cable delay in nanoseconds.

0

antenna power

Antenna power input voltage.

5

constellation

Satellite constellation that GNSS detects and locks to.

gps

anti-jam

Number of satellites required for a valid timing fix.

Enabled: A minimum of two satellites is required for a fix in over-determined clock mode, and three satellites are required for the first fix in self-survey mode.

Disabled: Only one satellite is required for a valid timing fix.

Enabled

Configuring GNSS

Perform these steps to configure GNSS. To disable GNSS after it is enabled or to remove a GNSS parameter configuration, use the no form of the commands shown in the steps below. Configuring GNSS parameters is optional if you use the defaults.

Before you begin

Refer to the documentation for your GNSS antenna to determine the antenna's power input voltage.

Procedure


Step 1

Enter global configuration mode:

Switch# configure terminal
Step 2

Enable GNSS:

Switch(config)# gnss

When GNSS is enabled, the GNSS process will run to collect GNSS pulse-per-second (PPS) timestamp information.

When GNSS is disabled, the chip operates normally, but there is no software process running to collect GNSS timestamp and PPS information.

Step 3

(Optional) Enter a value in nanoseconds to compensate for antenna cable delay:

Switch(config-gnss)# [no] antenna cable-delay cable-delay-in-nanoseconds

cable-delay-in-nanoseconds: A number from -100,000,000 to 100,000,000 nanoseconds.

A negative value means that PPS is output earlier to compensate for cable delay. By default, no cable delay is configured. The default value is 0.

It is recommended to compensate 5 nanoseconds per meter of cable.

Step 4

(Optional) Configure the antenna power input voltage:

Switch(config-gnss)# [no] antenna power {3.3 | 5}

The default antenna power input voltage is 5 volts.

Step 5

(Optional) Configure the GNSS constellation:

Switch(config-gnss)#[no] constellation {gps | glonass | beidou}
  • gps: Enables detection and locking to the GPS constellation.

  • glonass: Enables detection and locking to the GLONASS constellation.

  • beidou: Enables detection and locking to the BeiDou constellation.

The default is gps.

Only one constellation is active at any given time.

Step 6

(Optional) Disable or enable anti-jam for GNSS:

Switch(config-gnss)#[no] anti-jam
  • Enabled: A minimum of two satellites is required for a fix in over-determined clock mode, and three satellites are required for the first fix in self-survey mode.

  • Disabled: Only one satellite is required for a valid timing fix.

By default, anti-jam is enabled.

Step 7

(Optional) Restart the self-survey process:

Switch# gnss self-survey restart

This command deletes the stored reference position and restarts the self-survey process. After self-survey mode is complete, the new reference position is saved to the GNSS chip flash.

Use this command when the switch is moved to another location.


Configuring GNSS as Time Source for PTP

Follow these steps to select the time source for PTP. The ptp mode gmc-bc command to select the time source is available for both the PTP default profile and the PTP power profile.

When this command is configured and the clock is active and GNSS is in normal state, the GNSS PPS and timestamp string are used as input to PTP.

Before you begin

Ensure that the PTP clock is active and GNSS is enabled and in normal state. For more information about PTP configuration, see Precision Time Protocol Software Configuration Guide for IE 4000, IE 4010, and IE 5000 Switches.

Procedure


Step 1

Enter global configuration mode:

Switch# configure terminal
Step 2

Configure the switch for grandmaster-boundary clock mode:

Switch(config)# ptp mode gmc-bc

Example

Switch(config)# ptp mode gmc-bc
Switch(config)# exit
Switch# show ptp clock   → Verify PTP 
 PTP CLOCK INFO
  PTP Device Type: Grand Master clock - Boundary clock  → Verify GMC-BC mode
  PTP Device Profile: Default Profile
  Clock Identity: 0x34:C0:F9:FF:FE:59:11:80
  Clock Domain: 0
  Number of PTP ports: 28
  Time Transfer: Linear Filter
  Priority1: 128
  Priority2: 128
  Clock Quality:
        Class: 6
        Accuracy: Within 250ns
        Offset (log variance): N/A
  Offset From Master(ns): 0
  Mean Path Delay(ns): 0
  Steps Removed: 0  → Verify this node is the master. 0 step away from master.
  Local clock time: 15:46:42 UTC May 26 2017

Switch# show ptp time-property 
 PTP CLOCK TIME PROPERTY
  Current UTC offset valid: TRUE
  Current UTC offset: 37
  Leap 59: FALSE
  Leap 61: FALSE
  Time Traceable: TRUE
  Frequency Traceable: TRUE
  PTP Timescale: TRUE
  Time Source: GNSS  → Verify GNSS is the time source

Verifying Configuration

Command

Purpose

show gnss status

Display the GNSS status.

See example output with field descriptions below.

show gnss satellite {all | satellite-number}

Display status of satellites tracked by GNSS.

The signal strength is displayed in the form carrier-to-noise density (C/N0). The Signal Strength unit is dB-Hz and refers to the ratio of the carrier power and the noise power (dB) per unit bandwidth (Hz). Received satellite signal power varies with user antenna gain, satellite elevation angle, and satellite age. Typical C/N0 range is from 35–55 dB-Hz.

show gnss time

Display GNSS time.

show gnss location

Display GNSS location.

show platform gnss

Display GNSS hardware chip.

If applicable, display firmware upgrade progress (the remainder of bytes to be sent/total image size).

show version

Display GNSS firmware version.

debug gnss {configuration | driver | time-service | firmware-upgrade}

Turn on various GNSS debug flags.

The following shows example output for show gnss status after the GNSS receiver has completed self-survey mode and is providing timing information from the satellite system:

# show gnss status
 GNSS status: Enable
 Constellation: GPS
 Receiver Status: OD
 Survey progress: 100
 Satellite count: 7
 PDOP: 1.00    TDOP: 1.00
 HDOP: 0.00    VDOP: 0.00
 Alarm: None

Status fields and possible values are:

  • GNSS status

    • Enable

    • Disable

  • Receiver Status

    • Auto—Auto mode for 2D/3D

    • 1SV—Single satellite

    • 2SV—Horizontal (2D)

    • 3SV—Full position (3D)

    • OD—Over-determined

  • Survey progress—This field shows the progress of the survey as a percentage of fixes collected so far. The self-survey is complete when the self-survey progress reaches 100%.

  • PDOP—Position dilution of precision

  • HDOP—Horizontal dilution of precision

  • VDOP—Vertical dilution of precision

  • TDOP—Time dilution of precision

  • Alarm

    • Antenna open

    • Antenna shorted

    • Not tracking satellites

    • Survey-in progress

    • No stored position

    • Leap second pending


    Note

    If any GPS alarm conditions are present, the switch may not be providing timing information from the satellite system.

    The alarm will clear automatically.


The following shows example output for show gnss satellite :

Switch# show gnss satellite all
SV Type Codes: 0 - GPS, 1 - GLONASS, 2 - Beidou

All Satellites Info:
SV PRN No   Channel No       Acq Flg    Ephemeris Flg     SV Type     Sig Strength
----------------------------------------------------------------------------------
        5            0             1                1           0               44
        2            1             1                1           0               46
       29            2             1                1           0               49
       18            3             1                1           0               43
       25            4             1                1           0               44
       21            5             1                1           0               44
       20            6             1                1           0               45
       12            7             1                1           0               47
       15            8             1                1           0               47
       13            9             1                1           0               46

This example shows output for show gnnss time and show gnss location :

Switch# show gnss time
Current GNSS Time:
Time: 2017/09/18  19:29:58 UTC Offset: 18

Switch# show gnss location
Current GNSS Location:
  LOC: 30:26.045678699 N  97:45.036946399 W  266.1928 m

Troubleshooting

Memory Leak in GNSS Periodic Process (CSCvn78196 )

A memory leak may occur in the GNSS Periodic Process, resulting in a crash. The memory leak crash can be caused by a non-functional GNSS module (caused by GNSS chip firmware corruption) on the switch. When this occurs, the following message appears in the console logs:

046578: 006660: Nov 14 10:38:52.166 SGT: %SYS-4-CHUNKSIBLINGSEXCEED: Number of siblings in a chunk has gone
 above the threshold. Threshold:10000 Sibling-Count:16600 Chunk:0x2179FDA8 Name:Elsinore TSIP P -Process= "GNSS 
Periodic Process", ipl= 0, pid= 97 (SRGN-IE5K-ESW-R01-2)

Check the GNSS hardware build, GNSS firmware version, and IOS version using the following commands:

  • show version | In GNSS

  • show platform gnss

  • show gnss status

There are two methods to recover GNSS chip firmware:

  • Firmware recovery—The recovery feature is available in the Cisco IOS 15.2(7)E1 release. The steps for the recovery are described in Recovering GNSS Firmware.


    Note

    For switches in stack mode, you need to perform this workaround on the primary switch and members as well.


  • Factory reset and firmware upgrade—IOS images starting with 15.2(8)E support upgrade of GNSS firmware to version 1.07. See Upgrading GNSS Firmware for the procedure to perform a firmware upgrade.

Recovering GNSS Firmware

Use the following procedure to recover the GNSS firmware:

Before you begin
  • Ensure that the switch is running Cisco IOS 15.2(7)E1 or later.

  • Confirm the GNSS chip is not functional.

    The show version command does not display the GNSS version when the GNSS chip is not functional. The GNSS version is listed below "Hardware Board Revision" and "FPGA version". The following is example output showing a functional GNSS chip:

    Hardware Board Revision Number : 0x05
    Backplane FPGA version : 2.A4 
    GNSS firmware version : 1.07
    Feature Mode : 0x2D Enabled: DEFAULT (Disabled: STT)
    CIP Serial Number : 0x0ED68800
    SKU Brand Name : Cisco

    In this example output, the show platform gnss command does not detect the chip model:

    ESC-IE5K-12P-10G#show platform gnss 
    Board ID: 0x2000000 (Production SKU) 
    GNSS Chip: 
        Hardware code: 0 - Unknown hardware - GNSS can not be supported 
        Serial Number: 0
        Build Date: 0/0/0
Procedure

Step 1

Enter the service internal command in global configuration mode to enable execution of hidden commands:


ESC-IE5K-12P-10G#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ESC-IE5K-12P-10G(config)#service internal
ESC-IE5K-12P-10G(config)#end
ESC-IE5K-12P-10G#
Step 2

Enable GNSS before running any GNSS test tool such as "test gnss xxxx:"

ESC-IE5K-12P-10G#show gnss status 
GNSS status: Disable
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#conf t
Enter configuration commands, one per line. End with CNTL/Z. 
ESC-IE5K-12P-10G(config)#gnss
ESC-IE5K-12P-10G(config-gnss)#end
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#show gnss status 
GNSS status: Enable
Constellation: GPS
Receiver Status: OD
Survey progress: 100
Satellite count: 8
PDOP: 1.00 TDOP: 1.00
HDOP: 0.00 VDOP: 0.00
Alarm: ANTENNA_OPEN
Note 

If GNSS test tools are run in GNSS disabled mode, then they don’t perform the requested action. The test gnss enable command does NOT enable GNSS.

Step 3

(Optional, but good to have) Enable GNSS debug to track the recovery status:

ESC-IE5K-12P-10G#debug gnss firm
GNSS Firmware-upgrade debugging is on
ESC-IE5K-12P-10G#
Step 4

Run firmware recovery code command test gnss recover-firmware:

ESC-IE5K-12P-10G#test gnss recover-firmware
Starting GNSS firmware recovery. Please wait ...
[GNSS FWUPG]: gnss_firmware_recover: firmware_arr_size 777244 remain_firmware_arr_size 777244
[GNSS FWUPG]: gnss_remote_dwnld_req_start: Sending remote download start command
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_rem_dwnld_send_data_chunk: Sending remote download data of 1024 bytes, rem 776220
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
.
.
.
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_fw_upg_done: Sending remote request reset command, pkt checksum = 41
[GNSS FWUPG]: gnss_reset_fw_upg: Firmware upg reset
[GNSS FWUPG]: gnss_reset_fw_upg: Reset GNSS chip
[GNSS FWUPG]: gnss_reset_fw_upg: Sending GNSS_FACTORY_RESET command Jan 24 06:49:57.165: %GNSS-5-FIRMWARE_UPGRADE_COMPLETED_SUCCESSFULLY: upgraded to version 1.05
ESC-IE5K-12P-10G#
Step 5

Use the show version command and the show platform gnss command to confirm that the GNSS firmware has recovered.

show version displays the GNSS version, and show platform displays the GNSS chip information.

Hardware Board Revision Number : 0x05
Backplane FPGA version : 2.99
GNSS firmware version : 1.05
ESC-IE5K-12P-10G#show platform gnss
Board ID: 0x2000000 (Production SKU) 
GNSS Chip:Hardware code: 3023 - RES SMT 360 
    Serial Number: 1153119945 
    Build Date: 3/30/2015
Step 6

(Optional) Reboot the switch to confirm that the GNSS firmware upgrade is permanent across reloads.


Upgrading GNSS Firmware

If the procedure in Recovering GNSS Firmware failed to update the GNSS firmware and GNSS chip hardware information in show command output is listed as "Unknown...", the firmware may be corrupted. CLI is provided in Cisco IOS Release 15.2(8)E and later to upgrade GNSS firmware to version 1.07. Follow these steps to upgrade the GNSS firmware:
Procedure

Step 1

Enter the service internal command in global configuration mode to enable execution of hidden commands:


ESC-IE5K-12P-10G#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ESC-IE5K-12P-10G(config)#service internal
ESC-IE5K-12P-10G(config)#end
ESC-IE5K-12P-10G#
Step 2

Enable GNSS before running any GNSS test tool such as "test gnss xxxx:"

ESC-IE5K-12P-10G#show gnss status 
GNSS status: Disable
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#conf t
Enter configuration commands, one per line. End with CNTL/Z. 
ESC-IE5K-12P-10G(config)#gnss
ESC-IE5K-12P-10G(config-gnss)#end
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#
ESC-IE5K-12P-10G#show gnss status 
GNSS status: Enable
Constellation: GPS
Receiver Status: OD
Survey progress: 100
Satellite count: 8
PDOP: 1.00 TDOP: 1.00
HDOP: 0.00 VDOP: 0.00
Alarm: ANTENNA_OPEN
Note 

If GNSS test tools are run in GNSS disabled mode, then they don’t perform the requested action. The test gnss enable command does NOT enable GNSS.

Step 3

Run the test gnss upgrade-firmware command.

ESC-IE5K-12P-10G#test gnss ?
disable disable gnss service
enable enable gnss service
factory-reset Factory-reset upgrade-firmware Upgrade to gnss firmware V1.07
ESC-IE5K-12P-10G# 
ESC-IE5K-12P-10G#test gnss upgrade-firmware
Starting GNSS firmware upgrade. Please wait ...
ESC-IE5K-12P-10G#
Jan 24 06:33:11.344: %GNSS-5-FIRMWARE_UPGRADE_IN_PROGRESS: upgrade to version 1.07 in progress
[GNSS FWUPG]: gnss_rem_dwnld_send_data_chunk: Sending remote download data of 512 bytes, rem 104
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_rem_dwnld_send_data_chunk: Sending remote download data of 256 bytes, rem 0
[GNSS FWUPG]: gnss_rem_dwnld_send_data_chunk: Last 256 byte data *******
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_remote_dwnld_send_data: Sending file completed
[GNSS FWUPG]: gnss_remote_dwnld_req_finish: Sending remote download req finish command, DC
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_remote_dwnld_send_request_reset: Sending remote request reset command, pkt checksum = 41
[GNSS FWUPG]: validate_gnss_remote_dwnld_response: ACK received
[GNSS FWUPG]: gnss_fw_upg_done: Sending remote request reset command, pkt checksum = 41
[GNSS FWUPG]: gnss_reset_fw_upg: Firmware upg reset
[GNSS FWUPG]: gnss_reset_fw_upg: Reset GNSS chip
[GNSS FWUPG]: gnss_reset_fw_upg: Sending GNSS_FACTORY_RESET command
Jan 24 06:49:57.165: %GNSS-5-FIRMWARE_UPGRADE_COMPLETED_SUCCESSFULLY: upgraded to version 1.07
Step 4

If you upgraded the GNSS firmware from version 1.05 to version 1.07, run the test gnss factory-reset command.

Whenever the GNSS firmware is upgraded from 1.05 to a later version or downgraded from a later version to 1.05, the internal GNSS flash needs to be set to the correct format using the factory-reset command.

ESC-IE5K-12P-10G#test gnss factory-reset
ESC-IE5K-12P-10G#
Step 5

Use the following commands to verify the GNSS firmware version and Cisco IOS memory consumption to confirm that the GNSS firmware upgrade has resolved the issue.

  • show version | In GNSS

  • show platform gnss

  • show proc memory sorted | in GNSS

  • show proc memory sorted <GNSS PID>

Check the memory consumption a couple of times. The process should slowly release the memory consumed.


Feature History

Feature Name

Release

Feature Information

Global Navigation Satellite System (GNSS)

Cisco IOS Release 15.2(6)E0a

Initial support on IE 5000.