From f52ba3b49669d4d13834c6b0122d9a6bb3548b3b Mon Sep 17 00:00:00 2001 From: Shi Su <67605788+shi-su@users.noreply.github.com> Date: Wed, 23 Jun 2021 09:15:56 -0700 Subject: [PATCH] Remove quagga-related code (#7898) Why I did it Quagga is no longer being used. Remove quagga-related code (e.g., docker-fpm-quagga, sonic-quagga, etc.). How I did it Remove quagga-related code. --- .gitmodules | 4 - dockers/docker-fpm-quagga/Dockerfile.j2 | 39 ----- .../docker-fpm-quagga/base_image_files/rvtysh | 1 - .../docker-fpm-quagga/base_image_files/vtysh | 16 -- dockers/docker-fpm-quagga/bgpcfgd | 71 --------- dockers/docker-fpm-quagga/bgpd.conf.j2 | 140 ------------------ dockers/docker-fpm-quagga/critical_processes | 4 - dockers/docker-fpm-quagga/isolate.j2 | 26 ---- dockers/docker-fpm-quagga/start.sh | 34 ----- dockers/docker-fpm-quagga/supervisord.conf | 66 --------- dockers/docker-fpm-quagga/unisolate.j2 | 26 ---- dockers/docker-fpm-quagga/zebra.conf.j2 | 78 ---------- platform/vs/docker-sonic-vs.mk | 4 +- rules/config | 2 +- rules/docker-fpm-gobgp.dep | 10 -- rules/docker-fpm-gobgp.mk | 16 -- rules/docker-fpm-quagga.dep | 10 -- rules/docker-fpm-quagga.mk | 20 --- rules/docker-fpm.mk | 4 +- rules/quagga.dep | 13 -- rules/quagga.mk | 11 -- rules/sonic-config.dep | 2 +- src/sonic-config-engine/tests/test_j2files.py | 15 -- src/sonic-quagga | 1 - 24 files changed, 4 insertions(+), 609 deletions(-) delete mode 100644 dockers/docker-fpm-quagga/Dockerfile.j2 delete mode 120000 dockers/docker-fpm-quagga/base_image_files/rvtysh delete mode 100755 dockers/docker-fpm-quagga/base_image_files/vtysh delete mode 100755 dockers/docker-fpm-quagga/bgpcfgd delete mode 100644 dockers/docker-fpm-quagga/bgpd.conf.j2 delete mode 100644 dockers/docker-fpm-quagga/critical_processes delete mode 100755 dockers/docker-fpm-quagga/isolate.j2 delete mode 100755 dockers/docker-fpm-quagga/start.sh delete mode 100644 dockers/docker-fpm-quagga/supervisord.conf delete mode 100755 dockers/docker-fpm-quagga/unisolate.j2 delete mode 100644 dockers/docker-fpm-quagga/zebra.conf.j2 delete mode 100644 rules/docker-fpm-gobgp.dep delete mode 100644 rules/docker-fpm-gobgp.mk delete mode 100644 rules/docker-fpm-quagga.dep delete mode 100644 rules/docker-fpm-quagga.mk delete mode 100644 rules/quagga.dep delete mode 100644 rules/quagga.mk delete mode 160000 src/sonic-quagga diff --git a/.gitmodules b/.gitmodules index f8020be8bb..0673278516 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,10 +16,6 @@ [submodule "src/p4-hlir/p4-hlir"] path = platform/p4/p4-hlir/p4-hlir url = https://github.com/p4lang/p4-hlir -[submodule "quagga"] - path = src/sonic-quagga - url = https://github.com/Azure/sonic-quagga - branch = debian/0.99.24.1 [submodule "sonic-dbsyncd"] path = src/sonic-dbsyncd url = https://github.com/Azure/sonic-dbsyncd diff --git a/dockers/docker-fpm-quagga/Dockerfile.j2 b/dockers/docker-fpm-quagga/Dockerfile.j2 deleted file mode 100644 index ac382afbe5..0000000000 --- a/dockers/docker-fpm-quagga/Dockerfile.j2 +++ /dev/null @@ -1,39 +0,0 @@ -FROM docker-config-engine - -ARG docker_container_name -RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf - -# Make apt-get non-interactive -ENV DEBIAN_FRONTEND=noninteractive - -# Update apt's cache of available packages -RUN apt-get update - -# Install required packages -RUN apt-get install -y libdbus-1-3 libdaemon0 libjansson4 libpython2.7 - -{% if docker_fpm_quagga_debs.strip() -%} -# Copy locally-built Debian package dependencies -{%- for deb in docker_fpm_quagga_debs.split(' ') %} -COPY debs/{{ deb }} /debs/ -{%- endfor %} - -# Install locally-built Debian packages and implicitly install their dependencies -{%- for deb in docker_fpm_quagga_debs.split(' ') %} -RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /debs/{{ deb }} -{%- endfor %} -{%- endif %} - -# Clean up -RUN apt-get clean -y -RUN apt-get autoclean -y -RUN apt-get autoremove -y -RUN rm -rf /debs ~/.cache - -COPY ["bgpcfgd", "start.sh", "/usr/bin/"] -COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -COPY ["*.j2", "/usr/share/sonic/templates/"] -COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] -COPY ["critical_processes", "/etc/supervisor"] - -ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/dockers/docker-fpm-quagga/base_image_files/rvtysh b/dockers/docker-fpm-quagga/base_image_files/rvtysh deleted file mode 120000 index 3956b5bfb3..0000000000 --- a/dockers/docker-fpm-quagga/base_image_files/rvtysh +++ /dev/null @@ -1 +0,0 @@ -../../docker-fpm-frr/base_image_files/rvtysh \ No newline at end of file diff --git a/dockers/docker-fpm-quagga/base_image_files/vtysh b/dockers/docker-fpm-quagga/base_image_files/vtysh deleted file mode 100755 index 24016bd96b..0000000000 --- a/dockers/docker-fpm-quagga/base_image_files/vtysh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Determine whether stdout is on a terminal -if [ -t 1 ] ; then - # Prepare a function to send HUP signal to vtysh in the container - # we mark the new instance of vtysh with the current tty as a tag - TTY=$(tty) - function cleanup - { - docker exec -i bgp pkill -HUP -f "vtysh $TTY" - } - trap cleanup HUP - docker exec -ti bgp vtysh "$TTY" "$@" -else - docker exec -i bgp vtysh "$@" -fi diff --git a/dockers/docker-fpm-quagga/bgpcfgd b/dockers/docker-fpm-quagga/bgpcfgd deleted file mode 100755 index ef936247cc..0000000000 --- a/dockers/docker-fpm-quagga/bgpcfgd +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python - -import sys -import redis -import subprocess -import syslog -from swsssdk import ConfigDBConnector - - -class BGPConfigDaemon: - - def __init__(self): - self.config_db = ConfigDBConnector() - self.config_db.connect() - self.bgp_asn = self.config_db.get_entry('DEVICE_METADATA', 'localhost')['bgp_asn'] - self.bgp_neighbor = self.config_db.get_table('BGP_NEIGHBOR') - - def __run_command(self, command): - p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) - stdout = p.communicate()[0] - p.wait() - if p.returncode != 0: - syslog.syslog(syslog.LOG_ERR, '[bgp cfgd] command execution returned {}. Command: "{}", stdout: "{}"'.format( - p.returncode, command, stdout)) - - def metadata_handler(self, key, data): - if key == 'localhost' and data.has_key('bgp_asn'): - if data['bgp_asn'] != self.bgp_asn: - syslog.syslog(syslog.LOG_INFO, '[bgp cfgd] ASN changed to {} from {}, restart BGP...'.format( - data['bgp_asn'], self.bgp_asn)) - self.__run_command("supervisorctl restart start.sh") - self.__run_command("service quagga restart") - self.bgp_asn = data['bgp_asn'] - - def bgp_handler(self, key, data): - syslog.syslog(syslog.LOG_INFO, '[bgp cfgd] value for {} changed to {}'.format(key, data)) - if not data: - # Neighbor is deleted - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'no neighbor {}'".format(self.bgp_asn, key) - self.__run_command(command) - self.bgp_neighbor.pop(key) - else: - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} remote-as {}'".format( - self.bgp_asn, key, data['asn']) - self.__run_command(command) - if data.has_key('name'): - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} description {}'".format( - self.bgp_asn, key, data['name']) - self.__run_command(command) - if data.has_key('admin_status'): - command_mod = 'no ' if data['admin_status'] == 'up' else '' - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c '{}neighbor {} shutdown'".format( - self.bgp_asn, command_mod, key) - self.__run_command(command) - self.bgp_neighbor[key] = data - - def start(self): - self.config_db.subscribe('BGP_NEIGHBOR', - lambda table, key, data: self.bgp_handler(key, data)) - self.config_db.subscribe('DEVICE_METADATA', - lambda table, key, data: self.metadata_handler(key, data)) - self.config_db.listen() - - -def main(): - daemon = BGPConfigDaemon() - daemon.start() - - -if __name__ == "__main__": - main() diff --git a/dockers/docker-fpm-quagga/bgpd.conf.j2 b/dockers/docker-fpm-quagga/bgpd.conf.j2 deleted file mode 100644 index 8c838f8ffc..0000000000 --- a/dockers/docker-fpm-quagga/bgpd.conf.j2 +++ /dev/null @@ -1,140 +0,0 @@ -! -{% block banner %} -! =========== Managed by sonic-cfggen DO NOT edit manually! ==================== -! generated by templates/quagga/bgpd.conf.j2 with config DB data -! file: bgpd.conf -! -{% endblock banner %} -! -{% block system_init %} -hostname {{ DEVICE_METADATA['localhost']['hostname'] }} -password zebra -log syslog informational -log facility local4 -! enable password {# {{ en_passwd }} TODO: param needed #} -{% endblock system_init %} -! -{% if 'bgp_asn' in DEVICE_METADATA['localhost'] %} -{% block bgp_init %} -! -! bgp multiple-instance -! -route-map FROM_BGP_SPEAKER_V4 permit 10 -! -route-map TO_BGP_SPEAKER_V4 deny 10 -! -router bgp {{ DEVICE_METADATA['localhost']['bgp_asn'] }} - bgp log-neighbor-changes - bgp bestpath as-path multipath-relax - no bgp default ipv4-unicast - bgp graceful-restart restart-time 240 - bgp graceful-restart -{% for (name, prefix) in LOOPBACK_INTERFACE|pfx_filter %} -{% if prefix | ipv4 and name == 'Loopback0' %} - bgp router-id {{ prefix | ip }} -{% endif %} -{% endfor %} -{# advertise loopback #} -{% for (name, prefix) in LOOPBACK_INTERFACE|pfx_filter %} -{% if prefix | ipv4 and name == 'Loopback0' %} - network {{ prefix | ip }}/32 -{% elif prefix | ipv6 and name == 'Loopback0' %} - address-family ipv6 - network {{ prefix | ip }}/64 - exit-address-family -{% endif %} -{% endfor %} -{% endblock bgp_init %} -{% endif %} -{% block vlan_advertisement %} -{% for (name, prefix) in VLAN_INTERFACE|pfx_filter %} -{% if prefix | ipv4 %} - network {{ prefix }} -{% elif prefix | ipv6 %} - address-family ipv6 - network {{ prefix }} - exit-address-family -{% endif %} -{% endfor %} -{% endblock vlan_advertisement %} -{% block bgp_sessions %} -{% for neighbor_addr, bgp_session in BGP_NEIGHBOR.items() %} -{% if bgp_session['asn'] | int != 0 %} - neighbor {{ neighbor_addr }} remote-as {{ bgp_session['asn'] }} - neighbor {{ neighbor_addr }} description {{ bgp_session['name'] }} -{# set the bgp neighbor timers if they have not default values #} -{% if (bgp_session['keepalive'] is defined and bgp_session['keepalive'] | int != 60) - or (bgp_session['holdtime'] is defined and bgp_session['holdtime'] | int != 180) %} - neighbor {{ neighbor_addr }} timers {{ bgp_session['keepalive'] }} {{ bgp_session['holdtime'] }} -{% endif %} -{% if 'admin_status' in bgp_session and bgp_session['admin_status'] == 'down' or 'admin_status' not in bgp_session and 'default_bgp_status' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['default_bgp_status'] == 'down' %} - neighbor {{ neighbor_addr }} shutdown -{% endif %} -{% if neighbor_addr | ipv4 %} - address-family ipv4 -{% if DEVICE_METADATA['localhost']['type'] == 'ToRRouter' %} - neighbor {{ neighbor_addr }} allowas-in 1 -{% endif %} - neighbor {{ neighbor_addr }} activate - neighbor {{ neighbor_addr }} soft-reconfiguration inbound - maximum-paths 64 - exit-address-family -{% endif %} -{% if neighbor_addr | ipv6 %} - address-family ipv6 -{% if DEVICE_METADATA['localhost']['type'] == 'ToRRouter' %} - neighbor {{ neighbor_addr }} allowas-in 1 -{% endif %} - neighbor {{ neighbor_addr }} activate - neighbor {{ neighbor_addr }} soft-reconfiguration inbound - maximum-paths 64 - exit-address-family -{% endif %} -{% endif %} -{% endfor %} -{% endblock bgp_sessions %} -{% block bgp_peers_with_range %} -{% if BGP_PEER_RANGE %} -{% for bgp_peer in BGP_PEER_RANGE.values() %} - neighbor {{ bgp_peer['name'] }} peer-group - neighbor {{ bgp_peer['name'] }} passive -{% if bgp_peer['peer_asn'] is defined %} - neighbor {{ bgp_peer['name'] }} remote-as {{ bgp_peer['peer_asn'] }} -{% else %} - neighbor {{ bgp_peer['name'] }} remote-as {{ constants.deployment_id_asn_map[DEVICE_METADATA['localhost']['deployment_id']] }} -{% endif %} - neighbor {{ bgp_peer['name'] }} ebgp-multihop 255 - neighbor {{ bgp_peer['name'] }} soft-reconfiguration inbound -{% if bgp_peer['src_address'] is defined %} - neighbor {{ bgp_peer['name'] }} update-source {{ bgp_peer['src_address'] | ip }} -{% else %} -{% for (name, prefix) in LOOPBACK_INTERFACE|pfx_filter %} -{% if name == 'Loopback1' %} - neighbor {{ bgp_peer['name'] }} update-source {{ prefix | ip }} -{% endif %} -{% endfor %} -{% endif %} - neighbor {{ bgp_peer['name'] }} route-map FROM_BGP_SPEAKER_V4 in - neighbor {{ bgp_peer['name'] }} route-map TO_BGP_SPEAKER_V4 out -{% for ip_range in bgp_peer['ip_range'] %} - bgp listen range {{ip_range}} peer-group {{ bgp_peer['name'] }} -{% endfor %} - address-family ipv4 - neighbor {{ bgp_peer['name'] }} activate - maximum-paths 64 - exit-address-family - address-family ipv6 - neighbor {{ bgp_peer['name'] }} activate - maximum-paths 64 - exit-address-family -{% endfor %} -{% endif %} -{% endblock bgp_peers_with_range %} -! -{% if 'bgp_asn' in DEVICE_METADATA['localhost'] %} -maximum-paths 64 -! -route-map ISOLATE permit 10 -set as-path prepend {{ DEVICE_METADATA['localhost']['bgp_asn'] }} -{% endif %} -! diff --git a/dockers/docker-fpm-quagga/critical_processes b/dockers/docker-fpm-quagga/critical_processes deleted file mode 100644 index 2dceb501e3..0000000000 --- a/dockers/docker-fpm-quagga/critical_processes +++ /dev/null @@ -1,4 +0,0 @@ -program:zebra -program:bgpd -program:fpmsyncd -program:bgpcfgd diff --git a/dockers/docker-fpm-quagga/isolate.j2 b/dockers/docker-fpm-quagga/isolate.j2 deleted file mode 100755 index 9d19f9f409..0000000000 --- a/dockers/docker-fpm-quagga/isolate.j2 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -## vtysh only accepts script in stdin, so cannot be directly used in shebang -## Cut the tail of this script and feed vtysh stdin -sed -n -e '9,$p' < "$0" | vtysh "$@" -## Exit with vtysh return code -exit $? - -## vtysh script start from next line, which line number MUST equal in 'sed' command above - -configure terminal - router bgp {{ DEVICE_METADATA['localhost']['bgp_asn'] }} -{% for neighbor_addr in BGP_NEIGHBOR %} -{% if neighbor_addr | ipv4 %} - neighbor {{ neighbor_addr }} route-map ISOLATE out -{% else %} - address-family ipv6 - neighbor {{ neighbor_addr }} route-map ISOLATE out - exit-address-family -{% endif %} -{% endfor %} - exit -exit - -{% for neighbor_addr in BGP_NEIGHBOR %} -clear ip bgp {{ neighbor_addr }} soft out -{% endfor %} diff --git a/dockers/docker-fpm-quagga/start.sh b/dockers/docker-fpm-quagga/start.sh deleted file mode 100755 index 37d9c5072d..0000000000 --- a/dockers/docker-fpm-quagga/start.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -mkdir -p /etc/quagga - -CFGGEN_PARAMS=" \ - -d \ - -y /etc/sonic/constants.yml \ - -t /usr/share/sonic/templates/bgpd.conf.j2,/etc/quagga/bgpd.conf \ - -t /usr/share/sonic/templates/zebra.conf.j2,/etc/quagga/zebra.conf \ - -t /usr/share/sonic/templates/isolate.j2,/usr/sbin/bgp-isolate \ - -t /usr/share/sonic/templates/unisolate.j2,/usr/sbin/bgp-unisolate \ -" -sonic-cfggen $CFGGEN_PARAMS - -chown root:root /usr/sbin/bgp-isolate -chmod 0755 /usr/sbin/bgp-isolate - -chown root:root /usr/sbin/bgp-unisolate -chmod 0755 /usr/sbin/bgp-unisolate - -mkdir -p /var/sonic -echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status - -rm -f /var/run/rsyslogd.pid - -supervisorctl start bgpcfgd - -supervisorctl start rsyslogd - -# Start Quagga processes -supervisorctl start zebra -supervisorctl start bgpd - -supervisorctl start fpmsyncd diff --git a/dockers/docker-fpm-quagga/supervisord.conf b/dockers/docker-fpm-quagga/supervisord.conf deleted file mode 100644 index 69258ada03..0000000000 --- a/dockers/docker-fpm-quagga/supervisord.conf +++ /dev/null @@ -1,66 +0,0 @@ -[supervisord] -logfile_maxbytes=1MB -logfile_backups=2 -nodaemon=true - -[eventlistener:supervisor-proc-exit-listener] -command=/usr/bin/supervisor-proc-exit-listener --container-name bgp -events=PROCESS_STATE_EXITED,PROCESS_STATE_RUNNING -autostart=true -autorestart=unexpected -buffer_size=1024 - -[program:start.sh] -command=/usr/bin/start.sh -priority=1 -autostart=true -autorestart=false -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - -[program:bgpcfgd] -command=/usr/bin/bgpcfgd -priority=2 -autostart=false -autorestart=false -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - -[program:rsyslogd] -command=/usr/sbin/rsyslogd -n -priority=3 -autostart=false -autorestart=unexpected -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - -[program:zebra] -command=/usr/lib/quagga/zebra -A 127.0.0.1 -priority=4 -autostart=false -autorestart=false -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - -[program:bgpd] -command=/usr/lib/quagga/bgpd -A 127.0.0.1 -F -priority=5 -stopsignal=KILL -autostart=false -autorestart=false -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - -[program:fpmsyncd] -command=fpmsyncd -priority=6 -autostart=false -autorestart=false -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog diff --git a/dockers/docker-fpm-quagga/unisolate.j2 b/dockers/docker-fpm-quagga/unisolate.j2 deleted file mode 100755 index abd6a912c0..0000000000 --- a/dockers/docker-fpm-quagga/unisolate.j2 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -## vtysh only accepts script in stdin, so cannot be directly used in shebang -## Cut the tail of this script and feed vtysh stdin -sed -n -e '9,$p' < "$0" | vtysh "$@" -## Exit with vtysh return code -exit $? - -## vtysh script start from next line, which line number MUST equal in 'sed' command above - -configure terminal - router bgp {{ DEVICE_METADATA['localhost']['bgp_asn'] }} -{% for neighbor_ip in BGP_NEIGHBOR %} -{% if neighbor_ip | ipv4 %} - no neighbor {{ neighbor_ip }} route-map ISOLATE out -{% else %} - address-family ipv6 - no neighbor {{ neighbor_ip }} route-map ISOLATE out - exit-address-family -{% endif %} -{% endfor %} - exit -exit - -{% for neighbor_ip in BGP_NEIGHBOR %} -clear ip bgp {{ neighbor_ip }} soft out -{% endfor %} diff --git a/dockers/docker-fpm-quagga/zebra.conf.j2 b/dockers/docker-fpm-quagga/zebra.conf.j2 deleted file mode 100644 index c0357eaed8..0000000000 --- a/dockers/docker-fpm-quagga/zebra.conf.j2 +++ /dev/null @@ -1,78 +0,0 @@ -! -{% block banner %} -! =========== Managed by sonic-cfggen DO NOT edit manually! ==================== -! generated by templates/quagga/zebra.conf.j2 using config DB data -! file: zebra.conf -! -{% endblock banner %} -! -{% block sys_init %} -hostname {{ DEVICE_METADATA['localhost']['hostname'] }} -password zebra -enable password zebra -{% endblock sys_init %} -! -{% block interfaces %} -! Enable link-detect (default disabled) -{% for (name, prefix) in INTERFACE|pfx_filter %} -interface {{ name }} -link-detect -! -{% endfor %} -{% for pc in PORTCHANNEL %} -interface {{ pc }} -link-detect -! -{% endfor %} -{% endblock interfaces %} -! -{% block default_route %} -! set static default route to mgmt gateway as a backup to learned default -{% for (name, prefix) in MGMT_INTERFACE|pfx_filter %} -{% if prefix | ipv4 %} -ip route 0.0.0.0/0 {{ MGMT_INTERFACE[(name, prefix)]['gwaddr'] }} 200 -{% endif %} -{% endfor %} -{% endblock default_route %} -! -{% block source_loopback %} -{% set lo_ipv4_addrs = [] %} -{% set lo_ipv6_addrs = [] %} -{% if LOOPBACK_INTERFACE %} -{% for (name, prefix) in LOOPBACK_INTERFACE|pfx_filter %} -{% if name == 'Loopback0' %} -{% if prefix | ipv6 %} -{% if lo_ipv6_addrs.append(prefix) %} -{% endif %} -{% else %} -{% if lo_ipv4_addrs.append(prefix) %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{% endif %} -! Set ip source to loopback for bgp learned routes -{% if lo_ipv4_addrs|length > 0 -%} -route-map RM_SET_SRC permit 10 - set src {{ lo_ipv4_addrs[0] | ip }} -! -{% endif %} -{% if lo_ipv6_addrs|length > 0 %} -route-map RM_SET_SRC6 permit 10 - set src {{ lo_ipv6_addrs[0] | ip }} -! -{% endif %} -ip protocol bgp route-map RM_SET_SRC -! -{% if lo_ipv6_addrs|length > 0 %} -ipv6 protocol bgp route-map RM_SET_SRC6 -! -{% endif %} -{% endblock source_loopback %} -! -{% block logging %} -log syslog informational -log facility local4 -{% endblock logging %} -! - diff --git a/platform/vs/docker-sonic-vs.mk b/platform/vs/docker-sonic-vs.mk index c48c8f12c7..6667c4abba 100644 --- a/platform/vs/docker-sonic-vs.mk +++ b/platform/vs/docker-sonic-vs.mk @@ -34,9 +34,7 @@ $(DOCKER_SONIC_VS)_DEPENDS += $(SWSS_DBG) \ $(SYNCD_VS_DBG) endif -ifeq ($(SONIC_ROUTING_STACK), quagga) -$(DOCKER_SONIC_VS)_DEPENDS += $(QUAGGA) -else ifeq ($(SONIC_ROUTING_STACK), frr) +ifeq ($(SONIC_ROUTING_STACK), frr) $(DOCKER_SONIC_VS)_DEPENDS += $(FRR) else $(DOCKER_SONIC_VS)_DEPENDS += $(GOBGP) diff --git a/rules/config b/rules/config index d8adb345e6..3887f8ff42 100644 --- a/rules/config +++ b/rules/config @@ -69,7 +69,7 @@ SONIC_USE_PDDF_FRAMEWORK = y # SONIC_ROUTING_STACK - specify the routing-stack being elected to drive SONiC's control-plane. # Supported routing stacks on SONiC are: -# routing-stacks: quagga, frr. +# routing-stacks: frr. SONIC_ROUTING_STACK = frr # ENABLE_SYNCD_RPC - build docker-syncd with rpc packages for testing purposes. diff --git a/rules/docker-fpm-gobgp.dep b/rules/docker-fpm-gobgp.dep deleted file mode 100644 index 4cbb495787..0000000000 --- a/rules/docker-fpm-gobgp.dep +++ /dev/null @@ -1,10 +0,0 @@ - -DPATH := $($(DOCKER_FPM_GOBGP)_PATH) -DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/docker-fpm-gobgp.mk rules/docker-fpm-gobgp.dep -DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) -DEP_FILES += $(shell git ls-files $(DPATH)) - -$(DOCKER_FPM_GOBGP)_CACHE_MODE := GIT_CONTENT_SHA -$(DOCKER_FPM_GOBGP)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) -$(DOCKER_FPM_GOBGP)_DEP_FILES := $(DEP_FILES) - diff --git a/rules/docker-fpm-gobgp.mk b/rules/docker-fpm-gobgp.mk deleted file mode 100644 index a773651ae1..0000000000 --- a/rules/docker-fpm-gobgp.mk +++ /dev/null @@ -1,16 +0,0 @@ -# docker image for fpm-gobgp - -DOCKER_FPM_GOBGP = docker-fpm-gobgp.gz -$(DOCKER_FPM_GOBGP)_PATH = $(DOCKERS_PATH)/docker-fpm-gobgp -$(DOCKER_FPM_GOBGP)_DEPENDS += $(GOBGP) -$(DOCKER_FPM_GOBGP)_LOAD_DOCKERS += $(DOCKER_FPM_QUAGGA) - -$(DOCKER_FPM_GOBGP)_VERSION = 1.0.0 -$(DOCKER_FPM_GOBGP)_PACKAGE_NAME = fpm-gobgp - -SONIC_DOCKER_IMAGES += $(DOCKER_FPM_GOBGP) - -$(DOCKER_FPM_GOBGP)_CONTAINER_NAME = bgp -$(DOCKER_FPM_GOBGP)_RUN_OPT += --privileged -t -$(DOCKER_FPM_GOBGP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro -$(DOCKER_FPM_GOBPG)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) diff --git a/rules/docker-fpm-quagga.dep b/rules/docker-fpm-quagga.dep deleted file mode 100644 index 987e22b596..0000000000 --- a/rules/docker-fpm-quagga.dep +++ /dev/null @@ -1,10 +0,0 @@ - -DPATH := $($(DOCKER_FPM_QUAGGA)_PATH) -DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/docker-fpm-quagga.mk rules/docker-fpm-quagga.dep -DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) -DEP_FILES += $(shell git ls-files $(DPATH)) - -$(DOCKER_FPM_QUAGGA)_CACHE_MODE := GIT_CONTENT_SHA -$(DOCKER_FPM_QUAGGA)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) -$(DOCKER_FPM_QUAGGA)_DEP_FILES := $(DEP_FILES) - diff --git a/rules/docker-fpm-quagga.mk b/rules/docker-fpm-quagga.mk deleted file mode 100644 index 2d11ed7947..0000000000 --- a/rules/docker-fpm-quagga.mk +++ /dev/null @@ -1,20 +0,0 @@ -# docker image for fpm-quagga - -DOCKER_FPM_QUAGGA = docker-fpm-quagga.gz -$(DOCKER_FPM_QUAGGA)_PATH = $(DOCKERS_PATH)/docker-fpm-quagga -$(DOCKER_FPM_QUAGGA)_DEPENDS += $(QUAGGA) $(SWSS) -$(DOCKER_FPM_QUAGGA)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE) - -$(DOCKER_FPM_QUAGGA)_VERSION = 1.0.0 -$(DOCKER_FPM_QUAGGA)_PACKAGE_NAME = fpm-quagga - -SONIC_DOCKER_IMAGES += $(DOCKER_FPM_QUAGGA) - -$(DOCKER_FPM_QUAGGA)_CONTAINER_NAME = bgp -$(DOCKER_FPM_QUAGGA)_RUN_OPT += --privileged -t -$(DOCKER_FPM_QUAGGA)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro - -$(DOCKER_FPM_QUAGGA)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) - -$(DOCKER_FPM_QUAGGA)_BASE_IMAGE_FILES += vtysh:/usr/bin/vtysh -$(DOCKER_FPM_QUAGGA)_BASE_IMAGE_FILES += rvtysh:/usr/bin/rvtysh diff --git a/rules/docker-fpm.mk b/rules/docker-fpm.mk index 72d89999c4..5490c36ba7 100644 --- a/rules/docker-fpm.mk +++ b/rules/docker-fpm.mk @@ -1,8 +1,6 @@ # Docker-fpm rule-file is simply a wrapper containing routing-stack selection logic. -ifeq ($(SONIC_ROUTING_STACK), quagga) -SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_FPM_QUAGGA) -else ifeq ($(SONIC_ROUTING_STACK), frr) +ifeq ($(SONIC_ROUTING_STACK), frr) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_FPM_FRR) SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_FPM_FRR_DBG) else diff --git a/rules/quagga.dep b/rules/quagga.dep deleted file mode 100644 index abaf234a4f..0000000000 --- a/rules/quagga.dep +++ /dev/null @@ -1,13 +0,0 @@ - -SPATH := $($(QUAGGA)_SRC_PATH) -DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/quagga.mk rules/quagga.dep -DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) -SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) - -#DPKG_FRK -$(QUAGGA)_CACHE_MODE := GIT_CONTENT_SHA -$(QUAGGA)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) -$(QUAGGA)_DEP_FILES := $(DEP_FILES) -$(QUAGGA)_SMDEP_FILES := $(SMDEP_FILES) -$(QUAGGA)_SMDEP_PATHS := $(SPATH) - diff --git a/rules/quagga.mk b/rules/quagga.mk deleted file mode 100644 index 2caef76b2c..0000000000 --- a/rules/quagga.mk +++ /dev/null @@ -1,11 +0,0 @@ -# quagga package - -QUAGGA_VERSION_FULL = 0.99.24.1-2.1 - -QUAGGA = quagga_$(QUAGGA_VERSION_FULL)_$(CONFIGURED_ARCH).deb -$(QUAGGA)_DEPENDS += $(LIBSNMP_DEV) -$(QUAGGA)_SRC_PATH = $(SRC_PATH)/sonic-quagga -SONIC_DPKG_DEBS += $(QUAGGA) - -QUAGGA_DBG = quagga-dbg_$(QUAGGA_VERSION_FULL)_$(CONFIGURED_ARCH).deb -$(eval $(call add_derived_package,$(QUAGGA),$(QUAGGA_DBG))) diff --git a/rules/sonic-config.dep b/rules/sonic-config.dep index 61202e5675..794d76b284 100644 --- a/rules/sonic-config.dep +++ b/rules/sonic-config.dep @@ -4,7 +4,7 @@ SPATH := $($(SONIC_CONFIG_ENGINE_PY2)_SRC_PATH) DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-config.mk rules/sonic-config.dep DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) DEP_FILES += $(shell git ls-files $(SPATH)) -DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-fpm-quagga/bgpd.conf.j2 dockers/docker-fpm-quagga/zebra.conf.j2 dockers/docker-orchagent/ipinip.json.j2 device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/qos.json.j2 files/build_templates/qos_config.j2 device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/qos.json.j2 dockers/docker-orchagent/switch.json.j2 files/image_config/constants/constants.yml +DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-orchagent/ipinip.json.j2 device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/qos.json.j2 files/build_templates/qos_config.j2 device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/qos.json.j2 dockers/docker-orchagent/switch.json.j2 files/image_config/constants/constants.yml $(SONIC_CONFIG_ENGINE_PY2)_CACHE_MODE := GIT_CONTENT_SHA $(SONIC_CONFIG_ENGINE_PY2)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index 8032d70eb2..5329220838 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -93,21 +93,6 @@ class TestJ2Files(TestCase): self.run_script(argument) self.assertTrue(filecmp.cmp(expected_mgmt_ipv6, self.output_file)) - def test_bgpd_quagga(self): - conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-quagga', 'bgpd.conf.j2') - argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + conf_template + ' > ' + self.output_file - self.run_script(argument) - original_filename = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'bgpd_quagga.conf') - r = filecmp.cmp(original_filename, self.output_file) - diff_output = self.run_diff(original_filename, self.output_file) if not r else "" - self.assertTrue(r, "Diff:\n" + diff_output) - - def test_zebra_quagga(self): - conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-quagga', 'zebra.conf.j2') - argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + conf_template + ' > ' + self.output_file - self.run_script(argument) - self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'zebra_quagga.conf'), self.output_file)) - def test_ipinip(self): ipinip_file = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-orchagent', 'ipinip.json.j2') argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + ipinip_file + ' > ' + self.output_file diff --git a/src/sonic-quagga b/src/sonic-quagga deleted file mode 160000 index e3b3b634e7..0000000000 --- a/src/sonic-quagga +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e3b3b634e76b53cc4dce9301839451846eea7415