iprule: Allow specifying ports in hexadecimal notation

This will be useful when enabling port masks in the next patch.

Before:

 # ip rule add sport 0x1 table 100
 Invalid "sport"

After:

 # ip rule add sport 0x1 table 100
 $ ip rule show sport 0x1
 32765:  from all sport 1 lookup 100

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
Ido Schimmel
2025-02-25 11:09:15 +02:00
committed by David Ahern
parent 64680a2ec5
commit c7aa222948

View File

@@ -608,16 +608,16 @@ static void iprule_port_parse(char *arg, struct fib_rule_port_range *r)
if (sep) {
*sep = '\0';
if (get_u16(&r->start, arg, 10))
if (get_u16(&r->start, arg, 0))
invarg("invalid port range start", arg);
if (get_u16(&r->end, sep + 1, 10))
if (get_u16(&r->end, sep + 1, 0))
invarg("invalid port range end", sep + 1);
return;
}
if (get_u16(&r->start, arg, 10))
if (get_u16(&r->start, arg, 0))
invarg("invalid port", arg);
r->end = r->start;