[gearbox] Add gbsyncd container for Credo gearbox chips (#8144)
This change is to add a gbsyncd container to accommodate the syncd process and the SAI libraries for the Credo gearbox chips.
How I did it
This container works similar to the existing Broadcom syncd container. Its main difference is that the SAI-related dynamic libraries are replaced by the ones for Credo gearbox chips, and the container only reacts to SAI events for the gearbox chips. The SAI libraries will be provided by the package libsai-credo_1.0_amd64.deb.
For the image build, the added container will be built and included in the Broadcom platform image, after $(LIBSAI_CREDO)_URL = is replaced to the correct value. For now, as $(LIBSAI_CREDO)_URL is empty, the container build is skipped in the image build.
After the container is included in the image, in the runtime, the container will begin with checking the existence of /usr/share/sonic/hwsku/gearbox_config.json; if that file is not provided, the container will exit by itself. Therefore, for platforms unrelated to the Credo chips, as long as they are not providing the file, they will not be affected by this change.
2021-08-04 18:05:53 -05:00
|
|
|
FROM docker-config-engine-buster
|
|
|
|
|
|
|
|
ARG docker_container_name
|
|
|
|
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
|
|
|
|
|
|
|
## Make apt-get non-interactive
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
RUN apt-get update
|
|
|
|
|
|
|
|
RUN apt-get install -f -y iproute2 libcap2-bin libprotobuf-dev
|
|
|
|
|
|
|
|
COPY \
|
|
|
|
{% for deb in docker_gbsyncd_credo_debs.split(' ') -%}
|
|
|
|
{% if 'libsaibcm' not in deb -%}
|
|
|
|
debs/{{ deb }}{{' '}}
|
|
|
|
{%- endif %}
|
|
|
|
{%- endfor -%}
|
|
|
|
debs/
|
|
|
|
|
|
|
|
RUN dpkg -i \
|
|
|
|
{% for deb in docker_gbsyncd_credo_debs.split(' ') -%}
|
|
|
|
{% if 'libsaibcm' not in deb -%}
|
|
|
|
debs/{{ deb }}{{' '}}
|
|
|
|
{%- endif %}
|
|
|
|
{%- endfor %}
|
|
|
|
|
|
|
|
COPY ["docker-init.sh", "/usr/bin/"]
|
|
|
|
COPY ["start.sh", "/usr/bin/"]
|
2021-11-24 13:09:51 -06:00
|
|
|
COPY ["crshell", "/usr/bin/"]
|
[gearbox] Add gbsyncd container for Credo gearbox chips (#8144)
This change is to add a gbsyncd container to accommodate the syncd process and the SAI libraries for the Credo gearbox chips.
How I did it
This container works similar to the existing Broadcom syncd container. Its main difference is that the SAI-related dynamic libraries are replaced by the ones for Credo gearbox chips, and the container only reacts to SAI events for the gearbox chips. The SAI libraries will be provided by the package libsai-credo_1.0_amd64.deb.
For the image build, the added container will be built and included in the Broadcom platform image, after $(LIBSAI_CREDO)_URL = is replaced to the correct value. For now, as $(LIBSAI_CREDO)_URL is empty, the container build is skipped in the image build.
After the container is included in the image, in the runtime, the container will begin with checking the existence of /usr/share/sonic/hwsku/gearbox_config.json; if that file is not provided, the container will exit by itself. Therefore, for platforms unrelated to the Credo chips, as long as they are not providing the file, they will not be affected by this change.
2021-08-04 18:05:53 -05:00
|
|
|
|
|
|
|
COPY ["critical_processes.j2", "/usr/share/sonic/templates"]
|
|
|
|
COPY ["supervisord.conf.j2", "/usr/share/sonic/templates"]
|
|
|
|
|
|
|
|
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
|
|
|
|
|
|
|
|
## Clean up
|
|
|
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
|
|
RUN rm -rf /debs
|
|
|
|
|
|
|
|
ENTRYPOINT ["/usr/bin/docker-init.sh"]
|