--- a/interfaces/opensync.ovsschema +++ b/interfaces/opensync.ovsschema @@ -1419,6 +1419,15 @@ "max":1 } }, + "rx_chainmask": { + "type": { + "key": { + "type": "integer" + }, + "min":0, + "max":1 + } + }, "thermal_tx_chainmask": { "type": { "key": { @@ -1740,6 +1749,15 @@ "max":1 } }, + "rx_chainmask": { + "type": { + "key": { + "type": "integer" + }, + "min":0, + "max":1 + } + }, "thermal_tx_chainmask": { "type": { "key": { --- a/src/wm2/src/wm2_radio.c +++ b/src/wm2/src/wm2_radio.c @@ -581,6 +581,7 @@ wm2_rconf_changed(const struct schema_Wi CMP(CHANGED_INT, thermal_downgrade_temp); CMP(CHANGED_INT, thermal_upgrade_temp); CMP(CHANGED_INT, tx_chainmask); + CMP(CHANGED_INT, rx_chainmask); CMP(CHANGED_INT, tx_power); CMP(CHANGED_INT, bcn_int); CMP(CHANGED_INT, dfs_demo); --- a/src/wm2/src/wm2_radio1.c +++ b/src/wm2/src/wm2_radio1.c @@ -470,6 +470,13 @@ wm2_radio_equal( rconf_set->tx_chainmask_exists = true; } } + if (ovsdb_update_changed(mon, SCHEMA_COLUMN(Wifi_Radio_Config, rx_chainmask))) { + RADIO_EQUAL(SCHEMA_FIELD_CMP_INT(rconf, &rstate, rx_chainmask)); + if (!is_equal) { + rconf_set->rx_chainmask = rconf->rx_chainmask; + rconf_set->rx_chainmask_exists = true; + } + } if (ovsdb_update_changed(mon, SCHEMA_COLUMN(Wifi_Radio_Config, temperature_control))){ if (rconf->temperature_control_len == rstate.temperature_control_len) { for (index = 0; index < rconf->temperature_control_len; index++) {