Page MenuHomeVyOS Platform

conf; policy prefix-list: ge is not allowed to be the same as prefix length
Closed, ResolvedPublic

Description

afics@router01# commit
[ policy prefix-list AS65200-V4 rule 100 ]
ge must be greater than prefix length

[[policy prefix-list AS65200-V4]] failed
[ policy prefix-list6 AS65200-V6 rule 100 ]
ge must be greater than prefix length

[[policy prefix-list6 AS65200-V6]] failed
Commit failed
[edit policy]
afics@router01# show prefix-list AS65200-V4 | strip-private
+rule 100 {
+    action permit
+    ge 28
+    le 32
+    prefix xxx.xxx.1.80/28
+}
[edit policy]
afics@router01# show prefix-list6 AS65200-V6 | strip-private
+rule 100 {
+    action permit
+    ge 56
+    le 128
+    prefix xxxx:xxxx:18c:dd00::/56
+}
[edit policy]
afics@router01#

This route-map is to be applied to a BGP peering on the inbound direction. The intent is to allow the peer to announce xxxx:xxxx:18c:dd00::/56 itself as well as sub-prefixes down to the size of 128. Same for IPv4. This is a valid configuration and other platforms allow this.

Details

Difficulty level
Unknown (require assessment)
Version
1.3-rolling-202012160217
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

Unknown Object (User) renamed this task from conf; policy prefix-list: ge is not allowed to be the same as prefix lentgh to conf; policy prefix-list: ge is not allowed to be the same as prefix length.Dec 17 2020, 2:00 PM
Unknown Object (User) created this task.
Unknown Object (User) created this object in space S1 VyOS Public.

It's FRR logic.

r11-roll(config)# ip prefix-list FOO permit 1.1.1.80/28 ge 28 le 32
% Invalid prefix range for 1.1.1.80/28, make sure: len < ge-value <= le-value

In your example the use of ge is redundant as as you have allready specified a limiting subnettmask you cant go outside the boundry of the prefix specified.

In your example you should only have le 32, as that will mean all prefixes up to /32 inside the prefix you specified(the /28).

To make the code work as you intend just remove the "ge 28" :)

Unknown Object (User) closed this task as Resolved.Dec 18 2020, 7:46 AM
Unknown Object (User) claimed this task.

@runar You're right, my bad.

Thanks to you both!