SER

Performs operations related to Soft Error Recovery

SER

Soft Error Recovery (SER) tools: show the SER log, inject parity/ECC errors into hardware memories to test error handling, and run a capability test. Sub-command keywords must be typed in full (any case). Options use Name=<value>, where the capital letters are the shortest accepted abbreviation.

Warning

ser inject and ser capability deliberately corrupt hardware memories. The SDK’s SER handler normally corrects them, but tables it cannot correct keep the bad entry and traffic using it may be dropped or misforwarded. Do not use on a production switch.

ser info and ser show only print … option not yet implemented.

On SONiC Trident 3 switches SER is not enabled. ser log prints nothing, and ser capability stops before injecting anything with SER feature is disabled,please enable it before testing. and SER capability test failed!, followed by the SAI shell’s Failed to execute the diagnostic command. Error: Operation failed. show errors gives the error counters that are kept. Any argument containing pipe makes the command print nothing and show the usage on a single-pipe chip (Trident 3 has two pipes).

SER log [ID=<id>]

Print all SER log entries, or one by ID. Read-only. Error: getting SER log failed <rv>! if the log cannot be read.

Hardware-validated

drivshell> ser log
SER inject Memory=<table> [Index=<n>] [Pipe=<pipe>] [Xor_bank=<bool>] [TCAM=<bool>] [idx_phy=<bool>] [Single=<bool>]

Inject an error into one entry of a memory (default index 0). Pipe is one of pipe_x, pipe_y, pipe0 … pipe7 (on Trident 3 pipe0 or pipe1). Xor_bank targets the XOR RAM of a hash table, Single injects a single-bit instead of a double-bit error. Prints Error injected on <mem> at index <i> <pipe>, or explains that SER correction is not supported for the memory. The built-in help also shows register=<reg> port=<port>; that form is not accepted.

Unvalidated

drivshell> ser inject Memory=EGR_VLAN Index=1 Pipe=pipe0
SER capability Indextype=<single | spread> [Errtype=<single | double>] [Filename=<file>]

Inject errors into every supported memory and check that each is detected and corrected; prints SER capability test passed!. or SER capability test failed!. Indextype is required (Must set index type!); Errtype defaults to double and Filename to log_file.txt.

Hardware-validated

drivshell> ser capability Indextype=single
0:_soc_ser_mem_capability_test_pre_config: SER feature is disabled,please enable it before testing.
SER capability test failed!

Failed to execute the diagnostic command. Error: Operation failed.

Built-in help

Usages:
 SER INFO   (NOT YET IMPLEMENTED)
 SER SHOW   (NOT YET IMPLEMENTED)
 SER LOG [ID=<id>]
    id argument is used to show specified SER log
 SER INJECT memory=<memID> [Index=<Index>] [Pipe=pipe_x|pipe_y|pipe0|pipe1|pipe2|pipe3|pipe4|pipe5|pipe6|pipe7] [Xor_bank=0|1]
    pipe argument is allowed only in multi-pipe devices
    Xor_bank argument is used to insert error into XOR ram of XOR hash tables.
    Single argument is used to insert single bit error into the specified memory.
 SER INJECT register=<regID> port=<portNum> [Index=<Index>] [Pipe=pipe_x|pipe_y|pipe0|pipe1|pipe2|pipe3](NOT YET IMPLEMENTED
    With no optional parameters, Index will default to 0, and Pipe to pipe_x(pipe0)
 SER CAPABILITY Indextype=<single|spread> Errtype=<single|double> Filename=<file name>
    Indextype must be set, Errtype will default to double with no optional parameters.

Further reading

SDK-6.5.20 HSDK Getting Started Guide (GS-SDK6520-R), plus SDK-6.5.20/21/22 Release Notes (RN-SDK65xx-R), sonic-mgmt test suite files invoking bcmcmd (19 files).