Add support for bcmsh and bcmcmd utlitites in multi ASIC devices (#4926)

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
This PR has changes to support accessing the bcmsh and bcmcmd utilities on multi ASIC devices
Changes done
- move the link of /var/run/sswsyncd from docker-syncd-brcm.mk to docker_image_ctl.j2
- update the bcmsh and bcmcmd scripts to take -n [ASIC_ID] as an argument on multi ASIC platforms
This commit is contained in:
arlakshm 2020-07-09 11:02:53 -07:00 committed by Qi Luo
parent c213bcf23a
commit a46f4c96e7
5 changed files with 58 additions and 3 deletions

View File

@ -299,6 +299,11 @@ start() {
--tmpfs /tmp \
{%- endif %}
{%- endif %}
{%- if sonic_asic_platform == "broadcom" %}
{%- if docker_container_name == "syncd" %}
-v /var/run/docker-syncd$DEV:/var/run/sswsyncd \
{%- endif %}
{%- endif %}
{%- if docker_container_name == "bgp" %}
-v /etc/sonic/frr/$DEV:/etc/frr:rw \
{%- endif %}

View File

@ -15,8 +15,8 @@ SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_BASE)
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG)
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += bcmcmd:/usr/bin/bcmcmd
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += bcmsh:/usr/bin/bcmsh
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += bcm_common:/usr/bin/bcm_common
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d

View File

@ -0,0 +1,40 @@
#!/bin/bash
function help()
{
echo "Usage: $0 -n [0 to $(($NUM_ASIC-1))]" 1>&2; exit 1;
}
DEV=""
PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`
# Parse the device specific asic conf file, if it exists
ASIC_CONF=/usr/share/sonic/device/$PLATFORM/asic.conf
if [ -f "$ASIC_CONF" ]; then
source $ASIC_CONF
fi
if [[ ($NUM_ASIC -gt 1) ]]; then
OPTIND=1
while getopts ":n:h:" opt; do
case "${opt}" in
h) help
exit 0
;;
n) DEV=${OPTARG}
[ $DEV -lt $NUM_ASIC -a $DEV -ge 0 ] || help
;;
esac
done
shift "$((OPTIND-1))"
if [ -z "${DEV}" ]; then
help
fi
fi

View File

@ -1,3 +1,8 @@
#!/bin/bash
docker exec -i syncd bcmcmd "$@"
BCM_COMMON=/usr/bin/bcm_common
if [ -f "$BCM_COMMON" ]; then
source $BCM_COMMON
fi
docker exec -i syncd$DEV bcmcmd "$@"

View File

@ -1,3 +1,8 @@
#!/bin/bash
docker exec -it syncd bcmsh "$@"
BCM_COMMON=/usr/bin/bcm_common
if [ -f "$BCM_COMMON" ]; then
source $BCM_COMMON
fi
docker exec -it syncd$DEV bcmsh "$@"