CanCun

Cancun file and status operations

CanCun

Shortest form: cc.

Manage CANCUN, the set of firmware/configuration packages that program the Trident 3’s flexible parser and pipeline (CIH, CMH, CCH, CEH, CFH and ISPF files). syncd loads them at start-up. Sub-command keywords must be typed in full (any case).

Warning

cancun load reprograms the pipeline of a running switch. Loading a file that does not match the one the SDK was initialised with breaks parsing and forwarding; cancun debug app changes a CCH application setting. The other forms only display.

The built-in help lists stat, list, load, debug and help. The shell also has scan and several debug sub-commands, and load takes different arguments than the help shows (see below).

Hardware-validated

drivshell> cancun stat
UNIT0 CANCUN:
     CIH: LOADED
     Ver: 06.15.00

     CMH: LOADED
     Ver: 06.15.00
     SDK Ver: 06.05.35

     CCH: LOADED
     Ver: 06.15.00
     SDK Ver: 06.05.35

     CEH: LOADED
     Ver: 06.15.00
     SDK Ver: 06.05.35

     CFH: LOADED
     Ver: 06.15.00
cancun stat

Show each CANCUN package type (CIH, CMH, CCH, CEH, CFH) with its load status (LOADED), its version and, for some, the SDK version it was built for. Read-only.

Hardware-validated

drivshell> cancun stat
UNIT0 CANCUN:
  CIH: LOADED
  Ver: 06.15.00

  CMH: LOADED
  Ver: 06.15.00
  SDK Ver: 06.05.35

  CCH: LOADED
  Ver: 06.15.00
  SDK Ver: 06.05.35

  CEH: LOADED
  Ver: 06.15.00
  SDK Ver: 06.05.35

  CFH: LOADED
  Ver: 06.15.00
cancun list [<filename>]

List the CANCUN files in the CANCUN directory of the syncd container (FILE, TYPE, FORMAT, version and validity columns; sub-directories marked D), or show one file. Read-only.

On SONiC no CANCUN directory is configured, so the command lists the root directory of the syncd container: only sub-directories, no CANCUN files. The packages syncd loaded are shown by cancun stat.

Hardware-validated

drivshell> cancun list
   FILE                                               TYPE    FORMAT   VER          VALID
 D lib
 D dev
 D tmp
 D etc
 D boot
 D run
 D media
 D sonic
 D opt
 D sbin
 D proc
 D var
 D bin
 D home
 D usr
 D root
 D mnt
 D sys
 D srv
 D lib64
cancun load <cih | cmh | cch | ceh | cfh | ispf | <filename>> [pio | pack]

Load a CANCUN file. A type keyword alone loads that type’s default file (the form the SDK’s own rc scripts use); a file name loads that file, with pio or pack as its format when it is not a packaged file. cfh is ignored when the flow module is not enabled. The built-in help shows load <filename> <file type> <file format> with formats pio|dma; the shell takes the type instead of a file name, and the formats pio and pack.

Unvalidated

drivshell> cancun load cch
cancun scan [cmh | cch]

Check that the CMH and/or CCH tables can be accessed and print CMH access scan PASS (or FAIL) and the same for CCH. Without an argument both are checked.

Unvalidated

drivshell> cancun scan
cancun debug <cmh | cch>

Dump the CMH or CCH hash table: its parameters (pA … pD, size), the list of covered memories/registers and fields, and the raw data words. Read-only.

Unvalidated

drivshell> cancun debug cmh
cancun debug branch_id <type>

Print the branch ID of a loaded CANCUN file type, given as a number: CANCUN (<type>), branch_id(<n>). Read-only.

Unvalidated

drivshell> cancun debug branch_id <type>
cancun debug udf <srcapp> <max_stages>

Print the UDF stage information of a source application (size, policy_mem, hfe_profile_ptr, start_pos, flags per stage). Read-only.

Unvalidated

drivshell> cancun debug udf <srcapp> <max_stages>
cancun debug app <app> <value>

Set a CCH application configuration value. Changes the pipeline configuration.

Unvalidated

drivshell> cancun debug app <app> <value>

Built-in help

Parameters: [stat|list|load|debug|help] <args...>
  CANCUN operations including information display and file loading. The
  supported operations are:
     stat     - Display currently loaded CANCUN information
     list     - List all CANCUN loadable files in current file system
     load     - Load a particular CANCUN loadable file
     debug     - Debug commands (TBD)
     help     - Display this usage page

  Arguments for each operation:
  - list: [(none)|<filename>]
     (none) - If there is no argument after this operation, it displays all
     the available files and directories under CANCUN file repository
     directory in current file system
     <filename> - If a specific filename is entered, which should include
     the path related to CANCUN file repository directory, this command
     displays the information of this file only

  - load: <filename> <file type> <file format>
     <filename> - If there is no argument after this operation, it will
     load all the default CANCUN files. If this file is in packaged format
     , no addition arguments are needed because software can extract them
     from the file itself.
     <file type> - For a non-packaged format file, this argument is needed
     Currently supported file type includes [cih|cmh|cch]
     <file format> - For a non-packaged format file, this argument is needed
     Currently supported file format includes [pio|dma]

Further reading

bcmsh.md (published as https://kamelnetworks.github.io/sonic/bcmsh.html), SDK-6.5.20 HSDK Getting Started Guide (GS-SDK6520-R), plus SDK-6.5.20/21/22 Release Notes (RN-SDK65xx-R), OpenBCM sdk-6.5.27/rc: rc.soc, config.bcm, td3_sanity.soc, cmd_td3_tr514_lr.soc, tr51/tr517_bcm56870_a0.soc, bcm_diag_info.soc ….