Skip to content

Commit fa980de

Browse files
authored
Merge branch '202012' into as4630-54pe_20210721_api2_202012br
2 parents b2b0e9c + 9caf128 commit fa980de

File tree

27 files changed

+216
-62
lines changed

27 files changed

+216
-62
lines changed

.azure-pipelines/azure-pipelines-image-template.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure
4949
displayName: 'Make configure'
5050
postSteps:
51-
- script: cp target -r $(Build.ArtifactStagingDirectory)/
51+
- script: mv target $(Build.ArtifactStagingDirectory)/
5252
displayName: Copy Artifacts
5353
- publish: $(Build.ArtifactStagingDirectory)
5454
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
@@ -57,6 +57,10 @@ jobs:
5757
condition: failed()
5858
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)'
5959
displayName: "Archive failed sonic image"
60+
- template: trigger-publish-artifacts-build.yml
61+
parameters:
62+
artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
63+
publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)'
6064
- ${{ parameters.postSteps }}
6165
- template: cleanup.yml
6266
jobGroups: ${{ parameters.jobGroups }}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# The steps to trigger the pipeline to publish the artifacts
2+
3+
parameters:
4+
- name: artifactName
5+
type: string
6+
default: ""
7+
- name: publishPrefix
8+
type: string
9+
default: "$(Build.DefinitionName)/$(Build.SourceBranchName)"
10+
11+
steps:
12+
- script: |
13+
. functions.sh
14+
sonic_version=$(sonic_get_version)
15+
latest_tag=$(git describe --tags --abbrev=0)
16+
docker_tags="$sonic_version $(Build.SourceBranchName)"
17+
if [ "$(Build.SourceBranchName)" == "master" ]; then
18+
docker_tags="$docker_tags latest"
19+
fi
20+
echo "##vso[task.setvariable variable=sonic_version]$sonic_version"
21+
echo "##vso[task.setvariable variable=latest_tag]$latest_tag"
22+
echo "##vso[task.setvariable variable=docker_tags]$docker_tags"
23+
condition: ne(variables['Build.Reason'], 'PullRequest')
24+
displayName: 'Set trigger build variables'
25+
- task: TriggerBuild@4
26+
condition: ne(variables['Build.Reason'], 'PullRequest')
27+
inputs:
28+
definitionIsInCurrentTeamProject: false
29+
teamProject: internal
30+
tfsServer: $(System.CollectionUri)
31+
buildDefinition: 'publish-artifacts'
32+
queueBuildForUserThatTriggeredBuild: true
33+
ignoreSslCertificateErrors: false
34+
useSameSourceVersion: false
35+
useCustomSourceVersion: false
36+
useSameBranch: false
37+
waitForQueuedBuildsToFinish: false
38+
storeInEnvironmentVariable: true
39+
authenticationMethod: 'Personal Access Token'
40+
password: '$(system.accesstoken)'
41+
enableBuildInQueueCondition: false
42+
dependentOnSuccessfulBuildCondition: false
43+
dependentOnFailedBuildCondition: false
44+
checkbuildsoncurrentbranch: false
45+
failTaskIfConditionsAreNotFulfilled: false
46+
buildParameters: ''
47+
templateParameters: |
48+
pipelineContext: {"buildId":"$(Build.BuildId)",
49+
"pipelineId":"$(System.DefinitionId)",
50+
"project": "$(System.TeamProject)",
51+
"branchName":"$(Build.SourceBranchName)"},
52+
artifactContext: {"artifactName":"${{ parameters.artifactName }}",
53+
"artifactPatterns":"**/*.bin\n
54+
**/*.swi\n
55+
**/*.raw\n
56+
**/*.img.gz\n
57+
**/*-rpc.gz\n
58+
**/python-saithrift*.deb"},
59+
publishContext: {"publishPrefix":"${{ parameters.publishPrefix }}",
60+
"keepArtifactName":false,
61+
"dockerImagePatterns":"target/*-rpc.gz",
62+
"dockerTags":"$(docker_tags)",
63+
"version":"$(sonic_version)",
64+
"latestTag":"$(latest_tag)"}

azure-pipelines.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ resources:
2929
type: github
3030
name: Azure/sonic-mgmt
3131
endpoint: build
32+
ref: refs/heads/202012
3233

3334
stages:
3435
- stage: BuildVS

device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot

Lines changed: 0 additions & 21 deletions
This file was deleted.

device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot

Lines changed: 0 additions & 1 deletion
This file was deleted.

device/mellanox/x86_64-mlnx_msn4700_simx-r0/platform_reboot

Lines changed: 0 additions & 1 deletion
This file was deleted.

files/build_templates/init_cfg.json.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
{%- set features = [("bgp", "enabled", false, "enabled"),
2222
("database", "always_enabled", false, "always_enabled"),
2323
("dhcp_relay", "enabled", false, "enabled"),
24-
("lldp", "enabled", false, "enabled"),
25-
("pmon", "enabled", false, "enabled"),
24+
("lldp", "enabled", true, "enabled"),
25+
("pmon", "enabled", true, "enabled"),
2626
("radv", "enabled", false, "enabled"),
2727
("snmp", "enabled", true, "enabled"),
2828
("swss", "enabled", false, "enabled"),

files/build_templates/lldp.timer.j2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
per_namespace/lldp.timer.j2

files/build_templates/per_namespace/lldp.service.j2

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,3 @@ ExecStart=/usr/bin/{{docker_container_name}}.sh wait{% if multi_instance == 'tru
2121
ExecStop=/usr/bin/{{docker_container_name}}.sh stop{% if multi_instance == 'true' %} %i{% endif %}
2222
Restart=always
2323
RestartSec=30
24-
25-
[Install]
26-
WantedBy=sonic.target
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[Unit]
2+
# This delay is for fast/warm reboot performance
3+
Description=Delays LLDP docker until SONiC has started
4+
PartOf=lldp{% if multi_instance == 'true' %}@%i{% endif %}.service
5+
6+
[Timer]
7+
OnUnitActiveSec=0 sec
8+
OnBootSec=1min 30 sec
9+
Unit=lldp{% if multi_instance == 'true' %}@%i{% endif %}.service
10+
11+
[Install]
12+
WantedBy=timers.target sonic.target sonic-delayed.target

files/build_templates/pmon.service.j2

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,3 @@ ExecStart=/usr/bin/{{docker_container_name}}.sh wait
1818
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
1919
Restart=always
2020
RestartSec=30
21-
22-
[Install]
23-
WantedBy=sonic.target

files/build_templates/pmon.timer

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[Unit]
2+
# This delay is for fast/warm reboot performance
3+
Description=Delays pmon docker until SONiC has started
4+
PartOf=pmon.service
5+
6+
[Timer]
7+
OnUnitActiveSec=0 sec
8+
OnBootSec=1min 30 sec
9+
Unit=pmon.service
10+
11+
[Install]
12+
WantedBy=timers.target sonic.target sonic-delayed.target

files/build_templates/sonic_debian_extension.j2

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,19 @@ if [ -f {{service}} ]; then
700700
echo "{{service}}" | sudo tee -a $GENERATED_SERVICE_FILE
701701
fi
702702
{% endfor %}
703+
{% for timer in installer_timers.split(' ') -%}
704+
if [ -f {{timer}} ]; then
705+
sudo cp {{timer}} $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
706+
707+
{% if "@" in timer %}
708+
MULTI_INSTANCE="{{timer}}"
709+
SINGLE_INSTANCE=${MULTI_INSTANCE/"@"}
710+
sudo cp $SINGLE_INSTANCE $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
711+
{% endif %}
712+
713+
echo "{{timer}}" | sudo tee -a $GENERATED_SERVICE_FILE
714+
fi
715+
{% endfor %}
703716
if [ -f iccpd.service ]; then
704717
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable iccpd.service
705718
fi
@@ -744,6 +757,9 @@ sudo cp $BUILD_TEMPLATES/mgmt-framework.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_S
744757
echo "mgmt-framework.timer" | sudo tee -a $GENERATED_SERVICE_FILE
745758
{% endif %}
746759

760+
sudo cp $BUILD_TEMPLATES/pmon.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
761+
echo "pmon.timer" | sudo tee -a $GENERATED_SERVICE_FILE
762+
747763
sudo cp $BUILD_TEMPLATES/sonic.target $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
748764
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable sonic.target
749765

files/image_config/interfaces/interfaces-config.sh

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,39 @@
11
#!/bin/bash
22

3-
ifdown --force eth0
3+
function wait_networking_service_done() {
4+
local -i _WDOG_CNT="1"
5+
local -ir _WDOG_MAX="30"
6+
7+
local -r _TIMEOUT="1s"
8+
9+
while [[ "${_WDOG_CNT}" -le "${_WDOG_MAX}" ]]; do
10+
networking_status="$(systemctl is-active networking 2>&1)"
11+
12+
if [[ "${networking_status}" == active || "${networking_status}" == inactive || "${networking_status}" == failed ]] ; then
13+
return
14+
fi
15+
16+
echo "interfaces-config: networking service is running, wait for it done"
17+
18+
let "_WDOG_CNT++"
19+
sleep "${_TIMEOUT}"
20+
done
21+
22+
echo "interfaces-config: networking service is still running after 30 seconds, killing it"
23+
systemctl kill networking 2>&1
24+
}
25+
26+
if [[ $(ifquery --running eth0) ]]; then
27+
wait_networking_service_done
28+
ifdown --force eth0
29+
fi
430

531
# Check if ZTP DHCP policy has been installed
6-
if [ -e /etc/network/ifupdown2/policy.d/ztp_dhcp.json ]; then
32+
if [[ -e /etc/network/ifupdown2/policy.d/ztp_dhcp.json ]]; then
733
# Obtain port operational state information
834
redis-dump -d 0 -k "PORT_TABLE:Ethernet*" -y > /tmp/ztp_port_data.json
935

10-
if [ $? -ne 0 ] || [ ! -e /tmp/ztp_port_data.json ] || [ "$(cat /tmp/ztp_port_data.json)" = "" ]; then
36+
if [[ $? -ne 0 || ! -e /tmp/ztp_port_data.json || "$(cat /tmp/ztp_port_data.json)" = "" ]]; then
1137
echo "{}" > /tmp/ztp_port_data.json
1238
fi
1339

@@ -27,11 +53,11 @@ CFGGEN_PARAMS=" \
2753
"
2854
sonic-cfggen $CFGGEN_PARAMS
2955

30-
[ -f /var/run/dhclient.eth0.pid ] && kill `cat /var/run/dhclient.eth0.pid` && rm -f /var/run/dhclient.eth0.pid
31-
[ -f /var/run/dhclient6.eth0.pid ] && kill `cat /var/run/dhclient6.eth0.pid` && rm -f /var/run/dhclient6.eth0.pid
56+
[[ -f /var/run/dhclient.eth0.pid ]] && kill `cat /var/run/dhclient.eth0.pid` && rm -f /var/run/dhclient.eth0.pid
57+
[[ -f /var/run/dhclient6.eth0.pid ]] && kill `cat /var/run/dhclient6.eth0.pid` && rm -f /var/run/dhclient6.eth0.pid
3258

3359
for intf_pid in $(ls -1 /var/run/dhclient*.Ethernet*.pid 2> /dev/null); do
34-
[ -f ${intf_pid} ] && kill `cat ${intf_pid}` && rm -f ${intf_pid}
60+
[[ -f ${intf_pid} ]] && kill `cat ${intf_pid}` && rm -f ${intf_pid}
3561
done
3662

3763
# Read sysctl conf files again

files/scripts/syncd.sh

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,23 @@ function startplatform() {
3636
}
3737

3838
function waitplatform() {
39-
39+
40+
BOOT_TYPE=`getBootType`
4041
if [[ x"$sonic_asic_platform" == x"mellanox" ]]; then
41-
debug "Starting pmon service..."
42-
/bin/systemctl start pmon
43-
debug "Started pmon service"
42+
if [[ x"$BOOT_TYPE" = @(x"fast"|x"warm"|x"fastfast") ]]; then
43+
debug "PMON service is delayed by a timer for better fast/warm boot performance"
44+
else
45+
debug "Starting pmon service..."
46+
/bin/systemctl start pmon
47+
debug "Started pmon service"
48+
fi
49+
fi
50+
if [[ x"$BOOT_TYPE" = @(x"fast"|x"warm"|x"fastfast") ]]; then
51+
debug "LLDP service is delayed by a timer for better fast/warm boot performance"
52+
else
53+
debug "Starting lldp service..."
54+
/bin/systemctl start lldp
55+
debug "Started lldp service"
4456
fi
4557
}
4658

@@ -56,7 +68,7 @@ function stopplatform1() {
5668
debug "${TYPE} shutdown syncd process ..."
5769
/usr/bin/docker exec -i syncd$DEV /usr/bin/syncd_request_shutdown --${TYPE}
5870

59-
# wait until syncd quits gracefully or force syncd to exit after
71+
# wait until syncd quits gracefully or force syncd to exit after
6072
# waiting for 20 seconds
6173
start_in_secs=${SECONDS}
6274
end_in_secs=${SECONDS}
@@ -68,7 +80,7 @@ function stopplatform1() {
6880
done
6981

7082
if [[ $((end_in_secs - start_in_secs)) -gt $timer_threshold ]]; then
71-
debug "syncd process in container syncd$DEV did not exit gracefully"
83+
debug "syncd process in container syncd$DEV did not exit gracefully"
7284
fi
7385

7486
/usr/bin/docker exec -i syncd$DEV /bin/sync

platform/broadcom/sonic-platform-modules-dell/s5232f/sonic_platform/chassis.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class Chassis(ChassisBase):
3838

3939
oir_fd = -1
4040
epoll = -1
41-
41+
REBOOT_CAUSE_PATH = "/host/reboot-cause/platform/reboot_reason"
4242
_global_port_pres_dict = {}
4343

4444
def __init__(self):
@@ -239,15 +239,15 @@ def get_reboot_cause(self):
239239
return (self.REBOOT_CAUSE_NON_HARDWARE, None)
240240

241241
if reboot_cause & 0x1:
242-
return (self.REBOOT_CAUSE_POWER_LOSS, None)
242+
return (self.REBOOT_CAUSE_POWER_LOSS, "Power on reset")
243243
elif reboot_cause & 0x2:
244244
return (self.REBOOT_CAUSE_NON_HARDWARE, None)
245245
elif reboot_cause & 0x4:
246246
return (self.REBOOT_CAUSE_HARDWARE_OTHER, "PSU Shutdown")
247247
elif reboot_cause & 0x8:
248-
return (self.REBOOT_CAUSE_THERMAL_OVERLOAD_CPU, None)
248+
return (self.REBOOT_CAUSE_THERMAL_OVERLOAD_CPU, "Thermal overload")
249249
elif reboot_cause & 0x10:
250-
return (self.REBOOT_CAUSE_WATCHDOG, None)
250+
return (self.REBOOT_CAUSE_WATCHDOG, "Watchdog reset")
251251
elif reboot_cause & 0x20:
252252
return (self.REBOOT_CAUSE_HARDWARE_OTHER, "BMC Shutdown")
253253
elif reboot_cause & 0x40:

platform/broadcom/sonic-platform-modules-dell/s5248f/sonic_platform/chassis.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ def get_num_sfps(self):
309309
An integer represences the number of SFPs on the chassis.
310310
"""
311311
return self._num_sfps
312+
312313
def get_reboot_cause(self):
313314
"""
314315
Retrieves the cause of the previous reboot
@@ -326,15 +327,15 @@ def get_reboot_cause(self):
326327
return (self.REBOOT_CAUSE_NON_HARDWARE, None)
327328

328329
if reboot_cause & 0x1:
329-
return (self.REBOOT_CAUSE_POWER_LOSS, None)
330+
return (self.REBOOT_CAUSE_POWER_LOSS, "Power on reset")
330331
elif reboot_cause & 0x2:
331332
return (self.REBOOT_CAUSE_NON_HARDWARE, None)
332333
elif reboot_cause & 0x4:
333334
return (self.REBOOT_CAUSE_HARDWARE_OTHER, "PSU Shutdown")
334335
elif reboot_cause & 0x8:
335-
return (self.REBOOT_CAUSE_THERMAL_OVERLOAD_CPU, None)
336+
return (self.REBOOT_CAUSE_THERMAL_OVERLOAD_CPU, "Thermal overload")
336337
elif reboot_cause & 0x10:
337-
return (self.REBOOT_CAUSE_WATCHDOG, None)
338+
return (self.REBOOT_CAUSE_WATCHDOG, "Watchdog reset")
338339
elif reboot_cause & 0x20:
339340
return (self.REBOOT_CAUSE_HARDWARE_OTHER, "BMC Shutdown")
340341
elif reboot_cause & 0x40:

platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/sfp.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
'encoding', 'ext_identifier', 'ext_rateselect_compliance',
4949
'cable_type', 'cable_length', 'nominal_bit_rate',
5050
'specification_compliance', 'vendor_date', 'vendor_oui',
51-
'application_advertisement']
51+
'type_abbrv_name', 'application_advertisement']
5252

5353
dom_dict_keys = ['rx_los', 'tx_fault', 'reset_status',
5454
'power_lpmode', 'tx_disable', 'tx_disable_channel',
@@ -91,6 +91,7 @@
9191
'nominal_bit_rate': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'],
9292
'specification_compliance':
9393
[INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'],
94+
'type_abbrv_name': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'],
9495
'manufacturer': [INFO_OFFSET, 20, 16, 'parse_vendor_name'],
9596
'vendor_oui': [INFO_OFFSET, 37, 3, 'parse_vendor_oui'],
9697
'model': [INFO_OFFSET, 40, 16, 'parse_vendor_pn'],
@@ -198,6 +199,7 @@ def get_transceiver_info(self):
198199
ext_id = iface_data['data']['Extended Identifier']['value']
199200
rate_identifier = iface_data['data']['RateIdentifier']['value']
200201
identifier = iface_data['data']['type']['value']
202+
type_abbrv_name = iface_data['data']['type_abbrv_name']['value']
201203
bit_rate = str(
202204
iface_data['data']['Nominal Bit Rate(100Mbs)']['value'])
203205

@@ -254,6 +256,7 @@ def get_transceiver_info(self):
254256
return transceiver_info_dict
255257

256258
# Fill The Dictionary and return
259+
transceiver_info_dict['type_abbrv_name'] = type_abbrv_name
257260
transceiver_info_dict['type'] = identifier
258261
transceiver_info_dict['hardware_rev'] = vendor_rev
259262
transceiver_info_dict['serial'] = vendor_sn

0 commit comments

Comments
 (0)