From: Ping-Ke Shih <pkshih@xxxxxxxxxxx> For certain regulations, frequency range is outdoor only, which flag should be NO-INDOOR, but db2fw.py doesn't allow this flag. As suggestion, only fill NO-INDOOR flag in db.txt, but ignore this rule in parsing to binary. Suggested-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Link: https://lore.kernel.org/linux-wireless/5e433cd8d070682cb6ed31de3a2dd337e6f48b50.camel@xxxxxxxxxxxxxxxx/T/#t Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> --- v3: - new introduction by v3 --- dbparse.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dbparse.py b/dbparse.py index cc5012bc05bd..450406ff1b34 100755 --- a/dbparse.py +++ b/dbparse.py @@ -121,6 +121,9 @@ class FlagError(Exception): def __init__(self, flag): self.flag = flag +class IgnoreRule(Exception): + pass + @total_ordering class Permission(object): def __init__(self, freqband, power, flags, wmmrule): @@ -134,6 +137,9 @@ class Permission(object): for flag in flags: if not flag in flag_definitions: raise FlagError(flag) + # skip rule with NO-INDOOR so that kernel doesn't need special deal. + if flag == 'NO-INDOOR': + raise IgnoreRule() self.flags |= flag_definitions[flag] self.textflags = flags @@ -429,6 +435,8 @@ class DBParser(object): perm = Permission(b, p, flags, w) except FlagError as e: self._syntax_error("Invalid flag '%s'" % e.flag) + except IgnoreRule: + return for cname, c in self._current_countries.items(): if perm in c: self._warn('Rule "%s, %s" added to "%s" twice' % ( -- 2.25.1