[PATCH 3/6] common: add IEEE 802.11ah channel widths

James Ewing james at teledatics.com
Wed Oct 1 09:49:58 PDT 2025


---
 src/common/defs.h              | 12 ++++++++++++
 src/common/ieee802_11_common.c |  7 +++++++
 src/drivers/driver_common.c    | 20 ++++++++++++++++++++
 3 files changed, 39 insertions(+)

diff --git a/src/common/defs.h b/src/common/defs.h
index 0a79ba2a6..0204358f7 100644
--- a/src/common/defs.h
+++ b/src/common/defs.h
@@ -446,6 +446,13 @@ enum eap_proxy_sim_state {
 #define OCE_STA_CFON BIT(1)
 #define OCE_AP BIT(2)
 
+/* S1G channel bandwidth values in MHz */
+#define S1G_BANDWIDTH_1MHZ	1
+#define S1G_BANDWIDTH_2MHZ	2
+#define S1G_BANDWIDTH_4MHZ	4
+#define S1G_BANDWIDTH_8MHZ	8
+#define S1G_BANDWIDTH_16MHZ	16
+
 /* enum chan_width - Channel width definitions */
 enum chan_width {
 	CHAN_WIDTH_20_NOHT,
@@ -459,6 +466,11 @@ enum chan_width {
 	CHAN_WIDTH_6480,
 	CHAN_WIDTH_8640,
 	CHAN_WIDTH_320,
+	CHAN_WIDTH_1,
+	CHAN_WIDTH_2,
+	CHAN_WIDTH_4,
+	CHAN_WIDTH_8,
+	CHAN_WIDTH_16,
 	CHAN_WIDTH_UNKNOWN
 };
 
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index ae7a7647a..c3c01d44c 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -1661,6 +1661,13 @@ int ieee80211_chaninfo_to_channel(unsigned int freq, enum chan_width chanwidth,
 	case CHAN_WIDTH_40:
 		cw = CONF_OPER_CHWIDTH_USE_HT;
 		break;
+	case CHAN_WIDTH_16:
+	case CHAN_WIDTH_8:
+	case CHAN_WIDTH_4:
+	case CHAN_WIDTH_2:
+	case CHAN_WIDTH_1:
+		cw = CONF_OPER_CHWIDTH_USE_HT;
+		break;
 	case CHAN_WIDTH_80:
 		cw = CONF_OPER_CHWIDTH_80MHZ;
 		break;
diff --git a/src/drivers/driver_common.c b/src/drivers/driver_common.c
index 045c82967..0a9437808 100644
--- a/src/drivers/driver_common.c
+++ b/src/drivers/driver_common.c
@@ -126,6 +126,16 @@ const char * channel_width_to_string(enum chan_width width)
 		return "160 MHz";
 	case CHAN_WIDTH_320:
 		return "320 MHz";
+	case CHAN_WIDTH_1:
+		return "1 MHz";
+	case CHAN_WIDTH_2:
+		return "2 MHz";
+	case CHAN_WIDTH_4:
+		return "4 MHz";
+	case CHAN_WIDTH_8:
+		return "8 MHz";
+	case CHAN_WIDTH_16:
+		return "16 MHz";
 	default:
 		return "unknown";
 	}
@@ -147,6 +157,16 @@ int channel_width_to_int(enum chan_width width)
 		return 160;
 	case CHAN_WIDTH_320:
 		return 320;
+	case CHAN_WIDTH_1:
+		return 1;
+	case CHAN_WIDTH_2:
+		return 2;
+	case CHAN_WIDTH_4:
+		return 4;
+	case CHAN_WIDTH_8:
+		return 8;
+	case CHAN_WIDTH_16:
+		return 16;
 	default:
 		return 0;
 	}
-- 
2.43.0




More information about the Hostap mailing list