33a10b479a
Why I did it Sharing the storage of syncd with other proprietary application extensions allows them to communicate with syncd in differnt ways. If one container wants to pass some information to syncd then shared storage can be used. However, today the shared storage isn't cleaned on restarts making it possible for syncd to read out-of-date information generated in the past. NOTE: No plans to use it for standard SONIC dockers and we are working on removing the SDK dependency from PMON docker How I did it Implemented new service to clean the shared storage. How to verify it Do reboot/fast-reboot/warm-reboot/config-reload/systemctl restart swss and verify /tmp/ is cleaned after each restart in syncd container. Signed-off-by: Stepan Blyschak <stepanb@nvidia.com> Co-authored-by: Stepan Blyshchak <38952541+stepanblyschak@users.noreply.github.com>
39 lines
1.2 KiB
Django/Jinja
39 lines
1.2 KiB
Django/Jinja
[Unit]
|
|
Description=syncd service
|
|
Requires=database{% if multi_instance == 'true' %}@%i{% endif %}.service
|
|
After=database{% if multi_instance == 'true' %}@%i{% endif %}.service
|
|
After=swss{% if multi_instance == 'true' %}@%i{% endif %}.service
|
|
{% if multi_instance == 'true' and sonic_asic_platform == 'vs' %}
|
|
Requires=topology.service
|
|
After=topology.service
|
|
{% endif %}
|
|
{% if sonic_asic_platform == 'broadcom' %}
|
|
Requires=opennsl-modules.service
|
|
After=opennsl-modules.service
|
|
{% elif sonic_asic_platform == 'nephos' %}
|
|
Requires=nps-modules.service
|
|
After=nps-modules.service
|
|
{% endif %}
|
|
Requires=updategraph.service
|
|
After=updategraph.service
|
|
BindsTo=sonic.target
|
|
After=sonic.target
|
|
Before=ntp-config.service
|
|
{% if sonic_asic_platform == 'mellanox' %}
|
|
Requires=nv-syncd-shared.service
|
|
After=nv-syncd-shared.service
|
|
{% endif %}
|
|
|
|
[Service]
|
|
User=root
|
|
Environment=sonic_asic_platform={{ sonic_asic_platform }}
|
|
ExecStartPre=/usr/local/bin/syncd.sh start{% if multi_instance == 'true' %} %i{% endif %}
|
|
ExecStart=/usr/local/bin/syncd.sh wait{% if multi_instance == 'true' %} %i{% endif %}
|
|
ExecStop=/usr/local/bin/syncd.sh stop{% if multi_instance == 'true' %} %i{% endif %}
|
|
{% if sonic_asic_platform == 'mellanox' %}
|
|
TimeoutStartSec=480
|
|
{% endif %}
|
|
|
|
[Install]
|
|
WantedBy=sonic.target
|