From 361af9f0cce6112f8a78590d2c797a9166277db2 Mon Sep 17 00:00:00 2001
From: Lejla Murselovic <lejla.murselovic@iopsys.eu>
Date: Mon, 16 May 2022 06:45:54 +0000
Subject: [PATCH] Backhaul link for R4/DE2.1

---
 src/wifi_dataelements.h | 53 +++++++++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 13 deletions(-)

diff --git a/src/wifi_dataelements.h b/src/wifi_dataelements.h
index 291245ef..a5e89e44 100644
--- a/src/wifi_dataelements.h
+++ b/src/wifi_dataelements.h
@@ -478,20 +478,8 @@ struct wifi_sp_rule {
 	struct list_head list;
 };
 
-enum network_link_type {
-	LINK_TYPE_NONE = 0,
-	LINK_TYPE_WIFI = 1,
-	LINK_TYPE_ETH = 3,
-};
-
-struct wifi_network_device_backhaul {
+struct wifi_backhaul_stats {
 	timestamp_t tsp;
-	enum network_link_type linktype;
-	uint8_t bsta_macaddr[6];
-	uint8_t upstream_bbss_macaddr[6];
-	uint8_t upstream_device_macaddr[6];
-	uint32_t num_curr_opclass;
-	struct list_head curr_opclasslist;	/* list of wifi_opclass_current_element */
 	uint64_t tx_bytes;
 	uint64_t rx_bytes;
 	uint32_t tx_pkts;
@@ -509,6 +497,43 @@ struct wifi_network_tspolicy {
 	bool foo;
 };
 
+enum network_link_type {
+	LINK_TYPE_NONE = 0,
+	LINK_TYPE_WIFI = 1,
+	LINK_TYPE_ETH = 2,
+	LINK_TYPE_MOCA = 3,
+	LINK_TYPE_GHN = 4,
+	LINK_TYPE_HPNA = 5,
+	LINK_TYPE_HOME = 6,
+	LINK_TYPE_UPA = 7,
+};
+
+struct wifi_network_device_backhaul {
+	enum network_link_type linktype;
+	uint8_t bsta_macaddr[6];
+	uint8_t upstream_device_macaddr[6];
+	uint8_t upstream_bbss_macaddr[6];
+	uint32_t num_curr_opclass;
+	struct list_head curr_opclasslist;	/* list of wifi_opclass_current_element */
+
+	struct wifi_backhaul_stats stats;
+};
+
+enum operation_mode {
+	NOT_SUPPORTED = 0,
+	SUPPORTED = 1,
+	RUNNING = 2,
+};
+
+struct wifi_multi_ap_device {
+	uint8_t oui[3];
+	timestamp_t last_contacttime;
+	struct wifi_network_device *dev_ref;
+	enum operation_mode controller_opmode;
+	enum operation_mode agent_opmode;
+	struct wifi_network_device_backhaul backhaul;
+};
+
 struct wifi_network_device {
 	uint8_t macaddr[6];        /* unique device-id: eui-48 address */
 	uint8_t map_caps[2];       /* multi-ap caps */
@@ -541,6 +566,8 @@ struct wifi_network_device {
 	struct list_head cac_statuslist;		/* list of wifi_cac_status */
 	struct list_head sp_rulelist;			/* list of wifi_sp_rule */
 
+	struct wifi_multi_ap_device multi_ap_device;
+
 	uint8_t dscp_mapping[64];
 	uint8_t max_prules;
 	bool support_sp;
-- 
GitLab