Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New sonic-buildimage images for Broadcom DNX ASIC family. #7598

Merged
merged 19 commits into from Jun 22, 2021

Conversation

judyjoseph
Copy link
Contributor

@judyjoseph judyjoseph commented May 12, 2021

Why I did it

Introduce new sonic-buildimage images for Broadcom DNX ASIC family.

sonic-broadcom-dnx.bin
sonic-aboot-broadcom-dnx.swi

How I did it

NO CHANGE to existing make commands We use the existing make sonic-buildimage commands as below

make init; make configure PLATFORM=broadcom;  
make target/sonic-aboot-broadcom.swi; make  target/sonic-broadcom.bin

The difference now is that it will result in broadcom images for DNX asic family as well. This applies to regular sonic-broadcom.bin and the images based on aboot boot loader sonic-aboot-broadcom.swi

sonic-broadcom.bin
sonic-broadcom-dnx.bin
sonic-aboot-broadcom.swi
sonic-aboot-broadcom-dnx.swi

Note: This PR also adds support for Broadcom SAI 5.0 (based on 1.8 SAI ) for DNX based platform + changes in platform x86_64-arista_7280cr3_32p4 bcm config files and platform_env.conf files

The changes in this PR are the following

  1. Introduce two new directives
    • _DEPENDENT_MACHINE, which is used to tell a dependent family to the one defined with _MACHINE
    • _LAZY_BUILD_INSTALLS, which is used to tell the modules which needs to be build but installed later while building.
  2. Add the _MACHINE directives in the dockers ( here docker-syncd-brcm, docker-syncd-brcm-dnx ) and debian packages ( opennsl-modules, opennsl-modules-dnx ) to differentiate during final image build time which TARGET_MACHINE it should be build with.
  3. Add the _AFTER directive in the .mk files of dockers ( here docker-syncd-brcm, docker-syncd-brcm-dnx ) and debian packages ( opennsl-modules, opennsl-modules-dnx ) to serialize the build if we give parallel make job.
  4. Add support for _AFTER directive to the DOCKER_IMAGES targets in slave.mk
  5. Updates to the slave.mk and sonic_debian_extension.j2 to handle _MACHINE and _DEPENDENT_MACHINE directives defined.
  6. Update onie-image.conf/onie-image-armhf.conf/onie-image-arm64.conf files to create FILESYSTEM_ROOT based on the TARGET_MACHINE
  7. Introduced a new directory for DNX docker --> platform/broadcom/docker-syncd-brcm-dnx
  8. Made the platform.conf (https://github.com/Azure/sonic-buildimage/blob/master/onie-mk-demo.sh#L43) dependency NOT mandatory as it is not mandatory in installer (https://github.com/Azure/sonic-buildimage/blob/3ea3a5c8c137969fc758655087607e655b8f404b/installer/x86_64/install.sh#L568)
  9. Introduce the new submodule platform/broadcom/saibcm-modules-dnx, with based on the public repo https://github.com/Azure/saibcm-modules.git .Currently using the branch sdk-6.5.22-gpl, for opennsl-module-dnx deb package.
  10. In platform/broadcom/sai.mk add the BRCM_DNX_SAI package. The SAI DEV package will be shared between the XGS and DNX families.

Note: DBG buid was failing due to existing errors while building sonic-mgmt DBG debian package - hence could not be verified, will take it up if we hit issues later.

How to verify it

  1. Verify on a Jr2 based DUT ( Image used is target/sonic-aboot-broadcom-dnx.swi)
admin@str-a7280cr3-2:~$ show version 

SONiC Software Version: SONiC.master-7598.16732-4bcbb15f
Distribution: Debian 10.9
Kernel: 4.19.0-12-2-amd64
Build commit: 4bcbb15f
Build date: Wed May 26 10:28:50 UTC 2021
Built by: AzDevOps@sonic-build-workers-000B1S

Platform: x86_64-arista_7280cr3k_32p4
HwSKU: Arista-7280CR3-C40
ASIC: broadcom
ASIC Count: 1
Serial Number: JPE19362918
Uptime: 19:48:59 up 5 min,  1 user,  load average: 2.98, 1.53, 0.69

Docker images:
REPOSITORY                    TAG                          IMAGE ID            SIZE
docker-sonic-mgmt-framework   latest                       ff48d473c9eb        628MB
docker-sonic-mgmt-framework   master-7598.16732-4bcbb15f   ff48d473c9eb        628MB
docker-teamd                  latest                       450e98349646        418MB
docker-teamd                  master-7598.16732-4bcbb15f   450e98349646        418MB
docker-nat                    latest                       1ed96de18ac1        421MB
docker-nat                    master-7598.16732-4bcbb15f   1ed96de18ac1        421MB
docker-sflow                  latest                       25f0b4e0a643        419MB
docker-sflow                  master-7598.16732-4bcbb15f   25f0b4e0a643        419MB
docker-orchagent              latest                       91d785802bf8        436MB
docker-orchagent              master-7598.16732-4bcbb15f   91d785802bf8        436MB
docker-macsec                 latest                       4ddf78bec1c8        421MB
docker-macsec                 master-7598.16732-4bcbb15f   4ddf78bec1c8        421MB
docker-fpm-frr                latest                       5e8dde07974e        436MB
docker-fpm-frr                master-7598.16732-4bcbb15f   5e8dde07974e        436MB
docker-sonic-telemetry        latest                       4c6e2afca179        496MB
docker-sonic-telemetry        master-7598.16732-4bcbb15f   4c6e2afca179        496MB
docker-syncd-brcm-dnx         latest                       a25ae2e935a4        836MB
docker-syncd-brcm-dnx         master-7598.16732-4bcbb15f   a25ae2e935a4        836MB
docker-database               latest                       db0e565b069d        407MB
docker-database               master-7598.16732-4bcbb15f   db0e565b069d        407MB
docker-platform-monitor       latest                       d4087a4fd13a        621MB
docker-platform-monitor       master-7598.16732-4bcbb15f   d4087a4fd13a        621MB
docker-snmp                   latest                       c5c34c41fc0a        448MB
docker-snmp                   master-7598.16732-4bcbb15f   c5c34c41fc0a        448MB
docker-lldp                   latest                       6ad17619cb77        447MB
docker-lldp                   master-7598.16732-4bcbb15f   6ad17619cb77        447MB
docker-router-advertiser      latest                       9a56e7520578        407MB
docker-router-advertiser      master-7598.16732-4bcbb15f   9a56e7520578        407MB
docker-dhcp-relay             latest                       b9ac2b39a630        414MB
docker-dhcp-relay             master-7598.16732-4bcbb15f   b9ac2b39a630        414MB

(failed reverse-i-search)`bsv': ^C
admin@str-a7280cr3-2:~$ sudo bcmcmd "bsv"
bsv
BRCM SAI ver: [5.0.0.1], OCP SAI ver: [1.8.1], SDK ver: [sdk-6.5.21-SP1]
drivshell>
admin@str-a7280cr3-2:~$ docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS               NAMES
8fce9659f4a5        docker-snmp:latest                   "/usr/local/bin/supe…"   2 minutes ago       Up 2 minutes                            snmp
69fe4cb03069        docker-sonic-mgmt-framework:latest   "/usr/local/bin/supe…"   2 minutes ago       Up 2 minutes                            mgmt-framework
ea921009189d        docker-sonic-telemetry:latest        "/usr/local/bin/supe…"   2 minutes ago       Up 2 minutes                            telemetry
832ea278282e        docker-router-advertiser:latest      "/usr/bin/docker-ini…"   4 minutes ago       Up 4 minutes                            radv
f991e881047d        docker-dhcp-relay:latest             "/usr/bin/docker_ini…"   4 minutes ago       Up 4 minutes                            dhcp_relay
de0d7a7bca0e        docker-lldp:latest                   "/usr/bin/docker-lld…"   4 minutes ago       Up 4 minutes                            lldp
62d52c9b1418        docker-syncd-brcm-dnx:latest         "/usr/local/bin/supe…"   4 minutes ago       Up 4 minutes                            syncd
7d44b4797b1a        docker-teamd:latest                  "/usr/local/bin/supe…"   4 minutes ago       Up 4 minutes                            teamd
02cf8f89da15        docker-platform-monitor:latest       "/usr/bin/docker_ini…"   4 minutes ago       Up 4 minutes                            pmon
933e25352fe1        docker-orchagent:latest              "/usr/bin/docker-ini…"   4 minutes ago       Up 4 minutes                            swss
068706ed1e22        docker-fpm-frr:latest                "/usr/bin/docker_ini…"   5 minutes ago       Up 5 minutes                            bgp
6e9e6f9c6207        docker-database:latest               "/usr/local/bin/dock…"   5 minutes ago       Up 5 minutes                            database
admin@str-a7280cr3-2:~$ show int status
      Interface        Lanes    Speed    MTU    FEC         Alias             Vlan    Oper    Admin             Type    Asym PFC
---------------  -----------  -------  -----  -----  ------------  ---------------  ------  -------  ---------------  ----------
      Ethernet0          0,1     100G   9100     rs   Ethernet1/1  PortChannel0002      up       up  QSFP28 or later         off
      Ethernet4          2,3     100G   9100     rs   Ethernet2/1  PortChannel0002      up       up  QSFP28 or later         off
      Ethernet8          4,5     100G   9100     rs   Ethernet3/1  PortChannel0005      up       up  QSFP28 or later         off
     Ethernet12          6,7     100G   9100     rs   Ethernet4/1  PortChannel0005      up       up  QSFP28 or later         off
     Ethernet16          8,9     100G   9100     rs   Ethernet5/1  PortChannel0008      up       up  QSFP28 or later         off
     Ethernet20        10,11     100G   9100     rs   Ethernet6/1  PortChannel0008      up       up  QSFP28 or later         off
     Ethernet24        12,13     100G   9100     rs   Ethernet7/1  PortChannel0011      up       up  QSFP28 or later         off
     Ethernet28        14,15     100G   9100     rs   Ethernet8/1  PortChannel0011      up       up  QSFP28 or later         off
     Ethernet32        16,17     100G   9100     rs   Ethernet9/1  PortChannel0014      up       up  QSFP28 or later         off
     Ethernet36        18,19     100G   9100     rs  Ethernet10/1  PortChannel0014      up       up  QSFP28 or later         off
     Ethernet40        20,21     100G   9100     rs  Ethernet11/1  PortChannel0017      up       up  QSFP28 or later         off
     Ethernet44        22,23     100G   9100     rs  Ethernet12/1  PortChannel0017      up       up  QSFP28 or later         off
     Ethernet48        24,25     100G   9100     rs  Ethernet13/1  PortChannel0020      up       up  QSFP28 or later         off
     Ethernet52        26,27     100G   9100     rs  Ethernet14/1  PortChannel0020      up       up  QSFP28 or later         off
     Ethernet56        28,29     100G   9100     rs  Ethernet15/1  PortChannel0023      up       up  QSFP28 or later         off
     Ethernet60        30,31     100G   9100     rs  Ethernet16/1  PortChannel0023      up       up  QSFP28 or later         off
     Ethernet64        72,73     100G   9100     rs  Ethernet17/1           routed      up       up  QSFP28 or later         off
     Ethernet68        74,75     100G   9100     rs  Ethernet18/1           routed      up       up  QSFP28 or later         off
     Ethernet72        76,77     100G   9100     rs  Ethernet19/1           routed      up       up  QSFP28 or later         off
     Ethernet76        78,79     100G   9100     rs  Ethernet20/1           routed      up       up  QSFP28 or later         off
     Ethernet80        64,65     100G   9100     rs  Ethernet21/1           routed      up       up  QSFP28 or later         off
     Ethernet84        66,67     100G   9100     rs  Ethernet22/1           routed      up       up  QSFP28 or later         off
     Ethernet88        68,69     100G   9100     rs  Ethernet23/1           routed      up       up  QSFP28 or later         off
     Ethernet92        70,71     100G   9100     rs  Ethernet24/1           routed      up       up  QSFP28 or later         off
     Ethernet96        56,57     100G   9100     rs  Ethernet25/1           routed      up       up  QSFP28 or later         off
    Ethernet100        58,59     100G   9100     rs  Ethernet26/1           routed      up       up  QSFP28 or later         off
    Ethernet104        60,61     100G   9100     rs  Ethernet27/1           routed      up       up  QSFP28 or later         off
    Ethernet108        62,63     100G   9100     rs  Ethernet28/1           routed      up       up  QSFP28 or later         off
    Ethernet112        48,49     100G   9100     rs  Ethernet29/1           routed      up       up  QSFP28 or later         off
    Ethernet116        50,51     100G   9100     rs  Ethernet30/1           routed      up       up  QSFP28 or later         off
    Ethernet120        52,53     100G   9100     rs  Ethernet31/1           routed      up       up  QSFP28 or later         off
    Ethernet124        54,55     100G   9100     rs  Ethernet32/1           routed      up       up  QSFP28 or later         off
    Ethernet128  32,33,34,35     100G   9100     rs  Ethernet33/1           routed    down     down              N/A         off
    Ethernet132  36,37,38,39     100G   9100     rs  Ethernet33/5           routed    down     down              N/A         off
    Ethernet136  40,41,42,43     100G   9100     rs  Ethernet34/1           routed    down     down              N/A         off
    Ethernet140  44,45,46,47     100G   9100     rs  Ethernet34/5           routed    down     down              N/A         off
    Ethernet144  88,89,90,91     100G   9100     rs  Ethernet35/1           routed    down     down              N/A         off
    Ethernet148  92,93,94,95     100G   9100     rs  Ethernet35/5           routed    down     down              N/A         off
    Ethernet152  80,81,82,83     100G   9100     rs  Ethernet36/1           routed    down     down              N/A         off
    Ethernet156  84,85,86,87     100G   9100     rs  Ethernet36/5           routed    down     down              N/A         off
PortChannel0002          N/A     200G   9100    N/A           N/A           routed    down       up              N/A         N/A
PortChannel0005          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0008          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0011          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0014          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0017          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0020          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
PortChannel0023          N/A     200G   9100    N/A           N/A           routed      up       up              N/A         N/A
admin@str-a7280cr3-2:~$ sudo bcmcmd "show unit"
show unit
Unit 0 chip BCM88690_B1 (current)
drivshell>
admin@str-a7280cr3-2:~$ show platform summary 
Platform: x86_64-arista_7280cr3k_32p4
HwSKU: Arista-7280CR3-C40
ASIC: broadcom
ASIC Count: 1
admin@str-a7280cr3-2:~$ 
  1. Verify on a non-DNX based device
admin@str-s6000-acs-8:~$ show version 

SONiC Software Version: SONiC.buildimage-dnx.0-dirty-20210526.185016
Distribution: Debian 10.9
Kernel: 4.19.0-12-2-amd64
Build commit: 526d4cf0
Build date: Thu May 27 01:55:05 UTC 2021
Built by: jujoseph@jujoseph-Virtual-Machine

Platform: x86_64-dell_s6000_s1220-r0
HwSKU: Force10-S6000
ASIC: broadcom
ASIC Count: 1
Serial Number: 1QBRX42
Uptime: 05:42:32 up  1:04,  1 user,  load average: 13.98, 13.76, 13.41

Docker images:
REPOSITORY                    TAG                                      IMAGE ID            SIZE
docker-syncd-brcm             buildimage-dnx.0-dirty-20210526.185016   a0027b6e0f3d        699MB
docker-syncd-brcm             latest                                   a0027b6e0f3d        699MB
docker-fpm-frr                buildimage-dnx.0-dirty-20210526.185016   fb351db8fac2        436MB
docker-fpm-frr                latest                                   fb351db8fac2        436MB
docker-orchagent              buildimage-dnx.0-dirty-20210526.185016   de6e9859cd20        436MB
docker-orchagent              latest                                   de6e9859cd20        436MB
docker-teamd                  buildimage-dnx.0-dirty-20210526.185016   fac693f12495        418MB
docker-teamd                  latest                                   fac693f12495        418MB
docker-sflow                  buildimage-dnx.0-dirty-20210526.185016   b8abcb89bd2e        419MB
docker-sflow                  latest                                   b8abcb89bd2e        419MB
docker-nat                    buildimage-dnx.0-dirty-20210526.185016   fc880b311abc        421MB
docker-nat                    latest                                   fc880b311abc        421MB
docker-macsec                 buildimage-dnx.0-dirty-20210526.185016   191dd8f92789        421MB
docker-macsec                 latest                                   191dd8f92789        421MB
docker-sonic-mgmt-framework   buildimage-dnx.0-dirty-20210526.185016   ef25ed90ae64        628MB
docker-sonic-mgmt-framework   latest                                   ef25ed90ae64        628MB
docker-sonic-telemetry        buildimage-dnx.0-dirty-20210526.185016   208bc0c82521        496MB
docker-sonic-telemetry        latest                                   208bc0c82521        496MB
docker-platform-monitor       buildimage-dnx.0-dirty-20210526.185016   e323f54c37de        621MB
docker-platform-monitor       latest                                   e323f54c37de        621MB
docker-snmp                   buildimage-dnx.0-dirty-20210526.185016   f4cf79e28c95        448MB
docker-snmp                   latest                                   f4cf79e28c95        448MB
docker-lldp                   buildimage-dnx.0-dirty-20210526.185016   dbc004300c0e        447MB
docker-lldp                   latest                                   dbc004300c0e        447MB
docker-dhcp-relay             buildimage-dnx.0-dirty-20210526.185016   078b39ea6e81        414MB
docker-dhcp-relay             latest                                   078b39ea6e81        414MB
docker-router-advertiser      buildimage-dnx.0-dirty-20210526.185016   623a52bb3c4e        407MB
docker-router-advertiser      latest                                   623a52bb3c4e        407MB
docker-database               buildimage-dnx.0-dirty-20210526.185016   59f8e55c687b        407MB
docker-database               latest                                   59f8e55c687b        407MB

admin@str-s6000-acs-8:~$ show platform summary
Platform: x86_64-dell_s6000_s1220-r0
HwSKU: Force10-S6000
ASIC: broadcom
ASIC Count: 1
admin@str-s6000-acs-8:~$ sudo bcmcmd "bsv"
bsv
BRCM SAI ver: [4.3.3.5], OCP SAI ver: [1.8.1], SDK ver: [sdk-6.5.21]
drivshell>
admin@str-s6000-acs-8:~$ sudo bcmcmd "show unit"
show unit
Unit 0 chip BCM56850_A2 (current)
drivshell>
admin@str-s6000-acs-8:~$ show int status
docker ps
      Interface            Lanes    Speed    MTU    FEC           Alias             Vlan    Oper    Admin            Type    Asym PFC
---------------  ---------------  -------  -----  -----  --------------  ---------------  ------  -------  --------------  ----------
      Ethernet0      29,30,31,32      40G   9100    N/A    fortyGigE0/0  PortChannel0002      up       up  QSFP+ or later         off
      Ethernet4      25,26,27,28      40G   9100    N/A    fortyGigE0/4  PortChannel0005      up       up  QSFP+ or later         off
      Ethernet8      37,38,39,40      40G   9100    N/A    fortyGigE0/8  PortChannel0008      up       up  QSFP+ or later         off
     Ethernet12      33,34,35,36      40G   9100    N/A   fortyGigE0/12  PortChannel0011      up       up  QSFP+ or later         off
     Ethernet16      41,42,43,44      40G   9100    N/A   fortyGigE0/16  PortChannel0014      up       up  QSFP+ or later         off
     Ethernet20      45,46,47,48      40G   9100    N/A   fortyGigE0/20  PortChannel0017      up       up  QSFP+ or later         off
     Ethernet24          5,6,7,8      40G   9100    N/A   fortyGigE0/24  PortChannel0020      up       up  QSFP+ or later         off
     Ethernet28          1,2,3,4      40G   9100    N/A   fortyGigE0/28  PortChannel0023      up       up  QSFP+ or later         off
     Ethernet32       9,10,11,12      40G   9100    N/A   fortyGigE0/32  PortChannel0046      up       up  QSFP+ or later         off
     Ethernet36      13,14,15,16      40G   9100    N/A   fortyGigE0/36  PortChannel0047      up       up  QSFP+ or later         off
     Ethernet40      21,22,23,24      40G   9100    N/A   fortyGigE0/40  PortChannel0025      up       up  QSFP+ or later         off
     Ethernet44      17,18,19,20      40G   9100    N/A   fortyGigE0/44  PortChannel0026      up       up  QSFP+ or later         off
     Ethernet48      49,50,51,52      40G   9100    N/A   fortyGigE0/48  PortChannel0027      up       up  QSFP+ or later         off
     Ethernet52      53,54,55,56      40G   9100    N/A   fortyGigE0/52  PortChannel0028      up       up  QSFP+ or later         off
     Ethernet56      61,62,63,64      40G   9100    N/A   fortyGigE0/56  PortChannel0029      up       up  QSFP+ or later         off
     Ethernet60      57,58,59,60      40G   9100    N/A   fortyGigE0/60  PortChannel0030      up       up  QSFP+ or later         off
     Ethernet64      65,66,67,68      40G   9100    N/A   fortyGigE0/64  PortChannel0031      up       up  QSFP+ or later         off
     Ethernet68      69,70,71,72      40G   9100    N/A   fortyGigE0/68  PortChannel0032      up       up  QSFP+ or later         off
     Ethernet72      77,78,79,80      40G   9100    N/A   fortyGigE0/72  PortChannel0033      up       up  QSFP+ or later         off
     Ethernet76      73,74,75,76      40G   9100    N/A   fortyGigE0/76  PortChannel0034      up       up  QSFP+ or later         off
     Ethernet80  105,106,107,108      40G   9100    N/A   fortyGigE0/80  PortChannel0035      up       up  QSFP+ or later         off
     Ethernet84  109,110,111,112      40G   9100    N/A   fortyGigE0/84  PortChannel0036      up       up  QSFP+ or later         off
     Ethernet88  117,118,119,120      40G   9100    N/A   fortyGigE0/88  PortChannel0037      up       up  QSFP+ or later         off
     Ethernet92  113,114,115,116      40G   9100    N/A   fortyGigE0/92  PortChannel0038      up       up  QSFP+ or later         off
     Ethernet96  121,122,123,124      40G   9100    N/A   fortyGigE0/96  PortChannel0039      up       up  QSFP+ or later         off
    Ethernet100  125,126,127,128      40G   9100    N/A  fortyGigE0/100  PortChannel0040      up       up  QSFP+ or later         off
    Ethernet104      85,86,87,88      40G   9100    N/A  fortyGigE0/104  PortChannel0041      up       up  QSFP+ or later         off
    Ethernet108      81,82,83,84      40G   9100    N/A  fortyGigE0/108  PortChannel0042      up       up  QSFP+ or later         off
    Ethernet112      89,90,91,92      40G   9100    N/A  fortyGigE0/112  PortChannel0043      up       up  QSFP+ or later         off
    Ethernet116      93,94,95,96      40G   9100    N/A  fortyGigE0/116  PortChannel0044      up       up  QSFP+ or later         off
    Ethernet120     97,98,99,100      40G   9100    N/A  fortyGigE0/120  PortChannel0045      up       up  QSFP+ or later         off
    Ethernet124  101,102,103,104      40G   9100    N/A  fortyGigE0/124  PortChannel0046      up       up  QSFP+ or later         off
PortChannel0002              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0005              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0008              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0011              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0014              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0017              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0020              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0023              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0025              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0026              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0027              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0028              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0029              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0030              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0031              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0032              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0033              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0034              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0035              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0036              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0037              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0038              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0039              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0040              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0041              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0042              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0043              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0044              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0045              N/A      40G   9100    N/A             N/A           routed    down       up             N/A         N/A
PortChannel0046              N/A      80G   9100    N/A             N/A           routed      up       up             N/A         N/A
PortChannel0047              N/A      40G   9100    N/A             N/A           routed      up       up             N/A         N/A
admin@str-s6000-acs-8:~$ docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS               NAMES
8b58fbfcba77        docker-snmp:latest                   "/usr/local/bin/supe…"   About an hour ago   Up About an hour                        snmp
9238c9df216b        docker-sonic-telemetry:latest        "/usr/local/bin/supe…"   About an hour ago   Up About an hour                        telemetry
cad52c2686e7        docker-sonic-mgmt-framework:latest   "/usr/local/bin/supe…"   About an hour ago   Up About an hour                        mgmt-framework
56d50cbd3ada        docker-router-advertiser:latest      "/usr/bin/docker-ini…"   About an hour ago   Up About an hour                        radv
7b5bb2f95da8        docker-dhcp-relay:latest             "/usr/bin/docker_ini…"   About an hour ago   Up About an hour                        dhcp_relay
328ce60554ed        docker-lldp:latest                   "/usr/bin/docker-lld…"   About an hour ago   Up About an hour                        lldp
8f28a5db6a13        docker-teamd:latest                  "/usr/local/bin/supe…"   About an hour ago   Up About an hour                        teamd
f3080737c588        docker-syncd-brcm:latest             "/usr/local/bin/supe…"   About an hour ago   Up About an hour                        syncd
5e94e28f70b4        docker-platform-monitor:latest       "/usr/bin/docker_ini…"   About an hour ago   Up About an hour                        pmon
299a029616d1        docker-orchagent:latest              "/usr/bin/docker-ini…"   About an hour ago   Up About an hour                        swss
30ff840e3569        docker-fpm-frr:latest                "/usr/bin/docker_ini…"   About an hour ago   Up About an hour                        bgp
ed39d91ccd36        docker-database:latest               "/usr/local/bin/dock…"   About an hour ago   Up About an hour                        database
admin@str-s6000-acs-8:~$ 

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012

Description for the changelog

A picture of a cute animal (not mandatory but encouraged)

@judyjoseph judyjoseph marked this pull request as ready for review May 13, 2021 00:25
@judyjoseph judyjoseph requested review from rlhui and arlakshm May 13, 2021 06:39
@judyjoseph
Copy link
Contributor Author

@lguohan @xumia @jleveque Could you take a look at this PR which introduces new make targets for DNX family.

@lguohan
Copy link
Collaborator

lguohan commented May 14, 2021

@yxieca to take a look

@lguohan
Copy link
Collaborator

lguohan commented May 14, 2021

is this a complete pr, do we need to build a different syncd docker on dnx platform.

My idea here in this PR was to create new sonic-buildimage-dnx targets for dnx platform, but internally use the same syncd dockers. I use this compile time flag ASIC_FAMILY to decide on which saibcm debian package to be selected during build process.

I didn't see a particular use of creating a new docker per ASIC family, as there are 3 dockers we have to duplicate per asic family.
docker-saiserver-brcm
docker-syncd-brcm
docker-syncd-brcm-rpc

But let me know your thoughts.

@yxieca
Copy link
Contributor

yxieca commented May 14, 2021

Can we try to build both DNX and XGS in the same build pass? in order to do this, any module requires dnx target will have to build dnx target explicitly and named accordingly. Then in the end, we could build dns/xgs target without having to start from scratch. The dnx installer will have a different name too.

@lguohan , @yxieca Could you take a look. I have taken in this suggestion and building both xgs and dnx image in the same build, have added more implementation/verification details in the conversation section in the PR. Please share your comments.

@xumia, also share if there needs to be updates for enabling the cache for new docker/deb components and buildimage targets,

platform/broadcom/sai.mk Outdated Show resolved Hide resolved
@judyjoseph
Copy link
Contributor Author

Can we try to build both DNX and XGS in the same build pass? in order to do this, any module requires dnx target will have to build dnx target explicitly and named accordingly. Then in the end, we could build dns/xgs target without having to start from scratch. The dnx installer will have a different name too.

Thanks for the suggestion Ying, I see you point that it will be good to compile the dnx platform along with the sonic-broadcom image as every compilation cycle is 7-9 hrs. To do this I will create separate syncd-dockers for dnx platform family as Guohan suggested earlier as well.

@judyjoseph judyjoseph marked this pull request as draft May 21, 2021 23:54
@judyjoseph judyjoseph marked this pull request as ready for review May 25, 2021 18:23
slave.mk Outdated Show resolved Hide resolved
@judyjoseph judyjoseph changed the title New sonic-buildimage targets for Broadcom DNX ASIC family. New sonic-buildimage images for Broadcom DNX ASIC family. Jun 3, 2021
yxieca
yxieca previously approved these changes Jun 10, 2021
xumia
xumia previously approved these changes Jun 11, 2021
@judyjoseph
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

platform/broadcom/sai.mk Outdated Show resolved Hide resolved
…ker-sycnd-brcm-dnx.

Add the respective saibcm dependency in the docker-sycnd-brcm/-dnx
…msi flag.

Serialize the docker-syncd-brcm and docker-syncd-brcm-dnx builds
…s different per

MACHINE_ type are save separately and copied per TARGET_MACHINE type during build process.
  1. Make a common for loop in slave.mk for _MACHINE and _DEPENDENT_MACHINE
  2. cleanup the startup scripts correctly now that we creat broadcom_syncd.sh and broadcom-dnx_syncd.sh
  3. Remove the close dependency for platform_conf file in onie-mk-demo.sh. In the installer too this file presence is checked before using
     ( https://github.com/Azure/sonic-buildimage/blob/3ea3a5c8c137969fc758655087607e655b8f404b/installer/x86_64/install.sh#L568)

     With this change, the symbolic link created earlier  platform/broadcom-dnx --> platform/broadcom is not needed anymore.
… add as a submodule @ platform/broadcom/saibcm-modules-dnx

The submodule will be used to create the DNX package : debs/buster/opennsl-modules-dnx*.deb package.

Additional fixes in docker*dnx.mk files.
This is no more needed as we have a separate submodule saibcm-modules-dnx for the DNX ASIC family.
platform/broadcom/saibcm-modules  --> builds opennsl-modules*.deb
platform/broadcom/saibcm-modules-dnx  --> builds opennsl-modules-dnx*.deb
This version numbering will follow the SAI version.
@judyjoseph
Copy link
Contributor Author

judyjoseph commented Jun 19, 2021

@yxieca @xumia Could you review PR again. I had to rebase to latest master and we use the SAI 5.0.0.1 for both XGS and DNX broadcom ASIC family. There were unrelated sonic-buidimage failures earlier.

TARGET_PATH="$(TARGET_PATH)" \
./build_image.sh $(LOG)
# Build images for the MACHINE, DEPENDENT_MACHINE defined.
$(foreach dep_machine, $($*_MACHINE) $($*_DEPENDENT_MACHINE), \
Copy link
Collaborator

@xumia xumia Jun 21, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can improve it to build the two images in parallel, it increases about 20 minutes in PR build.
2021-06-19T06:33:00.3974964Z [ building ] [ target/sonic-broadcom.bin ]
2021-06-19T07:29:38.9766316Z [ finished ] [ target/sonic-broadcom.bin ]
But it is not a block issue, we can improve it later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thanks @xumia will raise this as a follow on PR -- to build both images in parallel.

@judyjoseph judyjoseph merged commit 3ad830e into sonic-net:master Jun 22, 2021
judyjoseph added a commit to judyjoseph/sonic-buildimage that referenced this pull request Jun 29, 2021
judyjoseph added a commit that referenced this pull request Jun 29, 2021
Remove the references to file monit_syncd from docker-syncd-brcm-dnx, which got missed as the PR #7598 overlapped #7676
lguohan pushed a commit that referenced this pull request Jul 9, 2021
…ild fail when packages.json is not generated (#8044)

After #7598 the packages.json generation is broken. This change fixes it make the whole build fail in case generation failed.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
judyjoseph pushed a commit that referenced this pull request Jul 13, 2021
…ild fail when packages.json is not generated (#8044)

After #7598 the packages.json generation is broken. This change fixes it make the whole build fail in case generation failed.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
…7598)

Introduce new sonic-buildimage images for Broadcom DNX ASIC family.

sonic-broadcom-dnx.bin
sonic-aboot-broadcom-dnx.swi

How I did it

NO CHANGE to existing make commands

make init; make configure PLATFORM=broadcom;  make target/sonic-aboot-broadcom.swi; make  target/sonic-broadcom.bin

The difference now is that it will result in new broadcom images for DNX asic family as well. 

sonic-broadcom.bin, sonic-broadcom-dnx.bin
sonic-aboot-broadcom.swi, sonic-aboot-broadcom-dnx.swi

Note: This PR also adds support for Broadcom SAI 5.0 (based on 1.8 SAI ) for DNX based platform + changes in platform x86_64-arista_7280cr3_32p4 bcm config files and platform_env.conf files
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
Remove the references to file monit_syncd from docker-syncd-brcm-dnx, which got missed as the PR sonic-net#7598 overlapped sonic-net#7676
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
…ild fail when packages.json is not generated (sonic-net#8044)

After sonic-net#7598 the packages.json generation is broken. This change fixes it make the whole build fail in case generation failed.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants