Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
Current Doc:
<nidlist> :== <nidrange> [ ' ' <nidrange> ] <nidrange> :== <addrrange> '@' <net> <addrrange> :== '*' | <ipaddr_range> | <numaddr_range> <ipaddr_range> :== <numaddr_range>.<numaddr_range>.<numaddr_range>.<numaddr_range> <numaddr_range> :== <number> | <expr_list> <expr_list> :== '[' <range_expr> [ ',' <range_expr>] ']' <range_expr> :== <number> | <number> '-' <number> | <number> '-' <number> '/' <number> <net> :== <netname> | <netname><number> <netname> :== "lo" | "tcp" | "o2ib" | "gni" <number> :== <nonnegative decimal> | <hexadecimal>
I do not believe that <number> can be hex when specifying a NID. libcfs_str2nid() only processes the network number as an unsigned decimal.
The inline documentation in (both) nidstrings.c specifies struct nidrange this way:
/** * Nid range list syntax. * \verbatim * * <nidlist> :== <nidrange> [ ' ' <nidrange> ] * <nidrange> :== <addrrange> '@' <net> * <addrrange> :== '*' | * <ipaddr_range> | * <cfs_expr_list> * <ipaddr_range> :== <cfs_expr_list>.<cfs_expr_list>.<cfs_expr_list>. * <cfs_expr_list> * <cfs_expr_list> :== <number> | * <expr_list> * <expr_list> :== '[' <range_expr> [ ',' <range_expr>] ']' * <range_expr> :== <number> | * <number> '-' <number> | * <number> '-' <number> '/' <number> * <net> :== <netname> | <netname><number> * <netname> :== "lo" | "tcp" | "o2ib" | "cib" | "openib" | "iib" | * "vib" | "ra" | "elan" | "mx" | "ptl" * \endverbatim */