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"
|
"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"),
|
("database", "always_enabled", false, "always_enabled"),
|
||||||
("lldp", "enabled", true, "enabled"),
|
("lldp", "enabled", true, "enabled"),
|
||||||
("pmon", "enabled", true, "enabled"),
|
("pmon", "enabled", true, "enabled"),
|
||||||
@ -42,7 +42,7 @@
|
|||||||
("eventd", "enabled", false, "enabled"),
|
("eventd", "enabled", false, "enabled"),
|
||||||
("swss", "enabled", false, "enabled"),
|
("swss", "enabled", false, "enabled"),
|
||||||
("syncd", "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")) %}
|
{% 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 sonic_asic_platform == "vs" %}{% do features.append(("gbsyncd", "enabled", false, "enabled")) %}{% endif %}
|
||||||
{%- if include_iccpd == "y" %}{% do features.append(("iccpd", "disabled", false, "enabled")) %}{% endif %}
|
{%- if include_iccpd == "y" %}{% do features.append(("iccpd", "disabled", false, "enabled")) %}{% endif %}
|
||||||
@ -61,7 +61,11 @@
|
|||||||
"state": "{{state}}",
|
"state": "{{state}}",
|
||||||
"has_timer" : {{has_timer | lower()}},
|
"has_timer" : {{has_timer | lower()}},
|
||||||
"has_global_scope": {% if feature + '.service' in installer_services.split(' ') %}true{% else %}false{% endif %},
|
"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}}",
|
"auto_restart": "{{autorestart}}",
|
||||||
{# Set check_up_status to true here when app readiness will be marked in state db #}
|
{# 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 #}
|
{# 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"
|
NAMESPACE_PREFIX="asic"
|
||||||
ETC_SONIC_PATH="/etc/sonic/"
|
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
|
. /usr/local/bin/asic_status.sh
|
||||||
|
|
||||||
@ -299,8 +295,6 @@ stop() {
|
|||||||
|
|
||||||
function check_peer_gbsyncd()
|
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
|
GEARBOX_CONFIG=/usr/share/sonic/device/$PLATFORM/$HWSKU/$DEV/gearbox_config.json
|
||||||
|
|
||||||
if [ -f $GEARBOX_CONFIG ]; then
|
if [ -f $GEARBOX_CONFIG ]; then
|
||||||
@ -321,6 +315,22 @@ function check_macsec()
|
|||||||
fi
|
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
|
if [ "$DEV" ]; then
|
||||||
NET_NS="$NAMESPACE_PREFIX$DEV" #name of the network namespace
|
NET_NS="$NAMESPACE_PREFIX$DEV" #name of the network namespace
|
||||||
SONIC_DB_CLI="sonic-db-cli -n $NET_NS"
|
SONIC_DB_CLI="sonic-db-cli -n $NET_NS"
|
||||||
@ -331,8 +341,19 @@ else
|
|||||||
DEPENDENT+=" bgp"
|
DEPENDENT+=" bgp"
|
||||||
fi
|
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_peer_gbsyncd
|
||||||
check_macsec
|
check_macsec
|
||||||
|
|
||||||
|
check_ports_present
|
||||||
|
PORTS_PRESENT=$?
|
||||||
|
|
||||||
|
if [[ $PORTS_PRESENT == 0 ]]; then
|
||||||
|
MULTI_INST_DEPENDENT="teamd"
|
||||||
|
fi
|
||||||
|
|
||||||
read_dependent_services
|
read_dependent_services
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -1574,7 +1574,7 @@
|
|||||||
"lldp": {
|
"lldp": {
|
||||||
"auto_restart": "enabled",
|
"auto_restart": "enabled",
|
||||||
"has_global_scope": "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 %}",
|
||||||
"has_timer": "false",
|
"has_timer": "false",
|
||||||
"high_mem_alert": "disabled",
|
"high_mem_alert": "disabled",
|
||||||
"state": "enabled",
|
"state": "enabled",
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
"auto_restart": "disabled",
|
"auto_restart": "disabled",
|
||||||
"has_timer": "false",
|
"has_timer": "false",
|
||||||
"has_global_scope": "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",
|
"set_owner": "kube",
|
||||||
"check_up_status": "false"
|
"check_up_status": "false"
|
||||||
},
|
},
|
||||||
@ -77,7 +77,7 @@
|
|||||||
"auto_restart": "disabled",
|
"auto_restart": "disabled",
|
||||||
"has_timer": "false",
|
"has_timer": "false",
|
||||||
"has_global_scope": "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",
|
"set_owner": "invalid",
|
||||||
"check_up_status": "false"
|
"check_up_status": "false"
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@
|
|||||||
"auto_restart": "disabled",
|
"auto_restart": "disabled",
|
||||||
"has_timer": "false",
|
"has_timer": "false",
|
||||||
"has_global_scope": "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"
|
"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 sonic-feature {
|
||||||
|
|
||||||
container FEATURE {
|
container FEATURE {
|
||||||
@ -69,7 +74,7 @@ module sonic-feature{
|
|||||||
leaf has_per_asic_scope {
|
leaf has_per_asic_scope {
|
||||||
description "This configuration identicates there will only one service
|
description "This configuration identicates there will only one service
|
||||||
spawned per asic";
|
spawned per asic";
|
||||||
type stypes:boolean_type;
|
type feature-scope-status;
|
||||||
default "false";
|
default "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user