Skip to content

Commit

Permalink
Merge pull request #4373 from aapostoliuk/T7158-circinus
Browse files Browse the repository at this point in the history
policy: T7158: Added match source-vrf to route-map
  • Loading branch information
c-po authored Feb 27, 2025
2 parents 92ad401 + 757fb7c commit 37ec095
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
3 changes: 3 additions & 0 deletions data/templates/frr/policy.frr.j2
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,9 @@ route-map {{ route_map }} {{ rule_config.action }} {{ rule }}
{% if rule_config.match.rpki is vyos_defined %}
match rpki {{ rule_config.match.rpki }}
{% endif %}
{% if rule_config.match.source_vrf is vyos_defined %}
match source-vrf {{ rule_config.match.source_vrf }}
{% endif %}
{% if rule_config.match.tag is vyos_defined %}
match tag {{ rule_config.match.tag }}
{% endif %}
Expand Down
14 changes: 14 additions & 0 deletions interface-definitions/policy.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,20 @@
</constraint>
</properties>
</leafNode>
<leafNode name="source-vrf">
<properties>
<help>Source vrf</help>
#include <include/constraint/vrf.xml.i>
<valueHelp>
<format>txt</format>
<description>VRF instance name</description>
</valueHelp>
<completionHelp>
<path>vrf name</path>
<list>default</list>
</completionHelp>
</properties>
</leafNode>
#include <include/policy/tag.xml.i>
</children>
</node>
Expand Down
15 changes: 15 additions & 0 deletions smoketest/scripts/cli/test_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -1149,6 +1149,16 @@ def test_route_map(self):
},
},
},
'vrf-match': {
'rule': {
'10': {
'action': 'permit',
'match': {
'source-vrf': 'TEST',
},
},
},
},
}

self.cli_set(['policy', 'access-list', access_list, 'rule', '10', 'action', 'permit'])
Expand Down Expand Up @@ -1260,6 +1270,8 @@ def test_route_map(self):
self.cli_set(path + ['rule', rule, 'match', 'rpki', 'valid'])
if 'protocol' in rule_config['match']:
self.cli_set(path + ['rule', rule, 'match', 'protocol', rule_config['match']['protocol']])
if 'source-vrf' in rule_config['match']:
self.cli_set(path + ['rule', rule, 'match', 'source-vrf', rule_config['match']['source-vrf']])
if 'tag' in rule_config['match']:
self.cli_set(path + ['rule', rule, 'match', 'tag', rule_config['match']['tag']])

Expand Down Expand Up @@ -1438,6 +1450,9 @@ def test_route_map(self):
if 'rpki-valid' in rule_config['match']:
tmp = f'match rpki valid'
self.assertIn(tmp, config)
if 'source-vrf' in rule_config['match']:
tmp = f'match source-vrf {rule_config["match"]["source-vrf"]}'
self.assertIn(tmp, config)
if 'tag' in rule_config['match']:
tmp = f'match tag {rule_config["match"]["tag"]}'
self.assertIn(tmp, config)
Expand Down

0 comments on commit 37ec095

Please sign in to comment.