Page MenuHomeVyOS Platform

vyos_route_map doesn't support some additive route-map options
Closed, ResolvedPublicFEATURE REQUEST

Description

Options like:

  • set community add '4444:4'
  • set as-path-prepend '4444 4444 4444'

Don't work as expected:

  • Gather ignores the former
  • Gather skips the anything after the first item in the latter

Similar problems in rendering

set policy route-map to-upstream rule 1 action 'permit'
set policy route-map to-upstream rule 1 match community community-list 'upstream-transit-pad-3'
set policy route-map to-upstream rule 1 set as-path-prepend '65535 65535 65535'
set policy route-map to-upstream rule 2 action 'permit'
set policy route-map to-upstream rule 2 match community community-list 'upstream-transit-pad-2'
set policy route-map to-upstream rule 2 set as-path-prepend '65535 65535'
set policy route-map to-upstream rule 3 action 'permit'
set policy route-map to-upstream rule 3 match community community-list 'upstream-transit-pad-1'
set policy route-map to-upstream rule 3 set as-path-prepend '65535'
set policy route-map to-upstream rule 4 action 'deny'
set policy route-map to-upstream rule 4 match community community-list 'upstream-transit-suppress'
set policy route-map to-upstream rule 5 action 'permit'
set policy route-map to-upstream rule 5 match community community-list 'transit'

Gathers to:

{
	"entries": [{
			"action": "permit",
			"match": {
				"community": {
					"community_list": "upstream-transit-pad-3"
				}
			},
			"sequence": 1
		}, {
			"action": "permit",
			"match": {
				"community": {
					"community_list": "upstream-transit-pad-2"
				}
			},
			"sequence": 2
		}, {
			"action": "permit",
			"match": {
				"community": {
					"community_list": "upstream-transit-pad-1"
				}
			},
			"sequence": 3,
			"set": {
				"as_path_prepend": "65535"
			}
		}, {
			"action": "deny",
			"match": {
				"community": {
					"community_list": "upstream-transit-suppress"
				}
			},
			"sequence": 4
		}, {
			"action": "permit",
			"match": {
				"community": {
					"community_list": "transit"
				}
			},
			"sequence": 5
		}
	],
	"route_map": "to-upstream"
}

Note the missing as_path_prepend when the string has more a space in it and more than one AS.
Similarly, string-based lists for communities don't work for 1.3 (nor does an additive and a single AS).

On 1.4:

set route-map set-transit-pad-two-upstream rule 1 action 'permit'
set route-map set-transit-pad-two-upstream rule 1 set community add '65535:1'
set route-map set-transit-pad-two-upstream rule 1 set community add '65535:1002'

results in:

{
    "entries": [
        {
            "action": "permit",
            "sequence": 1
        }
    ],
    "route_map": "set-transit-pad-two-hurricane"
}

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)