RDK Documentation (Open Sourced RDK Components)
Device_MoCA_Interface_QoS.h
Go to the documentation of this file.
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  * @file Device_MoCA_Interface_QoS.h
22  *
23  * TR-069 Device.Moca.Interface.QoS object Public API.
24  */
25 
26 /**
27  * @defgroup TR69_HOSTIF_MOCA_INTERFACE_QOS TR-069 Object (Device.MoCA.Interface.{i}.QoS) Public APIs
28  * The Device.Moca.Interface.QoS object provides information on MoCA parameterized QoS for this interface [MoCAv1.1].
29  * @ingroup TR69_HOSTIF_MOCA
30  */
31 
32 
33 /**
34 * @defgroup tr69hostif
35 * @{
36 * @defgroup hostif
37 * @{
38 **/
39 
40 
41 #ifndef HOSTIF_MOCA_INTERFACE_QOS_H_
42 #define HOSTIF_MOCA_INTERFACE_QOS_H_
43 
44 #include "hostIf_main.h"
45 #include "hostIf_tr69ReqHandler.h"
46 #include "hostIf_utils.h"
47 #include "Device_MoCA_Interface.h"
48 
49 
50 /*****************************************************************************
51  * TR069-SPECIFIC INCLUDE FILES
52  *****************************************************************************/
53 /** @defgroup TR_069_DEVICE_MOCA_INTERFACE_QOS_API TR-069 Device.Moca.Interface.QoS object API.
54 * @ingroup TR_069_DEVICE_MOCA_INTERFACE_API
55 *
56 * The Device.Moca.Interface.QoS object provides information on MoCA parameterized QoS for this interface.
57 *
58 * @todo The Device.Moca.Interface.QoS object is not specified in the Xi3
59 * data-model.xml file.
60 *
61 */
62 
63 /** @addtogroup TR_069_DEVICE_MOCA_INTERFACE_QOS_GETTER_API TR-069 Device.Moca.Interface.QoS Getter API.
64  * @ingroup TR_069_DEVICE_MOCA_INTERFACE_QOS_API
65  *
66  * \section dev_moca_if_qos_getter TR-069 Device.MoCA.Interface.QoS object Getter API
67  *
68  * This is the getter group of API for the <b>Device.MoCA.Interface.{i}.QoS</b> object.
69  *
70  * The interface for all functions is identical and is described here.
71  *
72  * @param[in] *name This is the complete path name of the parameter extracted from
73  * soap message, e.g. ::get_Device_MoCA_Interface_QoS_EgressNumFlows.
74  * In this case, the path is "Device.MoCA.Interface.{i}.QoS.EgressNumFlows".
75  * @param[in] *type Data type of parameter defined for TR-069. This is same as the
76  * data type used in the Xi3 data-model.xml file.
77  * (see parameter.h)
78  * @param[out] *value This is the value of the parameter requested by the ACS.
79  * (see paramaccess.h)
80  *
81  * @return The status of the operation.
82  * @retval OK If parameter requested was successfully fetched. (Same as <b>NO_ERROR</b>).
83  * @retval NO_ERROR If parameter requested was successfully fetched. (Same as <b>OK</b>).
84  * @retval DIAG_ERROR Diagnostic error.
85  * @retval ERR_??? Appropriate error value otherwise (see dimark_globals.h).
86  *
87  * @todo Clarify description of DIAG_ERROR.
88  *
89  * @{
90  */
92 
93  static GHashTable *ifHash;
94  int dev_id;
95  static class MoCAInterfaceQoS *Instance;
96  MoCAInterfaceQoS() {};
97  ~MoCAInterfaceQoS() {};
98 
99 public:
100  static class MoCAInterfaceQoS *getInstance();
101 
102  /**
103  * @ingroup TR69_HOSTIF_MOCA_INTERFACE_QOS
104  * @{
105  */
106 
107  /**
108  * @brief Get the number of QoS flows that this interface has from the MoCA network.
109  *
110  * This parameter is based on mocaIfEgressNodeNumFlows from [MOCA11-MIB].
111  *
112  * This function provides the output as a numeric value available in Device.MoCA.Interface.{i}.QoS.EgressNumFlow parameter.
113  *
114  * @param[out] stMsgData TR-069 Host interface message request.
115  * @param[out] pChanged pChange set to not NULL if the object value got changed.
116  *
117  * @return Returns 0 on success, otherwise will return the appropriate error code.
118  */
119  int get_EgressNumFlows(HOSTIF_MsgData_t *stMsgData,bool *pChanged = NULL);
120 
121  /**
122  * @brief Get the number of QoS flows that this interface has onto the MoCA network.
123  *
124  * This parameter is based on mocaIfIngressNodeNumFlows from [MOCA11-MIB].
125  *
126  * This function provides the output as a numeric value available in Device.MoCA.Interface.{i}.QoS.IngressNumFlows parameter.
127  *
128  * @param[out] stMsgData TR-069 Host interface message request.
129  * @param[out] pChanged pChange set to not NULL if the object value got changed.
130  *
131  * @return Returns 0 on success, otherwise will return the appropriate error code.
132  */
133  int get_IngressNumFlows(HOSTIF_MsgData_t *stMsgData,bool *pChanged = NULL);
134 
135  /**
136  * @brief Get the number of entries in the FlowStats table.
137  *
138  * This function provides the output as a numeric value available in Device.MoCA.Interface.{i}.QoS.FlowStatsNumberOfEntries parameter.
139  *
140  * @param[in] stMsgData TR-069 Host interface message request.
141  * @param[out] pChanged pChange set to not NULL if the object value got changed.
142  *
143  * @return Returns 0 on success, otherwise will return the appropriate error code.
144  */
145  int get_FlowStatsNumberOfEntries(HOSTIF_MsgData_t *stMsgData,bool *pChanged = NULL);
146 
147  /** @} */ //End of Doxygen tag TR69_HOSTIF_MOCA_INTERFACE_QOS
148 };
149 /* End of TR_069_DEVICE_MOCA_INTERFACE_QOS_GETTER_API doxygen group */
150 /**
151  * @}
152  */
153 
154 #endif /* HOSTIF_MOCA_INTERFACE_QOS_H_ */
155 
156 
157 /** @} */
158 /** @} */
MoCAInterfaceQoS::get_FlowStatsNumberOfEntries
int get_FlowStatsNumberOfEntries(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get the number of entries in the FlowStats table.
Definition: Device_MoCA_Interface_QoS.cpp:70
MoCAInterfaceQoS::get_EgressNumFlows
int get_EgressNumFlows(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get the number of QoS flows that this interface has from the MoCA network.
Definition: Device_MoCA_Interface_QoS.cpp:61
_HostIf_MsgData_t
Definition: hostIf_tr69ReqHandler.h:170
hostIf_main.h
hostIf_main API.
MoCAInterfaceQoS::get_IngressNumFlows
int get_IngressNumFlows(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get the number of QoS flows that this interface has onto the MoCA network.
Definition: Device_MoCA_Interface_QoS.cpp:65
MoCAInterfaceQoS
Definition: Device_MoCA_Interface_QoS.h:91
Device_MoCA_Interface.h