RXCfg

Configure RX settings

RXCfg

Shortest form: rxc.

Show or change the RX settings that RXMon uses, and set the CPU receive rate limits.

With no argument, rxcfg prints the shell’s own RX configuration. That configuration is the one RXMon would start RX with, not the one SONiC is running. The output lists packet size, packets per chain, all-COS rate and burst, then one Channel <c>:  Chains <n>. PPS <n>. COSBMP 0x<x>. line per DMA channel, and ends with System wide rate limit:  <n>.

To change settings, give options:

  • Global: SPPS=<n> (system-wide packets per second), GPPS=<n>, PKTSIZE=<n>, PPC=<n> (packets per chain), BURST=<n>, FREE=<bool> and COSPPS<q>=<n> (one per CPU queue, e.g. COSPPS0).

  • Per channel: start with the channel number, then CHAINS=<n>, PPS=<n> and COSBMP=<hex>. An invalid channel prints Error: Bad channel <n>.

These keys are all upper case, so they cannot be abbreviated. SPPS sets only the system-wide limit and ignores every other option on the line.

Warning

Any option other than SPPS also sets the rate limit of every CPU queue: to the COSPPS<q> value you give, otherwise to 100 packets per second. These are live limits of the receive layer that SONiC uses, and SONiC’s values are not restored. This can throttle control traffic to the host.

Unvalidated — Show the settings (read-only)

drivshell> rxcfg

Unvalidated — Set only the system-wide CPU packet rate

drivshell> rxcfg SPPS=5000

Built-in help

rxcfg [<chan>] [options...]
    With no options, displays current configuration
    Global options include:
        SPPS=<n>            Set system-wide packet per second limit
                            Other options combined this are ignored
        GPPS=<n>            Set global (all COS) pkts per second limit
        PKTSIZE=<n>         Set maximum receive packet size
        PPC=<n>             Set the number of pkts/chain
        BURST=<n>           Set global (all COS) packet burst size
        COSPPS<n>=<r>       Set the per COS rate limiting
        FREE=[T|F]          Should handler free buffers?
    Channel specific options include:
        CHAINS=<n>          Set the number of chains for the channel
        PPS=<n>             Set packet per second for channel
        COSBMP=<bmp>        COS bitmap to accept on channel
    Global options can be given w/o a channel.  Channel options
    require that a channel be specified.
    The channel's burst rate is #chains * pkts/chain