Skip to content

Commit dd75a8f

Browse files
dziedjanmcgrof
authored andcommitted
crda: db2rd, parse/print CAC time
db2rd, parse and print DFS CAC time Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
1 parent 2019d70 commit dd75a8f

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

crda.c

+3
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ static int put_reg_rule(const struct ieee80211_reg_rule *rule, struct nl_msg *ms
131131
NLA_PUT_U32(msg, NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, power_rule->max_antenna_gain);
132132
NLA_PUT_U32(msg, NL80211_ATTR_POWER_RULE_MAX_EIRP, power_rule->max_eirp);
133133

134+
if (rule->dfs_cac_ms)
135+
NLA_PUT_U32(msg, NL80211_ATTR_DFS_CAC_TIME, rule->dfs_cac_ms);
136+
134137
return 0;
135138

136139
nla_put_failure:

reglib.c

+14-1
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,11 @@ static void print_reg_rule(const struct ieee80211_reg_rule *rule)
723723
else
724724
printf("N/A)");
725725

726+
if (rule->dfs_cac_ms)
727+
printf(", (%u)", rule->dfs_cac_ms);
728+
else
729+
printf(", (N/A)");
730+
726731
if (rule->flags & RRF_NO_OFDM)
727732
printf(", NO-OFDM");
728733
if (rule->flags & RRF_NO_CCK)
@@ -801,6 +806,7 @@ static int reglib_parse_rule(FILE *fp, struct ieee80211_reg_rule *reg_rule)
801806
char *line_p;
802807
int hits, r = 0;
803808
float start_freq_khz, end_freq_khz, max_bandwidth_khz, max_eirp;
809+
unsigned int dfs_cac_ms = 0;
804810

805811
memset(line, 0, sizeof(line));
806812
line_p = fgets(line, sizeof(line), fp);
@@ -846,8 +852,15 @@ static int reglib_parse_rule(FILE *fp, struct ieee80211_reg_rule *reg_rule)
846852

847853
/* Next get optional arguments (flags ...) */
848854
strsep(&line_p, ",");
849-
if (line_p)
855+
if (line_p) {
856+
/* Check DFS CAC time */
857+
hits = sscanf(line_p, " (%u)", &dfs_cac_ms);
858+
if (hits == 1)
859+
reg_rule->dfs_cac_ms = dfs_cac_ms;
860+
861+
/* Check flags */
850862
reg_rule->flags = reglib_parse_rule_flag(line_p);
863+
}
851864

852865
return r;
853866
}

reglib.h

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct ieee80211_reg_rule {
2828
struct ieee80211_freq_range freq_range;
2929
struct ieee80211_power_rule power_rule;
3030
uint32_t flags;
31+
uint32_t dfs_cac_ms;
3132
};
3233

3334
struct ieee80211_regdomain {

0 commit comments

Comments
 (0)