iproute2: ip address add prefer keyword confusion

3 messages, 3 authors, 2021-05-28 · open the first message on its own page

iproute2: ip address add prefer keyword confusion

From: Norman Rasmussen <hidden>
Date: 2021-05-27 20:58:16

commit 78d04c7b27cf ("ipaddress: Add support for address metric")
added "priority" and "preference" as aliases for the "metric" keyword,
but they are entirely undocumented.

I only noticed because I was adding addresses with a preferred
lifetime, but I was using "pref" as the keyword. The metric code was
added _above_ the lifetime code, so after the change "pref" matches
"preference", instead of "preferred_lft".

Is there an existing way to deal with conflicts between keyword
prefixes? Should "prefer" (or shorter) fail with a clear error
instead? Should the metric code have been added below the lifetime
code? Should it be moved or is it too late?

-- 
- Norman Rasmussen
 - Email: norman@rasmussen.co.za
 - Home page: http://norman.rasmussen.co.za/

Re: iproute2: ip address add prefer keyword confusion

From: David Ahern <hidden>
Date: 2021-05-28 04:36:14

On 5/27/21 2:58 PM, Norman Rasmussen wrote:
commit 78d04c7b27cf ("ipaddress: Add support for address metric")
added "priority" and "preference" as aliases for the "metric" keyword,
but they are entirely undocumented.

I only noticed because I was adding addresses with a preferred
lifetime, but I was using "pref" as the keyword. The metric code was
added _above_ the lifetime code, so after the change "pref" matches
"preference", instead of "preferred_lft".

Is there an existing way to deal with conflicts between keyword
prefixes? Should "prefer" (or shorter) fail with a clear error
instead? Should the metric code have been added below the lifetime
code? Should it be moved or is it too late?
It is in general a known problem with iproute2's use of "matches" to
allow shorthand commands.

The change where "pref" goes to metric vs "preferred_lft" was
unintentional. At this point (3 years after the commit) it would be hard
to revert the change.

Re: iproute2: ip address add prefer keyword confusion

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2021-05-28 18:02:07

On Thu, 27 May 2021 22:31:24 -0600
David Ahern [off-list ref] wrote:
On 5/27/21 2:58 PM, Norman Rasmussen wrote:
quoted
commit 78d04c7b27cf ("ipaddress: Add support for address metric")
added "priority" and "preference" as aliases for the "metric" keyword,
but they are entirely undocumented.

I only noticed because I was adding addresses with a preferred
lifetime, but I was using "pref" as the keyword. The metric code was
added _above_ the lifetime code, so after the change "pref" matches
"preference", instead of "preferred_lft".

Is there an existing way to deal with conflicts between keyword
prefixes? Should "prefer" (or shorter) fail with a clear error
instead? Should the metric code have been added below the lifetime
code? Should it be moved or is it too late?
  
It is in general a known problem with iproute2's use of "matches" to
allow shorthand commands.

The change where "pref" goes to metric vs "preferred_lft" was
unintentional. At this point (3 years after the commit) it would be hard
to revert the change.
Agreed, matches() is a real bug trap.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help