diff options
| author | David <dferrandez@gmail.com> | 2022-07-26 16:36:46 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-26 17:36:46 +0200 | 
| commit | 8bbaafd554d003078607121e2de662c9c8edee40 (patch) | |
| tree | e552615804a2f87573552012dd8c00a7096ecd95 | |
| parent | 1589eefe8b24b66bda1e479a7a2179329792dcbd (diff) | |
| download | vyos-1x-8bbaafd554d003078607121e2de662c9c8edee40.tar.gz vyos-1x-8bbaafd554d003078607121e2de662c9c8edee40.zip | |
T4571: add sflow vrf to sflow agent address IP validation
| -rwxr-xr-x | src/conf_mode/flow_accounting_conf.py | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/src/conf_mode/flow_accounting_conf.py b/src/conf_mode/flow_accounting_conf.py index 7750c1247..7e16235c1 100755 --- a/src/conf_mode/flow_accounting_conf.py +++ b/src/conf_mode/flow_accounting_conf.py @@ -192,6 +192,11 @@ def verify(flow_config):                      raise ConfigError("All sFlow servers must use the same IP protocol")              else:                  sflow_collector_ipver = ip_address(server).version +	 +        # check if vrf is defined for Sflow +        sflow_vrf = None +        if 'vrf' in flow_config: +            sflow_vrf = flow_config['vrf']          # check agent-id for sFlow: we should avoid mixing IPv4 agent-id with IPv6 collectors and vice-versa          for server in flow_config['sflow']['server']: @@ -203,12 +208,12 @@ def verify(flow_config):          if 'agent_address' in flow_config['sflow']:              tmp = flow_config['sflow']['agent_address'] -            if not is_addr_assigned(tmp): +            if not is_addr_assigned(tmp, sflow_vrf):                  raise ConfigError(f'Configured "sflow agent-address {tmp}" does not exist in the system!')          # Check if configured netflow source-address exist in the system          if 'source_address' in flow_config['sflow']: -            if not is_addr_assigned(flow_config['sflow']['source_address']): +            if not is_addr_assigned(flow_config['sflow']['source_address'], sflow_vrf):                  tmp = flow_config['sflow']['source_address']                  raise ConfigError(f'Configured "sflow source-address {tmp}" does not exist on the system!') | 
