Added Support to runtime render bgp and teamd feature state and lldp has_asic_scope flag (#11796)
Added Support to runtime render bgp and teamd feature `state` and lldp `has_asic_scope` flag Needed for SONiC on chassis. Signed-off-by: Abhishek Dosi <abdosi@microsoft.com> Co-authored-by: mlok <marty.lok@nokia.com>
This commit is contained in:
parent
e1ba683635
commit
668485aac5
@ -32,7 +32,7 @@
|
||||
"tsa_enabled": "false"
|
||||
}
|
||||
},
|
||||
{%- set features = [("bgp", "enabled", false, "enabled"),
|
||||
{%- set features = [("bgp", "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}disabled{% else %}enabled{% endif %}", false, "enabled"),
|
||||
("database", "always_enabled", false, "always_enabled"),
|
||||
("lldp", "enabled", true, "enabled"),
|
||||
("pmon", "enabled", true, "enabled"),
|
||||
@ -42,7 +42,7 @@
|
||||
("eventd", "enabled", false, "enabled"),
|
||||
("swss", "enabled", false, "enabled"),
|
||||
("syncd", "enabled", false, "enabled"),
|
||||
("teamd", "enabled", false, "enabled")] %}
|
||||
("teamd", "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] %}disabled{% else %}enabled{% endif %}", false, "enabled")] %}
|
||||
{% do features.append(("dhcp_relay", "{% if not (DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['type'] is defined and DEVICE_METADATA['localhost']['type'] is not in ['ToRRouter', 'EPMS', 'MgmtTsToR', 'MgmtToRRouter', 'BmcMgmtToRRouter']) %}enabled{% else %}disabled{% endif %}", false, "enabled")) %}
|
||||
{%- if sonic_asic_platform == "vs" %}{% do features.append(("gbsyncd", "enabled", false, "enabled")) %}{% endif %}
|
||||
{%- if include_iccpd == "y" %}{% do features.append(("iccpd", "disabled", false, "enabled")) %}{% endif %}
|
||||
@ -61,7 +61,11 @@
|
||||
"state": "{{state}}",
|
||||
"has_timer" : {{has_timer | lower()}},
|
||||
"has_global_scope": {% if feature + '.service' in installer_services.split(' ') %}true{% else %}false{% endif %},
|
||||
"has_per_asic_scope": {% if feature + '@.service' in installer_services.split(' ') %}true{% else %}false{% endif %},
|
||||
{%- if feature in ["lldp"] %}
|
||||
"has_per_asic_scope": {% raw %}"{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}False{% else %}True{% endif %}"{% endraw %},
|
||||
{%- else %}
|
||||
"has_per_asic_scope": {% if feature + '@.service' in installer_services.split(' ') %}"True"{% else %}"False"{% endif %},
|
||||
{%- endif %}
|
||||
"auto_restart": "{{autorestart}}",
|
||||
{# Set check_up_status to true here when app readiness will be marked in state db #}
|
||||
{# For now, to support the infrastrucure, setting the check_up_status to false for bgp,swss,pmon #}
|
||||
|
@ -9,10 +9,6 @@ LOCKFILE="/tmp/swss-syncd-lock$DEV"
|
||||
NAMESPACE_PREFIX="asic"
|
||||
ETC_SONIC_PATH="/etc/sonic/"
|
||||
|
||||
# DEPENDENT initially contains namespace independent services
|
||||
# namespace specific services are added later in this script.
|
||||
DEPENDENT="radv"
|
||||
MULTI_INST_DEPENDENT="teamd"
|
||||
|
||||
. /usr/local/bin/asic_status.sh
|
||||
|
||||
@ -299,8 +295,6 @@ stop() {
|
||||
|
||||
function check_peer_gbsyncd()
|
||||
{
|
||||
PLATFORM=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' platform`
|
||||
HWSKU=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' hwsku`
|
||||
GEARBOX_CONFIG=/usr/share/sonic/device/$PLATFORM/$HWSKU/$DEV/gearbox_config.json
|
||||
|
||||
if [ -f $GEARBOX_CONFIG ]; then
|
||||
@ -321,6 +315,22 @@ function check_macsec()
|
||||
fi
|
||||
}
|
||||
|
||||
function check_ports_present()
|
||||
{
|
||||
PORT_CONFIG_INI=/usr/share/sonic/device/$PLATFORM/$HWSKU/$DEV/port_config.ini
|
||||
HWSKU_JSON=/usr/share/sonic/device/$PLATFORM/$HWSKU/$DEV/hwsku.json
|
||||
|
||||
if [[ -f $PORT_CONFIG_INI ]] || [[ -f $HWSKU_JSON ]]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
# DEPENDENT initially contains namespace independent services
|
||||
# namespace specific services are added later in this script.
|
||||
DEPENDENT="radv"
|
||||
MULTI_INST_DEPENDENT=""
|
||||
|
||||
if [ "$DEV" ]; then
|
||||
NET_NS="$NAMESPACE_PREFIX$DEV" #name of the network namespace
|
||||
SONIC_DB_CLI="sonic-db-cli -n $NET_NS"
|
||||
@ -331,8 +341,19 @@ else
|
||||
DEPENDENT+=" bgp"
|
||||
fi
|
||||
|
||||
PLATFORM=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' platform`
|
||||
HWSKU=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' hwsku`
|
||||
|
||||
check_peer_gbsyncd
|
||||
check_macsec
|
||||
|
||||
check_ports_present
|
||||
PORTS_PRESENT=$?
|
||||
|
||||
if [[ $PORTS_PRESENT == 0 ]]; then
|
||||
MULTI_INST_DEPENDENT="teamd"
|
||||
fi
|
||||
|
||||
read_dependent_services
|
||||
|
||||
case "$1" in
|
||||
|
@ -1574,7 +1574,7 @@
|
||||
"lldp": {
|
||||
"auto_restart": "enabled",
|
||||
"has_global_scope": "false",
|
||||
"has_per_asic_scope": "true",
|
||||
"has_per_asic_scope": "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}False{% else %}True{% endif %}",
|
||||
"has_timer": "false",
|
||||
"high_mem_alert": "disabled",
|
||||
"state": "enabled",
|
||||
|
@ -49,7 +49,7 @@
|
||||
"auto_restart": "disabled",
|
||||
"has_timer": "false",
|
||||
"has_global_scope": "false",
|
||||
"has_per_asic_scope": "true",
|
||||
"has_per_asic_scope": "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}False{% else %}True{% endif %}",
|
||||
"set_owner": "kube",
|
||||
"check_up_status": "false"
|
||||
},
|
||||
@ -77,7 +77,7 @@
|
||||
"auto_restart": "disabled",
|
||||
"has_timer": "false",
|
||||
"has_global_scope": "false",
|
||||
"has_per_asic_scope": "true",
|
||||
"has_per_asic_scope": "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}False{% else %}True{% endif %}",
|
||||
"set_owner": "invalid",
|
||||
"check_up_status": "false"
|
||||
}
|
||||
@ -95,7 +95,7 @@
|
||||
"auto_restart": "disabled",
|
||||
"has_timer": "false",
|
||||
"has_global_scope": "false",
|
||||
"has_per_asic_scope": "true",
|
||||
"has_per_asic_scope": "{% if not DEVICE_RUNTIME_METADATA['ETHERNET_PORTS_PRESENT'] or ('CHASSIS_METADATA' in DEVICE_RUNTIME_METADATA and DEVICE_RUNTIME_METADATA['CHASSIS_METADATA']['module_type'] in ['supervisor']) %}False{% else %}True{% endif %}",
|
||||
"check_up_status": "false"
|
||||
}
|
||||
]
|
||||
|
@ -24,6 +24,11 @@ module sonic-feature{
|
||||
}
|
||||
}
|
||||
|
||||
typedef feature-scope-status {
|
||||
description "configuration to set the feature has asic scope as true/false";
|
||||
type string;
|
||||
}
|
||||
|
||||
container sonic-feature {
|
||||
|
||||
container FEATURE {
|
||||
@ -69,7 +74,7 @@ module sonic-feature{
|
||||
leaf has_per_asic_scope {
|
||||
description "This configuration identicates there will only one service
|
||||
spawned per asic";
|
||||
type stypes:boolean_type;
|
||||
type feature-scope-status;
|
||||
default "false";
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user