@@ -58,7 +58,7 @@ function updateSyslogConf()
58
58
}
59
59
function ebtables_config()
60
60
{
61
- if [ " $DEV " ]; then
61
+ if [[ " $DEV " && $DATABASE_TYPE != " dpudb " ] ]; then
62
62
# Install ebtables filter in namespaces on multi-asic.
63
63
ip netns exec $NET_NS ebtables-restore < /etc/ebtables.filter.cfg
64
64
else
@@ -169,7 +169,7 @@ function postStartAction()
169
169
{%- if docker_container_name == " database" %}
170
170
CHASSISDB_CONF=" /usr/share/sonic/device/$PLATFORM /chassisdb.conf"
171
171
[ -f $CHASSISDB_CONF ] && source $CHASSISDB_CONF
172
- if [ " $DEV " ]; then
172
+ if [[ " $DEV " && $DATABASE_TYPE != " dpudb " ] ]; then
173
173
# Enable the forwarding on eth0 interface in namespace.
174
174
SYSCTL_NET_CONFIG=" /etc/sysctl.d/sysctl-net.conf"
175
175
docker exec -i database$DEV sed -i -e " s/^net.ipv4.conf.eth0.forwarding=0/net.ipv4.conf.eth0.forwarding=1/;
@@ -223,7 +223,7 @@ function postStartAction()
223
223
# databases are not availbale until database container is ready.
224
224
# also chassisdb doesn't support warm/fast reboot, its dump.rdb is deleted
225
225
# at service startup time, nothing need to be done here.
226
- if [ " $DATABASE_TYPE " != " chassisdb" ]; then
226
+ if [[ " $DATABASE_TYPE " != " chassisdb" ] ]; then
227
227
# Wait until supervisord and redis starts. This change is needed
228
228
# because now database_config.json is jinja2 templated based
229
229
# and by the time file gets generated if we do redis ping
@@ -503,7 +503,7 @@ start() {
503
503
fi
504
504
{%- endif %}
505
505
506
- if [ -z " $DEV " ]; then
506
+ if [[ -z " $DEV " || $DATABASE_TYPE == " dpudb " ] ]; then
507
507
NET=" host"
508
508
509
509
# For Multi-ASIC platform we have to mount the redis paths for database instances running in different
@@ -528,6 +528,11 @@ start() {
528
528
DB_OPT=$DB_OPT " --env DATABASE_TYPE=$DATABASE_TYPE "
529
529
else
530
530
DB_OPT=$DB_OPT " -v /var/run/redis$DEV :/var/run/redis:rw "
531
+ DB_OPT=$DB_OPT " --env DATABASE_TYPE=$DATABASE_TYPE "
532
+ DB_OPT=$DB_OPT " --env NUM_DPU=$NUM_DPU "
533
+ if [[ " $DEV " ]]; then
534
+ DB_OPT=$DB_OPT " -v /var/run/redis$DEV :/var/run/redis$DEV :rw "
535
+ fi
531
536
fi
532
537
{%- endif %}
533
538
else
@@ -557,6 +562,12 @@ start() {
557
562
fi
558
563
fi
559
564
{%- endif %}
565
+
566
+ NAMESPACE_ID=" $DEV "
567
+ if [[ $DATABASE_TYPE == " dpudb" ]]; then
568
+ NAMESPACE_ID=" "
569
+ fi
570
+
560
571
{%- if sonic_asic_platform == " mellanox" %}
561
572
# TODO: Mellanox will remove the --tmpfs exception after SDK socket path changed in new SDK version
562
573
{%- endif %}
@@ -630,9 +641,10 @@ start() {
630
641
{%- if mount_default_tmpfs| default(" n" ) == " y" %}
631
642
--tmpfs /var/tmp \
632
643
{%- endif %}
633
- --env " NAMESPACE_ID" =" $DEV " \
644
+ --env " NAMESPACE_ID" =" $NAMESPACE_ID " \
634
645
--env " NAMESPACE_PREFIX" =" $NAMESPACE_PREFIX " \
635
- --env " NAMESPACE_COUNT" =$NUM_ASIC \
646
+ --env " NAMESPACE_COUNT" =" $NUM_ASIC " \
647
+ --env " DEV" =" $DEV " \
636
648
--env " CONTAINER_NAME" =$DOCKERNAME \
637
649
--name=$DOCKERNAME \
638
650
{%- if docker_container_name == " gbsyncd" %}
@@ -668,7 +680,7 @@ wait() {
668
680
stop () {
669
681
{%- if docker_container_name == " database" %}
670
682
docker stop $DOCKERNAME
671
- if [ " $DEV " ]; then
683
+ if [[ " $DEV " && $DATABASE_TYPE != " dpudb " ] ]; then
672
684
ip netns delete " $NET_NS "
673
685
fi
674
686
{%- elif docker_container_name == " teamd" %}
@@ -684,7 +696,7 @@ stop() {
684
696
kill () {
685
697
{%- if docker_container_name == " database" %}
686
698
docker kill $DOCKERNAME
687
- if [ " $DEV " ]; then
699
+ if [[ " $DEV " && $DATABASE_TYPE != " dpudb " ] ]; then
688
700
ip netns delete " $NET_NS "
689
701
fi
690
702
{%- else %}
@@ -701,11 +713,16 @@ if [ "$DEV" == "chassisdb" ]; then
701
713
DOCKERNAME=$DOCKERNAME " -chassis"
702
714
unset DEV
703
715
fi
716
+
717
+ if [[ " $DEV " == * " dpu" * ]]; then
718
+ DATABASE_TYPE=" dpudb"
719
+ fi
720
+
704
721
{%- endif %}
705
722
NAMESPACE_PREFIX=" asic"
706
723
DOCKERNAME=$DOCKERNAME$DEV
707
724
CONTAINER_EXISTS=" no"
708
- if [ " $DEV " ]; then
725
+ if [[ " $DEV " && $DATABASE_TYPE != " dpudb " ] ]; then
709
726
NET_NS=" $NAMESPACE_PREFIX$DEV " # name of the network namespace
710
727
711
728
SONIC_CFGGEN=" sonic-cfggen -n $NET_NS "
0 commit comments