RDK Documentation (Open Sourced RDK Components)
Device_WiFi_AccessPoint.h
1 /*
2  * If not stated otherwise in this file or this component's Licenses.txt file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 /**
21  * @defgroup TR69_HOSTIF_WIFI_ACCESSPOINT TR-069 Object (Device.WiFi.AccessPoint.{i}) API
22  *
23  * This object models an 802.11 connection from the perspective of a wireless access point.
24  * Each AccessPoint entry is associated with a particular SSID interface instance via the SSIDReference parameter.
25  *
26  * For enabled table entries, if SSIDReference is not a valid reference then the table entry is inoperable
27  * and the CPE MUST set Status to Error_Misconfigured.
28  *
29  * @note The AccessPoint table includes a unique key parameter that is a strong reference.
30  * If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string.
31  * However, doing so under these circumstances might cause the updated AccessPoint row to then violate
32  * the table's unique key constraint; if this occurs, the CPE MUST set Status to Error_Misconfigured
33  * and disable the offending AccessPoint row.
34  *
35  * At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value
36  * for Alias. On creation of a new table entry, the CPE MUST choose an initial value for Alias such that the
37  * new entry does not conflict with any existing entries.
38  *
39  * At most one enabled entry in this table can exist with a given value for SSIDReference.
40  * @ingroup TR69_HOSTIF_WIFI
41  */
42 
43 /**
44 * @defgroup tr69hostif
45 * @{
46 * @defgroup hostif
47 * @{
48 **/
49 
50 
51 #ifndef DEVICE_WIFI_ACCESSPOINT_H_
52 #define DEVICE_WIFI_ACCESSPOINT_H_
53 
54 #include "hostIf_main.h"
55 #include "hostIf_utils.h"
56 #include "hostIf_tr69ReqHandler.h"
57 #include "hostIf_updateHandler.h"
58 
60 
61  static GHashTable *ifHash;
62  int dev_id;
63  hostIf_WiFi_AccessPoint(int dev_id);
65 
66 public:
67  static class hostIf_WiFi_AccessPoint *getInstance(int dev_id);
68  static GList* getAllInstances();
69  static void closeInstance(hostIf_WiFi_AccessPoint *);
70  static void closeAllInstances();
71 
72  static unsigned int AccessPointNumberOfEntries;
73 
74  bool Enable;
75  char Status[64];
76  char Alias[64];
77  char SSIDReference[256];
78  bool SSIDAdvertisementEnabled;
79  unsigned int RetryLimit;
80  bool WMMCapability;
81  bool UAPSDCapability;
82  bool WMMEnable;
83  bool UAPSDEnable;
84  unsigned int AssociatedDeviceNumberOfEntries;
85 
86  /**
87  * @ingroup TR69_HOSTIF_WIFI_ACCESSPOINT
88  * @{
89  */
90  /**
91  * @brief Enables or disables this access point.
92  *
93  * @param[in] stMsgData TR-069 Host interface message request.
94  */
96 
97  /**
98  * @brief Get the status of the access point which is currently being set.
99  * The status of the access point could be the following types,
100  * - Disabled
101  * - Enabled
102  * - Error_Misconfigured
103  * - Error (OPTIONAL)
104  * The Error_Misconfigured value indicates that a necessary configuration value is undefined or invalid.
105  * The Error value may be used by the CPE to indicate a locally defined error condition.
106  *
107  * @param[in] stMsgData TR-069 Host interface message request.
108  */
110 
111  /**
112  * @brief Get the access point alias based addressing. Alias provides a mechanism for an ACS to label
113  * the instance for future reference. The following mandatory constraints MUST be enforced:
114  * - Its value MUST NOT be empty.
115  * - Its value MUST start with a letter.
116  * - If its value is not assigned by the ACS, it MUST start with a "cpe-" prefix.
117  * - The CPE MUST NOT change the parameter value.
118  * @param[in] stMsgData TR-069 Host interface message request.
119  *
120  * @return Returns 0 on success, otherwise will return the appropriate error code.
121  */
123 
124  /**
125  * @brief Get path name of a row in the SSID table. If the parameter value is set to Null indicate that
126  * the reference object is deleted.
127  *
128  * @param[in] stMsgData TR-069 Host interface message request.
129  *
130  * @return Returns 0 on success, otherwise will return the appropriate error code.
131  */
133 
134  /**
135  * @brief Check whether or not beacons include the SSID name.
136  *
137  * @param[in] stMsgData TR-069 Host interface message request.
138  *
139  * @return Returns 0 on success, otherwise will return the appropriate error code.
140  */
142 
143  /**
144  * @brief Get thee maximum number of retransmission for a packet. This corresponds to IEEE 802.11
145  * parameter dot11ShortRetryLimit.
146  *
147  * @param[in] stMsgData TR-069 Host interface message request.
148  *
149  * @return Returns 0 on success, otherwise will return the appropriate error code.
150  */
152 
153  /**
154  * @brief Check whether this access point supports WiFi Multimedia (WMM) Access Categories (AC).
155  *
156  * @param[in] stMsgData TR-069 Host interface message request.
157  *
158  * @return Returns 0 on success, otherwise will return the appropriate error code.
159  */
161 
162  /**
163  * @brief Check whether this access point supports WMM Unscheduled Automatic Power Save Delivery (U-APSD).
164  * @note U-APSD support implies WMM support.
165  *
166  * @param[in] stMsgData TR-069 Host interface message request.
167  *
168  * @return Returns 0 on success, otherwise will return the appropriate error code.
169  */
171 
172  /**
173  * @brief Check whether WMM support is currently enabled. When enabled, this is indicated in beacon frames.
174  *
175  * @param[in] stMsgData TR-069 Host interface message request.
176  *
177  * @return Returns 0 on success, otherwise will return the appropriate error code.
178  */
180 
181  /**
182  * @brief Whether U-APSD support is currently enabled. When enabled, this is indicated in beacon frames.
183  * @note U-APSD can only be enabled if WMM is also enabled.
184  *
185  * @param[in] stMsgData TR-069 Host interface message request.
186  *
187  * @return Returns 0 on success, otherwise will return the appropriate error code.
188  */
190 
191  /**
192  * @brief Get the number of entries in the AssociatedDevice table. The AssociatedDevice table contains
193  * information about other Wifi devices currently associated with this Wifi interface.
194  *
195  * @param[in] stMsgData TR-069 Host interface message request.
196  *
197  * @return Returns 0 on success, otherwise will return the appropriate error code.
198  */
200 
201  /** @} */ //End of Doxygen tag TR69_HOSTIF_WIFI_ACCESSPOINT
202 };
203 
204 
205 
206 
207 #endif /* DEVICE_WIFI_ACCESSPOINT_H_ */
208 
209 
210 /** @} */
211 /** @} */
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_SSIDReference
int get_hostIf_WiFi_AccessPoint_SSIDReference(HOSTIF_MsgData_t *stMsgData)
Get path name of a row in the SSID table. If the parameter value is set to Null indicate that the ref...
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_UAPSDEnable
int get_hostIf_WiFi_AccessPoint_UAPSDEnable(HOSTIF_MsgData_t *stMsgData)
Whether U-APSD support is currently enabled. When enabled, this is indicated in beacon frames.
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_WMMEnable
int get_hostIf_WiFi_AccessPoint_WMMEnable(HOSTIF_MsgData_t *stMsgData)
Check whether WMM support is currently enabled. When enabled, this is indicated in beacon frames.
_HostIf_MsgData_t
Definition: hostIf_tr69ReqHandler.h:170
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_Enable
int get_hostIf_WiFi_AccessPoint_Enable(HOSTIF_MsgData_t *stMsgData)
Enables or disables this access point.
hostIf_main.h
hostIf_main API.
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_UAPSDCapability
int get_hostIf_WiFi_AccessPoint_UAPSDCapability(HOSTIF_MsgData_t *stMsgData)
Check whether this access point supports WMM Unscheduled Automatic Power Save Delivery (U-APSD).
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_RetryLimit
int get_hostIf_WiFi_AccessPoint_RetryLimit(HOSTIF_MsgData_t *stMsgData)
Get thee maximum number of retransmission for a packet. This corresponds to IEEE 802....
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_SSIDAdvertisementEnabled
int get_hostIf_WiFi_AccessPoint_SSIDAdvertisementEnabled(HOSTIF_MsgData_t *stMsgData)
Check whether or not beacons include the SSID name.
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_AssociatedDeviceNumberOfEntries
int get_hostIf_WiFi_AccessPoint_AssociatedDeviceNumberOfEntries(HOSTIF_MsgData_t *stMsgData)
Get the number of entries in the AssociatedDevice table. The AssociatedDevice table contains informat...
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_WMMCapability
int get_hostIf_WiFi_AccessPoint_WMMCapability(HOSTIF_MsgData_t *stMsgData)
Check whether this access point supports WiFi Multimedia (WMM) Access Categories (AC).
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_Alias
int get_hostIf_WiFi_AccessPoint_Alias(HOSTIF_MsgData_t *stMsgData)
Get the access point alias based addressing. Alias provides a mechanism for an ACS to label the insta...
hostIf_WiFi_AccessPoint
Definition: Device_WiFi_AccessPoint.h:59
hostIf_WiFi_AccessPoint::get_hostIf_WiFi_AccessPoint_Status
int get_hostIf_WiFi_AccessPoint_Status(HOSTIF_MsgData_t *stMsgData)
Get the status of the access point which is currently being set. The status of the access point could...