sonic-net/sonic-swss

[swss] BUFFER_PG and BUFFER_QUEUE configs are not getting applied on new ports created from dynamic breakout

maulik-marvell opened this issue · 0 comments

Description

In sonic 202211, after we perform a dynamic port breakout on one of the parent ports and create new ports out of it, we are not able to configure BUFFER_PG/BUFFER_QUEUE tables using sonic-cfggen. We do not see any updates in syslog/swss.rec/sairedis.rec for the new buffer configs loaded via sonic-cfggen.

However, when we check the running configs, we do see the BUFFER_PG/BUFFER_QUEUE configs present there but they are not applied to syncd/device. Because of this issue, not able to configure the buffer profiles on IPG/Queues for new ports. The same steps work well in sonic 202111 and such behavior/issue is not seen there.

Steps to reproduce the issue:

  1. Perform config reload in DUT to get to a fresh start.

     root@sonic-dut:~# config reload -y
    
  2. List all the interfaces and pick any port for breakout(Ethernet0 is considered for this test)

    root@sonic-dut:~# show in status
    Interface            Lanes    Speed    MTU    FEC    Alias    Vlan    Oper    Admin             Type    Asym PFC
    -----------  ---------------  -------  -----  -----  -------  ------  ------  -------  ---------------  ----------
    Ethernet0      89,90,91,92     100G   9100     rs     Eth1  routed      up       up  QSFP28 or later         off
    Ethernet8      81,82,83,84     100G   9100     rs     Eth2  routed      up       up  QSFP28 or later         off
    Ethernet16      73,74,75,76     100G   9100     rs     Eth3  routed      up       up  QSFP28 or later         off
    Ethernet24      65,66,67,68     100G   9100     rs     Eth4  routed      up       up  QSFP28 or later         off
    Ethernet32      57,58,59,60     100G   9100     rs     Eth5  routed      up       up  QSFP28 or later         off
    
  3. Perform dynamic port breakout on Ethernet0 and create 4 new ports Ethernet0,Ethernet1,Ethernet2,Ethernet3, make sure no error is reported

    root@sonic-dut:~# config interface breakout Ethernet0 4x25G[10G]\(4\) -yf
    
    Running Breakout Mode : 1x100G(4)
    Target Breakout Mode : 4x25G[10G](4)
     
    Ports to be deleted :
    {
        "Ethernet0": "100000"
    }
    Ports to be added :
    {
        "Ethernet0": "25000",
        "Ethernet1": "25000",
        "Ethernet2": "25000",
        "Ethernet3": "25000"
    }
    Breakout process got successfully completed.
    Please note loaded setting will be lost after system reboot. To preserve setting, run `config save`.
    root@sonic-dut:~#
    
  4. List all interfaces again to see new ports after breakout.

    root@sonic-dut:~#
    root@sonic-dut:~# show in st
      Interface            Lanes    Speed    MTU    FEC    Alias    Vlan    Oper    Admin             Type    Asym PFC
    -----------  ---------------  -------  -----  -----  -------  ------  ------  -------  ---------------  ----------
    Ethernet0               89      25G   9100    N/A   Eth1-1  routed    down     down  QSFP28 or later         N/A
    Ethernet1               90      25G   9100    N/A   Eth1-2  routed    down     down  QSFP28 or later         N/A
    Ethernet2               91      25G   9100    N/A   Eth1-3  routed    down     down  QSFP28 or later         N/A
    Ethernet3               92      25G   9100    N/A   Eth1-4  routed    down     down  QSFP28 or later         N/A
    Ethernet8      81,82,83,84     100G   9100     rs     Eth2  routed      up       up  QSFP28 or later         off
    Ethernet16      73,74,75,76     100G   9100     rs     Eth3  routed      up       up  QSFP28 or later         off
    Ethernet24      65,66,67,68     100G   9100     rs     Eth4  routed      up       up  QSFP28 or later         off
    Ethernet32      57,58,59,60     100G   9100     rs     Eth5  routed      up       up  QSFP28 or later         off
    
  5. Create temporary json file to configure BUFFER_PG/BUFFER_QUEUE tables for new ports(see buffer_pg_queue_configs_new_ports.txt in attachment)

    root@sonic-dut:~# sonic-cfggen -j buffer_pg_queue_configs_new_ports.json --write-to-db
    
  6. Dump the running configs to check BUFFER_PG/BUFFER_QUEUE configured on new ports, able to see it configured(see running_cfg_all_after_breakout.log in attachment)

    root@sonic-dut:~# show runningconfiguration all > running_cfg_all_after_breakout.txt
    
  7. Check the swss.rec and sairedi.rec to see if orchagent has processed the configs towards syncd or not. Not seeing any events there, configs are not applied to ASIC using SAI APIs(see swss.rec.txt/sairedis.rec.txt in attachment)

Describe the results you received:

Even after running config shows BUFFER_PG/BUFFER_QUEUE configs on new ports, SAI APIs are not invoked for buffer profile attach calls on IPG/Queue on new ports, no events captured in swss.rec/sairedis.rec

Describe the results you expected:

Step #5 should result in SAI API calls to attach buffer profils on IPG/Queue on new ports.
Note: This step works as expected in sonic 202111, found it to be not working in 202211. Hence, able to apply the buffer profiles on new ports using same steps in sonic 202111, but not anymore in sonic 202211.

Additional information:

root@sonic-dut:~# show version
 
SONiC Software Version: SONiC.202211.Innovium.0-dirty-20230706.021917
SONiC OS Version: 11
Distribution: Debian 11.7
Kernel: 5.10.0-18-2-amd64
Build commit: 55be7274c
Build date: Thu Jul  6 12:54:55 UTC 2023
Built by: builder@sonic

buffer_pg_queue_configs_new_ports.txt
running_cfg_all_after_breakout.txt
sairedis.rec.txt
swss.rec.txt
syslog.txt