[FRR] Enable SNMP support (#2981)
This is a follow-up of sonic-snmpagent PR 92 Now that licensing issues have been solved FRR is distributed with SNMP support compiled-in. This PR adds the last bits of configuration to get the frr-snmp debian packages added to the docker container and the config bits to enable the snmp module in FRR This PR brings the functionality of being able to poll bgpd for routes and peer status. Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>
This commit is contained in:
parent
c67c29f7ae
commit
18544530d3
@ -41,5 +41,6 @@ RUN rm -rf /debs ~/.cache
|
||||
COPY ["bgpcfgd", "start.sh", "/usr/bin/"]
|
||||
COPY ["*.j2", "/usr/share/sonic/templates/"]
|
||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||
COPY ["snmp.conf", "/etc/snmp/frr.conf"]
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
||||
|
@ -11,6 +11,7 @@ hostname {{ DEVICE_METADATA['localhost']['hostname'] }}
|
||||
password zebra
|
||||
log syslog informational
|
||||
log facility local4
|
||||
agentx
|
||||
! enable password {# {{ en_passwd }} TODO: param needed #}
|
||||
{% endblock system_init %}
|
||||
!
|
||||
|
@ -11,6 +11,7 @@ hostname {{ DEVICE_METADATA['localhost']['hostname'] }}
|
||||
password zebra
|
||||
log syslog informational
|
||||
log facility local4
|
||||
agentx
|
||||
! enable password {# {{ en_passwd }} TODO: param needed #}
|
||||
{% endblock system_init %}
|
||||
!
|
||||
|
7
dockers/docker-fpm-frr/snmp.conf
Normal file
7
dockers/docker-fpm-frr/snmp.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# This line allows the FRR docker to speak with the snmp container
|
||||
# Make sure this line matches the one in the snmp docker
|
||||
# snmp:/etc/snmp/snmpd.conf
|
||||
# To verify this works you need to have a valid bgp daemon running and configured
|
||||
# Check that a snmpwalk to 1.3.6.1.2.1.15 gives an output
|
||||
# Further verification: 1.3.6.1.2.1.15.2.0 = INTEGER: 65000 the returned value should be the confiugred ASN
|
||||
agentXSocket tcp:localhost:3161
|
@ -31,7 +31,7 @@ stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:zebra]
|
||||
command=/usr/lib/frr/zebra -A 127.0.0.1 -s 90000000 -M fpm
|
||||
command=/usr/lib/frr/zebra -A 127.0.0.1 -s 90000000 -M fpm -M snmp
|
||||
priority=4
|
||||
autostart=false
|
||||
autorestart=false
|
||||
@ -49,7 +49,7 @@ stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:bgpd]
|
||||
command=/usr/lib/frr/bgpd -A 127.0.0.1
|
||||
command=/usr/lib/frr/bgpd -A 127.0.0.1 -M snmp
|
||||
priority=5
|
||||
stopsignal=KILL
|
||||
autostart=false
|
||||
|
@ -118,6 +118,14 @@ load 12 10 5
|
||||
#
|
||||
# Run as an AgentX master agent
|
||||
master agentx
|
||||
# internal socket to allow extension to other docker containers
|
||||
# Currently the other container using this is docker-fpm-frr
|
||||
# make sure this line matches bgp:/etc/snmp/frr.conf
|
||||
# please see testing procedure in the same file to verify this works
|
||||
# to verify the SNMP docker side look for the following string in the log file:
|
||||
# INFO snmp-subagent [ax_interface] INFO: Using agentx socket type tcp with path tcp:localhost:3161
|
||||
# INFO supervisord snmp-subagent INFO:ax_interface:Using agentx socket type tcp with path tcp:localhost:3161
|
||||
agentxsocket tcp:localhost:3161
|
||||
|
||||
#
|
||||
# SysDescription pass-through
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
DOCKER_FPM_FRR = docker-fpm-frr.gz
|
||||
$(DOCKER_FPM_FRR)_PATH = $(DOCKERS_PATH)/docker-fpm-frr
|
||||
$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(SWSS) $(LIBYANG)
|
||||
$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG)
|
||||
$(DOCKER_FPM_FRR)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_FRR)
|
||||
|
||||
|
@ -18,4 +18,10 @@ $(eval $(call add_derived_package,$(FRR),$(FRR_PYTHONTOOLS)))
|
||||
FRR_DBG = frr-dbgsym_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
$(eval $(call add_derived_package,$(FRR),$(FRR_DBG)))
|
||||
|
||||
export FRR FRR_PYTHONTOOLS FRR_DBG
|
||||
FRR_SNMP = frr-snmp_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
$(eval $(call add_derived_package,$(FRR),$(FRR_SNMP)))
|
||||
|
||||
FRR_SNMP_DBG = frr-snmp-dbgsym_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_amd64.deb
|
||||
$(eval $(call add_derived_package,$(FRR),$(FRR_SNMP_DBG)))
|
||||
|
||||
export FRR FRR_PYTHONTOOLS FRR_DBG FRR_SNMP FRR_SNMP_DBG
|
||||
|
@ -8,6 +8,7 @@ hostname switch-t0
|
||||
password zebra
|
||||
log syslog informational
|
||||
log facility local4
|
||||
agentx
|
||||
! enable password !
|
||||
! Enable link-detect (default disabled)
|
||||
interface PortChannel01
|
||||
|
@ -3,7 +3,7 @@ SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = $(FRR)
|
||||
DERIVED_TARGET = $(FRR_PYTHONTOOLS) $(FRR_DBG)
|
||||
DERIVED_TARGET = $(FRR_PYTHONTOOLS) $(FRR_DBG) $(FRR_SNMP) $(FRR_SNMP_DBG)
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
# Build the package
|
||||
|
Loading…
Reference in New Issue
Block a user