Skip to content

Commit 225cd34

Browse files
committed
Merge remote-tracking branch 'origin' into dev/liuh/fix-ipv6-mgmt-vrf
2 parents fde2d79 + 1649166 commit 225cd34

File tree

290 files changed

+45818
-378
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

290 files changed

+45818
-378
lines changed

.azure-pipelines/docker-sonic-mgmt-py3-only.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ stages:
4343
git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data
4444
4545
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic
46-
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=n target/docker-sonic-mgmt.gz
46+
make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=n target/docker-sonic-mgmt.gz
4747
cp target -r $(Build.ArtifactStagingDirectory)/target
4848
docker load -i target/docker-sonic-mgmt.gz
4949
docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:py3only

.azure-pipelines/docker-sonic-mgmt.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ stages:
4343
git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data
4444
4545
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic
46-
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=y target/docker-sonic-mgmt.gz
46+
make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=y target/docker-sonic-mgmt.gz
4747
cp target -r $(Build.ArtifactStagingDirectory)/target
4848
docker load -i target/docker-sonic-mgmt.gz
4949
docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:latest

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ installer/x86_64/platforms/
4141
# Misc. files
4242
asic_config_checksum
4343
files/Aboot/boot0
44+
files/dsc/MANIFEST
45+
files/dsc/install_debian
46+
files/dsc/fs.zip
4447
files/initramfs-tools/arista-convertfs
4548
files/initramfs-tools/union-mount
4649

azure-pipelines.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ stages:
5050
jobs:
5151
- template: .azure-pipelines/azure-pipelines-build.yml
5252
parameters:
53-
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
53+
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y INCLUDE_DHCP_SERVER=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
5454
jobGroups:
5555
- name: vs
5656

build_debian.sh

+24-7
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ TRUSTED_GPG_DIR=$BUILD_TOOL_PATH/trusted.gpg.d
5050
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
5151
exit 1
5252
}
53-
[ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
54-
echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
53+
[ -n "$INSTALLER_PAYLOAD" ] || {
54+
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file"
5555
exit 1
5656
}
5757
[ -n "$FILESYSTEM_SQUASHFS" ] || {
@@ -461,6 +461,10 @@ fi
461461
## Disable kexec supported reboot which was installed by default
462462
sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/kexec
463463

464+
# Ensure that 'logrotate-config.service' is set as a dependency to start before 'logrotate.service'.
465+
sudo mkdir $FILESYSTEM_ROOT/etc/systemd/system/logrotate.service.d
466+
sudo cp files/image_config/logrotate/logrotateOverride.conf $FILESYSTEM_ROOT/etc/systemd/system/logrotate.service.d/logrotateOverride.conf
467+
464468
## Remove sshd host keys, and will regenerate on first sshd start
465469
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
466470
sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/
@@ -749,14 +753,27 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u
749753
## Convert initrd image to u-boot format
750754
if [[ $TARGET_BOOTLOADER == uboot ]]; then
751755
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
756+
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
752757
if [[ $CONFIGURED_ARCH == armhf ]]; then
753758
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-armmp
754759
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
755760
## Overwriting the initrd image with uInitrd
756761
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
757762
elif [[ $CONFIGURED_ARCH == arm64 ]]; then
758-
sudo cp -v $PLATFORM_DIR/${sonic_asic_platform}-${CONFIGURED_ARCH}/sonic_fit.its $FILESYSTEM_ROOT/boot/
759-
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
763+
if [[ $CONFIGURED_PLATFORM == pensando ]]; then
764+
## copy device tree file into boot (XXX: need to compile dtb from dts)
765+
sudo cp -v $PLATFORM_DIR/pensando/elba-asic-psci.dtb $FILESYSTEM_ROOT/boot/
766+
## make kernel as gzip file
767+
sudo LANG=C chroot $FILESYSTEM_ROOT gzip /boot/${KERNEL_FILE}
768+
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/${KERNEL_FILE}.gz /boot/${KERNEL_FILE}
769+
## Convert initrd image to u-boot format
770+
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm64 -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
771+
## Overwriting the initrd image with uInitrd
772+
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
773+
else
774+
sudo cp -v $PLATFORM_DIR/${sonic_asic_platform}-${CONFIGURED_ARCH}/sonic_fit.its $FILESYSTEM_ROOT/boot/
775+
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
776+
fi
760777
fi
761778
fi
762779

@@ -807,7 +824,7 @@ if [[ "$CHANGE_DEFAULT_PASSWORD" == "y" ]]; then
807824
fi
808825

809826
## Compress most file system into squashfs file
810-
sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
827+
sudo rm -f $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
811828
## Output the file system total size for diag purpose
812829
## Note: -x to skip directories on different file systems, such as /proc
813830
sudo du -hsx $FILESYSTEM_ROOT
@@ -852,5 +869,5 @@ fi
852869
pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd
853870

854871
## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file
855-
pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf platform.tar.gz -C $PLATFORM_DIR . && sudo zip -n .gz $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ platform.tar.gz; popd
856-
sudo zip -g -n .squashfs:.gz $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS
872+
pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf platform.tar.gz -C $PLATFORM_DIR . && sudo zip -n .gz $OLDPWD/$INSTALLER_PAYLOAD -r boot/ platform.tar.gz; popd
873+
sudo zip -g -n .squashfs:.gz $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS

build_image.sh

+36-4
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ fi
1818
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
1919
exit 1
2020
}
21-
[ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
22-
echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
21+
[ -n "$INSTALLER_PAYLOAD" ] || {
22+
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file"
2323
exit 1
2424
}
2525

@@ -86,7 +86,7 @@ generate_onie_installer_image()
8686
## Note: Don't leave blank between lines. It is single line command.
8787
./onie-mk-demo.sh $CONFIGURED_ARCH $TARGET_MACHINE $TARGET_PLATFORM-$TARGET_MACHINE-$ONIEIMAGE_VERSION \
8888
installer platform/$TARGET_MACHINE/platform.conf $output_file OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \
89-
$ONIE_INSTALLER_PAYLOAD $SECURE_UPGRADE_SIGNING_CERT $SECURE_UPGRADE_DEV_SIGNING_KEY
89+
$INSTALLER_PAYLOAD $SECURE_UPGRADE_SIGNING_CERT $SECURE_UPGRADE_DEV_SIGNING_KEY
9090
}
9191

9292
# Generate asic-specific device list
@@ -175,7 +175,7 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
175175
sudo rm -f $OUTPUT_ABOOT_IMAGE
176176
sudo rm -f $ABOOT_BOOT_IMAGE
177177
## Add main payload
178-
cp $ONIE_INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE
178+
cp $INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE
179179
## Add Aboot boot0 file
180180
j2 -f env files/Aboot/boot0.j2 ./onie-image.conf > files/Aboot/boot0
181181
sed -i -e "s/%%IMAGE_VERSION%%/$IMAGE_VERSION/g" files/Aboot/boot0
@@ -213,6 +213,38 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
213213
[ -f "$CA_CERT" ] && cp "$CA_CERT" "$TARGET_CA_CERT"
214214
./scripts/sign_image.sh -i "$OUTPUT_ABOOT_IMAGE" -k "$SIGNING_KEY" -c "$SIGNING_CERT" -a "$TARGET_CA_CERT"
215215
fi
216+
217+
elif [ "$IMAGE_TYPE" = "dsc" ]; then
218+
echo "Build DSC installer"
219+
220+
dsc_installer_dir=files/dsc
221+
dsc_installer=$dsc_installer_dir/install_debian
222+
dsc_installer_manifest=$dsc_installer_dir/MANIFEST
223+
224+
mkdir -p `dirname $OUTPUT_DSC_IMAGE`
225+
sudo rm -f $OUTPUT_DSC_IMAGE
226+
227+
source ./onie-image.conf
228+
229+
j2 $dsc_installer.j2 > $dsc_installer
230+
export installer_sha=$(sha512sum "$dsc_installer" | awk '{print $1}')
231+
232+
export build_date=$(date -u)
233+
export build_user=$(id -un)
234+
export installer_payload_sha=$(sha512sum "$INSTALLER_PAYLOAD" | awk '{print $1}')
235+
j2 $dsc_installer_manifest.j2 > $dsc_installer_manifest
236+
237+
cp $INSTALLER_PAYLOAD $dsc_installer_dir
238+
tar cf $OUTPUT_DSC_IMAGE -C files/dsc $(basename $dsc_installer_manifest) $INSTALLER_PAYLOAD $(basename $dsc_installer)
239+
240+
echo "Build ONIE installer"
241+
mkdir -p `dirname $OUTPUT_ONIE_IMAGE`
242+
sudo rm -f $OUTPUT_ONIE_IMAGE
243+
244+
generate_device_list "./installer/platforms_asic"
245+
246+
generate_onie_installer_image
247+
216248
else
217249
echo "Error: Non supported image type $IMAGE_TYPE"
218250
exit 1

device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -861,3 +861,4 @@ dma_desc_aggregator_enable_specific_MDB_LPM.BCM8869X=1
861861
dma_desc_aggregator_enable_specific_MDB_FEC.BCM8869X=1
862862
sai_pfc_dlr_init_capability=0
863863
sai_default_cpu_tx_tc=7
864+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C36/0/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1015,3 +1015,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10151015
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=2
10161016
sai_pfc_dlr_init_capability=0
10171017
sai_default_cpu_tx_tc=7
1018+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C36/1/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1015,3 +1015,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10151015
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=2
10161016
sai_pfc_dlr_init_capability=0
10171017
sai_default_cpu_tx_tc=7
1018+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1032,3 +1032,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10321032
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=4
10331033
sai_pfc_dlr_init_capability=0
10341034
sai_default_cpu_tx_tc=7
1035+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1032,3 +1032,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10321032
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=4
10331033
sai_pfc_dlr_init_capability=0
10341034
sai_default_cpu_tx_tc=7
1035+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-D36/0/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1052,3 +1052,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10521052
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=4
10531053
sai_pfc_dlr_init_capability=0
10541054
sai_default_cpu_tx_tc=7
1055+
sai_disable_srcmacqedstmac_ctrl=1

device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-D36/1/j2p-a7800r3a-36d-36x400G.config.bcm

+1
Original file line numberDiff line numberDiff line change
@@ -1052,3 +1052,4 @@ xflow_macsec_secure_chan_to_num_secure_assoc_encrypt=2
10521052
xflow_macsec_secure_chan_to_num_secure_assoc_decrypt=4
10531053
sai_pfc_dlr_init_capability=0
10541054
sai_default_cpu_tx_tc=7
1055+
sai_disable_srcmacqedstmac_ctrl=1

device/mellanox/x86_64-mlnx_msn2700a1-r0/installer.conf

-1
This file was deleted.

device/nokia/armhf-nokia_ixs7215_52x-r0/platform_reboot

-11
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# name lanes alias speed autoneg fec
2+
Ethernet1 0,1,2,3 Ethernet1 100000 on rs
3+
Ethernet2 4,5,6,7 Ethernet2 100000 on rs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Pensando-elba t1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pensando
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#
2+
# ssd_generic.py
3+
#
4+
# Generic implementation of the SSD health API
5+
# SSD models supported:
6+
# - InnoDisk
7+
# - StorFly
8+
# - Virtium
9+
10+
try:
11+
import re
12+
import subprocess
13+
from sonic_platform_base.sonic_ssd.ssd_base import SsdBase
14+
except ImportError as e:
15+
raise ImportError (str(e) + "- required module not found")
16+
17+
NOT_AVAILABLE = "N/A"
18+
MMC_DATA_PATH = "/sys/class/mmc_host/mmc0/mmc0:0001/{}"
19+
20+
class SsdUtil(SsdBase):
21+
"""
22+
Generic implementation of the SSD health API
23+
"""
24+
model = NOT_AVAILABLE
25+
serial = NOT_AVAILABLE
26+
firmware = NOT_AVAILABLE
27+
temperature = NOT_AVAILABLE
28+
health = NOT_AVAILABLE
29+
ssd_info = NOT_AVAILABLE
30+
vendor_ssd_info = NOT_AVAILABLE
31+
32+
def __init__(self, diskdev):
33+
34+
self.dev = diskdev
35+
try:
36+
self.model = ("emmc {}".format(open(MMC_DATA_PATH.format("name")).read())).replace("\n", "")
37+
self.serial = open(MMC_DATA_PATH.format("serial")).read().replace("\n", "")
38+
self.firmware = open(MMC_DATA_PATH.format("fwrev")).read().replace("\n", "")
39+
value = open(MMC_DATA_PATH.format("life_time")).read().replace("\n", "")
40+
[lifetime_a, lifetime_b] = [int(val, 16) for val in value.split()]
41+
lifetime = lifetime_a if lifetime_a >= lifetime_b else lifetime_b
42+
self.health = float(100 - (lifetime*10))
43+
except:
44+
pass
45+
46+
def get_health(self):
47+
"""
48+
Retrieves current disk health in percentages
49+
50+
Returns:
51+
A float number of current ssd health
52+
e.g. 83.5
53+
"""
54+
return self.health
55+
56+
def get_temperature(self):
57+
"""
58+
Retrieves current disk temperature in Celsius
59+
60+
Returns:
61+
A float number of current temperature in Celsius
62+
e.g. 40.1
63+
"""
64+
return self.temperature
65+
66+
def get_model(self):
67+
"""
68+
Retrieves model for the given disk device
69+
70+
Returns:
71+
A string holding disk model as provided by the manufacturer
72+
"""
73+
return self.model
74+
75+
def get_firmware(self):
76+
"""
77+
Retrieves firmware version for the given disk device
78+
79+
Returns:
80+
A string holding disk firmware version as provided by the manufacturer
81+
"""
82+
return self.firmware
83+
84+
def get_serial(self):
85+
"""
86+
Retrieves serial number for the given disk device
87+
88+
Returns:
89+
A string holding disk serial number as provided by the manufacturer
90+
"""
91+
return self.serial
92+
93+
def get_vendor_output(self):
94+
"""
95+
Retrieves vendor specific data for the given disk device
96+
97+
Returns:
98+
A string holding some vendor specific disk information
99+
"""
100+
return self.vendor_ssd_info
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"skip_thermalctld": true,
3+
"skip_fancontrol": true,
4+
"skip_ledd": true,
5+
"skip_psud": true,
6+
"skip_syseepromd": false,
7+
"skip_xcvrd": true,
8+
"skip_chassis_db_init": false,
9+
"skip_pcied": true
10+
}

dockers/docker-dhcp-relay/Dockerfile.j2

+3-7
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ ENV IMAGE_VERSION=$image_version
1313
# Update apt's cache of available packages
1414
RUN apt-get update
1515

16-
RUN apt-get install -y libjsoncpp-dev {%- if INCLUDE_DHCP_SERVER == "y" %}\
17-
python3-dev \
18-
build-essential{%- endif %}
16+
RUN apt-get install -y libjsoncpp-dev \
17+
python3-dev \
18+
build-essential
1919

20-
{% if INCLUDE_DHCP_SERVER == "y" -%}
2120
RUN pip3 install psutil
22-
{%- endif %}
2321

2422
RUN apt-get install -y libjsoncpp-dev
2523

@@ -40,10 +38,8 @@ RUN apt-get install -y libjsoncpp-dev
4038
{% endif %}
4139

4240
# Clean up
43-
{% if INCLUDE_DHCP_SERVER == "y" -%}
4441
RUN apt-get remove -y build-essential \
4542
python3-dev
46-
{%- endif %}
4743
RUN apt-get clean -y && \
4844
apt-get autoclean -y && \
4945
apt-get autoremove -y && \

dockers/docker-dhcp-relay/dhcp-relay.programs.j2

+1-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
[group:dhcp-relay]
2-
programs=
2+
programs=dhcprelayd,
33
{%- set relay_for_ipv6 = { 'flag': False } %}
44
{%- set add_preceding_comma = { 'flag': False } %}
55
{% if dhcp_server_ipv4_enabled %}
6-
{% set _dummy = add_preceding_comma.update({'flag': True}) %}
7-
dhcprelayd
86
{%- endif %}
97
{% for vlan_name in VLAN_INTERFACE %}
10-
{# Append DHCPv4 agents #}
11-
{% if not dhcp_server_ipv4_enabled and VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length > 0 %}
12-
{% if add_preceding_comma.flag %},{% endif %}
13-
{% set _dummy = add_preceding_comma.update({'flag': True}) %}
14-
isc-dhcpv4-relay-{{ vlan_name }}
15-
{%- endif %}
168
{% if DHCP_RELAY and vlan_name in DHCP_RELAY and DHCP_RELAY[vlan_name]['dhcpv6_servers']|length > 0 %}
179
{% set _dummy = relay_for_ipv6.update({'flag': True}) %}
1810
{%- endif %}

0 commit comments

Comments
 (0)