IPG

Set default IPG values for ports

IPG

Show or set the inter-packet gap (IPG) that the MAC uses for each speed and duplex combination, and the gap stretch setting.

All arguments are keys:

  • PortBitMap=<pbmp>: ports (default all; see Ports and port bitmaps);

  • SPeed=<Mb/s>: only this speed (default all);

  • FullDuplex=true|false: only this duplex (default both);

  • Gap=<bits>: set the gap for the selected speed/duplex cells (default 0: do not set);

  • STretch=<n>: set the stretch value (default: do not set).

An unknown word is an error. The command always prints a table: a header with the columns 10M_HD, 10M_FD, 100M_HD, 100M_FD, 1G_HD, 1G_FD, 2.5G_HD, 2.5G_FD, 10G_FD, 25G_FD, 40G_FD, 100G_FD, 106G_FD and STRETCH, then one row per port. Each selected cell shows the current gap (after setting it, if Gap was given) or n/a; unselected cells are blank. There are no columns for 200G or 400G. A 100G port on a SONiC switch shows the standard 96-bit gap in the 40G_FD and 100G_FD columns, n/a for the speeds the port cannot run, and stretch 0.

The built-in help does not show the STretch key, and lists SPeed values only up to 10000; the shell accepts any of the speeds in the table.

Showing is safe. Gap and STretch change the MAC behind SONiC’s back; a wrong gap changes the line rate and can break interoperability with the link partner.

Hardware-validated — Show the IPG table for two ports

drivshell> ipg PortBitMap=ce0,ce1
          10M_HD  10M_FD 100M_HD 100M_FD   1G_HD   1G_FD 2.5G_HD 2.5G_FD  10G_FD  25G_FD  40G_FD 100G_FD 106G_FD STRETCH
ce0          n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a      96      96     n/a       0
ce1          n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a     n/a      96      96     n/a       0

Unvalidated — Set a 96-bit gap for 100G full duplex on ce0

drivshell> ipg PortBitMap=ce0 SPeed=100000 FullDuplex=true Gap=96

Built-in help

Parameters: [PortBitMap=<pbmp>] [SPeed=10|100|1000|2500|10000]
    [FullDuplex=true|false] [Gap=<int>]
Set the IPG register values to the specified values when the
    MAC is programmed after autonegotiation OR when the port is
    into the specific mode.  If no args are given, displays settings.