summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoragh <from-github-vyos@agh2342.de>2020-02-08 20:19:12 +0100
committeragh <from-github-vyos@agh2342.de>2020-02-09 02:13:26 +0100
commita7f329f129f5488feece70c8e775b7c9e7a1caf0 (patch)
treed7884ecf9b405c36a58f65fcfcc2609cfc4c2d6c
parente035548f88388cd12f54a94b4c89bac97ad09ba6 (diff)
downloadvyos-1x-a7f329f129f5488feece70c8e775b7c9e7a1caf0.tar.gz
vyos-1x-a7f329f129f5488feece70c8e775b7c9e7a1caf0.zip
service lldp: T2019: modify handling of interface 'all'
Modify lldpd config template in './src/conf_mode/lldp.py'. conf_mode uses 'all' to specify all interfaces. lldpd config file uses '*' to specify all interfaces. Both use an exclamation mark ('!') as prefix to disable lldp on an interface, eg. '!eth1' or '!all'. Add jinja2 template filters to create and merge following sub-lists a) take list of conf_mode lldp interfaces, remove every interface except 'all', replace 'all' with '*' -> support interface all b) take list of conf_mode lldp interfaces, remove every interface except '!all', replace '!all' with '!*' -> support interface all disabled c) take list of conf_mode lldp interfaces, remove every interface named 'all' or '!all' -> support any other interface
-rwxr-xr-xsrc/conf_mode/lldp.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/conf_mode/lldp.py b/src/conf_mode/lldp.py
index b664d9eba..b72916ab8 100755
--- a/src/conf_mode/lldp.py
+++ b/src/conf_mode/lldp.py
@@ -39,7 +39,7 @@ vyos_tmpl = """
configure system platform VyOS
configure system description "VyOS {{ options.description }}"
{% if options.listen_on -%}
-configure system interface pattern "{{ options.listen_on | join(",") }}"
+configure system interface pattern "{{ ( options.listen_on | select('equalto','all') | map('replace','all','*') | list + options.listen_on | select('equalto','!all') | map('replace','!all','!*') | list + options.listen_on | reject('equalto','all') | reject('equalto','!all') | list ) | unique | join(",") }}"
{%- endif %}
{% if options.mgmt_addr -%}
configure system ip management pattern {{ options.mgmt_addr | join(",") }}